目录
一、定义数据库
1.创建数据库
格式:
CREATE DATABASE 数据库名字;
CREATE DATABASE IF NOT EXISTS 数据库名字;
Example:
2.选择数据库
格式:
USE 数据库名字;
Example:
3.查看数据库
格式:
SHOW DATABASES;
Example:
4.修改数据库
格式:
ALTER DATABASE 数据库名字 [完整性约束];
Example:
5.删除数据库
格式:
DROP DATABASE 数据库名字;
Example:
二、定义表
1.创建表
格式:
CREATE TABLE 表名(
字段名1 数据类型1 【完整性约束条件】,
字段名2 数据类型2 【完整性约束条件】,
字段名3 数据类型3 【完整性约束条件】,
字段名4 数据类型4 【完整性约束条件】,
字段名5 数据类型5 ,
字段名6 数据类型6 【完整性约束条件】,
);
Example:
2.查看表
2.1.查看表的名称
格式:
SHOW TABLES;
Example:
2.2.查看数据表的基本结构
格式:
SHOW COLUMNS FROM 表名;
- 还有另外一种方式,因为我不喜欢用,所以就不测试了
Example:
2.3.查看数据表的详细结构
格式:
SHOW CREATE TABLE 表名;
Example:
3.修改表
3.1.添加字段
格式:
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 【完整性约束】 FIRST;
- FIRST:表示将新添加的字段设置为表的第一个字段
ALTER TABLE 表名 ADD COLUMN 新增字段名 数据类型 【完整性约束条件】 AFTER 原有字段名;
- AFTER:表示将新添加的字段加到指定的“已有字段名”后面
Example:
3.2.修改字段
格式:
ALTER TABLE 表名 CHANGE COLUMN 原字段名 新字段名 数据类型 【完整性约束条件】;
- 可同时修改表中指定列的名称和数据类型。
ALTER TABLE 表名 ALTER COLUMN 字段名 SET/DROP DEFAULT 【完整性约束条件】;
- 可修改或删除表中指定列的默认值。
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 【完整性约束条件】 AFTER 已有字段名;
- 只会修改指定列的数据类型,而不会干涉它的列名。
- 通过FIRST或AFTER关键字修改指定列在表中的位置
Example:
3.3.删除字段
格式:
ALTER TABLE 表名 DROP COLUMN 字段名;
Example:
4.重命名表
格式:
ALTER TABLE 原表名 RENAME TO 新表名;
RENAME TABLE 原表名 TO 新表名;
Example:
5.删除表
格式:
DROP TABLE IF EXISTS 表名;
- 可以同时删除多个表,表与表之间用逗号分隔
- IF EXISTS 用于在删除表之前判断要删除的表是否存在,如果不加这玩意,它会提示一条错误信息,加上之后,如果要删除的表不存在,sql语句顺利执行,但会有一个warning
Example:
- 我也不知道为啥不加那东西竟然不会报错......
三、数据的完整性约束
1.实体完整性
实体完整性规则是指关系的主属性不能取空值,即主键和候选键在关系中对应的属性都不能取空值。
1.1.主键约束
- 列级完整性约束:只需在表中某个字段定义后加上关键字PRIMARY KEY
- 适用于主键由一列构成
- 表级完整性约束:需要在所有字段定义后添加一条PRIMARY KEY
- 适用于主键由多列构成
1.2.完整性约束的命名
- 完整性约束的命名:便于删除和修改完整性约束
- 小道消息:当前MySql版本只能给表级的完整性约束指定名字
1.3.候选键约束
- 列级完整性约束:只需在表中某个字段定义后加上关键字UNIQUE
- 适用于候选键由一列构成
- 候选键的值必须唯一,且不能为NULL
- 表级完整性约束:需要在所有字段定义后添加一条UNIQUE
- 适用于候选键由多列构成
- 此处对完整性约束进行了命名
2.参照完整性
参照完整性规则是外键与主键之间的引用规则,即外键的取值或者为空,或者等于被参照关系中某个主键的值。
- 被参照表必须是已创建的表
- 被参照表必须定义主键或候选键
- 必须在被参照表的表名后面指定被参照表的主键或候选键
- 外键允许出现空值
- 外键对应列的数目、列的数据类要与被参照表的主键、候选键对应的相同
2.1.列级完整性约束:
- 创建父表并指定主键或候选键
- 创建从表,添加外键
2.2.表级完整性约束:
- 创建父表并指定主键或候选键
- 创建从表,添加外键
3.用户自定义完整性
3.1.设置非空约束
- 指定字段的值不能为空(NOT NULL)
3.2.CHECK约束
- 需要指定限定条件
- 列级完整性约束:
- 字段名的数据类型后面加上CHECK的限定条件
- 表级完整性约束:
- 在所有列的后面给CHECK约束重命名并加上CHECK的约束条件
- CHECK约束CK_student定义了字段studentGrades应满足的关系
4.更新完整性约束
4.1.添加约束
4.1.1.添加主键约束
格式:
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(字段名);
Example:
4.1.2.添加外键约束
格式:
ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(字段名)
REFERENCES 父表(主键字段名);
Example:
4.1.3.添加候选键约束
格式:
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE KEY(字段名);
Example:
4.2.删除约束
4.1.1.删除主键约束
格式:
ALTER TABLE 表名 DROP PRIMARY KEY;
Example:
4.1.2.删除外键约束
格式:
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;
Example:
4.1.3.删除候选键约束
格式:
ALTER TABLE 表名 DROP INDEX 约束名;
(ALTER TABLE 表名 DROP INDEX 候选键字段名);
Example: