实体完整性、域完整性、引用完整性

# 一、主键约束 特点:数据唯一,且不能为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);


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值