携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
MySQL概述
- MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发的。属于Oracle旗下的产品。
- MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,是最好的应用软件之一。
MySQL下载与安装
- 下载MySQL服务器(8.0版本):dev.mysql.com/downloads/m…
- 安装一直下一步下一步即可,初学者账号密码都设置为root即可。
- 如果以前有安装MySQL服务器,想要卸载安装更高版本,可以参考这里卸载MySQL服务器。
- 配置环境变量
配置成功会变成这样
DDL数据定义语言
常用命令
- create 创建
- alter 修改
- drop 删除
- rename 重命名
创建一个数据库
#库名没有空格或不是关键字,不需要使用反引号包裹
# [if not exists],可选,如果数据库不存在才会创建
create database [if not exists]库名;
#创建时指定字符集和编码
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci。
修改数据库
ALTER DATABASE books CHARACTER SET gbk;
删除数据库
DROP DATABASE [IF EXISTS] books;
创建一个数据表
create table [if not exists] 表名( 列名 列的类型【(长度) 约束】, 列名 列的类型【(长度) 约束】);
示例:
复制表
#根据表名复制表结构
create table 表名 like 表名
#复制表结构和数据
create table 表名 [as] select * from 表名
数据库数据类型
移步菜鸟教程
AUTO_INCREMENT 自增列
含义:可以不用手动的插入值,系统提供默认的序列值。
1、标识列必须和主键搭配吗?不一定,但要求是一个key
2、一个表可以有几个标识列?至多一个!
3、标识列的类型只能是数值型
4、标识列可以通过 SET auto_increment=3;设置步长
修改数据表
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】;
#修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;
#末尾添加字段
ALTER TABLE 表名 add 字段名 类型 约束;
#首位添加字段
ALTER TABLE 表名 add 字段名 类型 约束 First;
#指定位置添加字段
ALTER TABLE 表名 add 字段名 类型 约束 After 字段名;
#删除字段
ALTER TABLE 表名 DROP 字段名;
#修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新类型;
#修改字段类型
ALTER TABLE 表名 MODIFY 字段名 新类型 约束;
#修改字段默认值
ALTER TABLE 表名 ALTER 字段名 SET DEFAULT 新值;
#删除字段默认值
ALTER TABLE 表名 ALTER 字段名 drop DEFAULT;
#修改数据表引擎
ALTER TABLE 表名 ENGINE = MYISAM;
约束
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
六个约束
- not null:非空,用于保证该字段的值不能为空。
- default:默认,用于保证该字段有默认值。
- UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。
- PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空。一个表只有一个主键。主键可以由一到多个字段组成,多个字段组成的称谓联合主键或复合主键。数字主键,一般设置自动增长。
- CHECK:检查约束【mysql中不支持】
- FOREIGN KEY:外键,略
添加约束的时机
创建表时添加约束
ALTER TABLE stuinfo MODIFY COLUMN id INT PRIMARY KEY;
修改表时添加约束
ALTER TABLE stuinfo ADD PRIMARY KEY(id);
约束分类
列级约束:列级约束:对一个数据列建立的约束,称为列级约束列级约束既可以在列定义时声明,也可以在列定义后声明
表级约束:表级约束:对多个数据列建立的约束,称为表级约束表级约束只能在列定义后声明
删除约束
#删除主键约束
ALTER TABLE tab_name DROP PRIMARY KEY;
#删除默认约束
ALTER TABLE 表名 ALTER 字段名 drop DEFAULT;
#删除唯一约束
ALTER TABLE tab_name DROP [INDEX | KEY] index_name;
#删除外键约束
ALTER TABLE tab_name DROP FOREIGN KEY fk_name