# 一、主键约束 特点:数据唯一,且不能为null
# 方法一:
CREATE TABLE 表名(
列名1 INT PRIMARY KEY,-- PRIMARY KEY 设置主键约束
列名2 VARCHAR(50)
);


# 方法二:第二种添加方式:此种方式优势在于,可以创建联合主键 如:student2
CREATE TABLE 表名(
列名1 INT,
列名2 VARCHAR(50),
PRIMARY KEY(设置主键约束的列名)
);
# 联合主键:多个字段联合在一起作为主键,联合的多个字段数据不能完全一致
CREATE TABLE student2(
列名1 INT,
列名2 VARCHAR(50),
列名3 INT,
PRIMARY KEY(列名1,列名2)-- 联合主键
);
# 方法三:
CREATE TABLE 表名(
列名1 INT,
列名2 VARCHAR(50)
);
# 运用 ALTER TABLE 表名 ADD PRIMARY KEY(列名)
ALTER TABLE student3 ADD PRIMARY KEY(id);
# 二、唯一约束 特点:数据不能重复
CREATE TABLE 表名(
列名1 INT,
列名2 VARCHAR(50),
列名3 VARCHAR(30) UNIQUE -- 设置唯一约束
);
INSERT INTO student4(列名1,列名2,列名3)VALUES(列名1值,列名2值,列名3值),(列名1值,列名2值,列名3值);-- 第一组设置唯一约束的值不能等于后面组的数据
# 三、自动增长列 注:给主键添加自动增长的数值,列只能是整数类型
CREATE TABLE 表名(
列名1 INT PRIMARY KEY AUTO_INCREMENT, -- 设置自动增长列
列名2 VARCHAR(50)
);

# 设置AUTO_INCREMENT 序列以其他的值起始
ALTER TABLE Persons AUTO_INCREMENT=100;-- 设置AUTO_INCREMENT 序列以其他的值起始
CREATE TABLE student01(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(50)
);
DROP TABLE student01;
TRUNCATE TABLE student01;
ALTER TABLE student01 AUTO_INCREMENT=100;-- 修改初始值
# 四、非空约束
CREATE TABLE 表名(
列名1 INT PRIMARY KEY,-- 设置主键约束
列名2 VARCHAR(50) NOT NULL,-- 设置非空约束
列名3 VARCHAR(10)
);
# 五、默认值 default
CREATE TABLE 表名(
列名1 INT PRIMARY KEY,
列名2 VARCHAR(50) NOT NULL,
列名3 VARCHAR(50) DEFAULT '男'-- 设置默认值DEFAULT '男'
);
# 六、UNSIGNED:无符号数,即只能填大于等于0的数字
# 未设置无符号数

# 设置无符号数 UNSIGNED 无符号数,只能填写非负数

# 七、ZEROFILL:零填充 当数据位数不足时,用‘0’来填充
# 八、COMMENT 注释:对字段和表进行解释说明,不会在表格中显示
# 九、引用完整性(参考完整性)
# 一个表中某列的数据来源于另外一个表中某列里已经存在的数据
# 创建表score02,创建表的时候没有关联外键约束
CREATE TABLE score02(
id INT,
score INT,
sid INT
);
# 通过修改表的形式添加外键约束 和向表中添加主键约束方法相同
ALTER TABLE score02 ADD CONSTRAINT fk_score_id2 FOREIGN KEY (id) REFERENCES student12(id);

被折叠的 条评论
为什么被折叠?



