DDL(Data Definition Language):数据定义语言
库和表的管理(创建、修改、删除)
创建:create
修改:alter
删除:drop
语法
CREATE DATABASE 库名;
//加判断,增加容错性
CREATE DATABASE IF NOT EXISTS 库名;
更改库的字符集
语法
ALTER DATABASE 库名;
CHARACTER SET 字符集名
语法
DROP DATABASE 库名;
//加判断,增加容错性
DROP DATABASE IF EXISTS 库名;
语法
CREATE TABLE 【IF NOT EXISTS】 表名(
字段名 字段类型【(长度) 约束】,
字段名 字段类型【(长度) 约束】,
...
字段名 字段类型【(长度) 约束】
);
例:创建表book
CREATE TABLE book(
id INT, #编号
bName VARCHAR(20) , #书名
price DOUBLE, #价格
authorID INT, #作者编号
publishedDate DATETIME #出版日期
);
ALTER TABLE 表名 add|drop|modify|change COLLUM 列名 【类型,约束】
ALTER TABLE 表名
CHANGE 【COLLUM】 原字段名 新字段名 类型;
例:
ALTER TABLE book CHANGE COLLUM publishedDATE pubDate DATETIME;
ALTER TABLE 表名 MODIFY COLLUM 字段名 新类型/约束;
ALTER TABLE 表名 ADD COLLUM 字段名 类型;
ALTER TABLE 表名 DROP COLLUM 字段名;
ALTER TABLE 表名 RENAME TO 新表名;
DROP TABLE 表名;
//加判断,增加容错性
DROP TABLE IF EXISTS 表名;
CREATE TABLE 复制表名 LIKE 原表名;
CREATE TABLE 复制表名
SELECT 字段名
FROM 原表名 【筛选】;
CREATE TABLE 复制表名
SELECT 字段名
FROM 原表
WHERE 0;
含义
一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
分类:六大约束
添加约束的时机:在添加数据之前
约束的添加分类
列级约束:六大约束都可以,但外键无效
表级约束:除非空、默认
主键和唯一对比
保证唯一性 | 是否允许为空 | 表中可以有多少个 | |
---|---|---|---|
主键 primary key | 是 | 否 | 至多一个 |
唯一 unique | 是 | 是 | 可以有多个 |
外键
语法 直接在各个字段名和类型后面追加约束类型即可
只支持:默认、非空、主键、唯一
字段名 字段类型 约束类型
例:
CREATE TABLE stuinfo(
id INT PRIMARY KEY,
stuName VARCHAR(20) NOT NULL,
gender CHAR(1) CHECK (gender='男' OR gender='女'),
seat INT UNIQUE,
age INT DEFAULT 18,
majorId INT REFERENCES major(id)
);
CREATE TABLE major(
id INT PRIMARY KEY,
majorName VARCHAR(20)
);
语法在各个字段的最下面添加
【constraint 约束名】约束类型(字段名)
例:
CREATE TABLE stuinfo(
id INT,
stuName VARCHAR(20),
gender CHAR(1),
seat INT,
age INT,
majorId INT,
CONSTRAINT pk PRIMARY KEY(id),
CONSTRAINT uq UNIQUE(seat),
CONSTRAINT ck CHECK(gender='男' OR gender='女'),
CONSTRAINT fk_stu_info FOREIGN KEY(majorid) REFERENCES major(id)
);
//列级约束
ALTER TABLE 表名 MODIFY COLUMN 字段名 类型 约束(非空、默认、主键、唯一)
//表级约束
ALTER TABLE 表名 ADD 约束(字段名) (主键、唯一)
//添加外键
ALTER TABLE 表名 ADD FOREIGN KEY(字段名) REFERENCES 从表名(字段)
删除非空约束
ALTER TABLE 表名 MODIFY COLUMN 字段名 类型 NULL
删除默认约束
ALTER TABLE 表名 MODIFY COLUMN 字段名 类型
删除主键
ALTER TABLE 表名 DROP PRIMARY KEY
删除唯一
ALTER TABLE 表名 DROP INDEX 字段名
删除外键
ALTER TABLE 表名 DROP PRIMARY KEY 字段名
又称为自增长列
含义
可以不用手动的插入值,系统提供默认的序列值
特点
语法
字段名 类型 约束 auto_increment;
ALTER TABLE 表名 MODIFY COLUMN 字段名 类型 约束 auto_increment;
ALTER TABLE 表名 MODIFY COLUMN 字段名 类型;