1)约束的作用
对表中的数据进行进一步的限制,从而保证数据的正确性、有效性、完整性。
违反约束的不正确数据,将无法插入到表中
注意:约束是针对字段的

2)常见的约束

约束名 约束关键字
主键 primary key
唯一 unique
非空 not null
外键 foreign key

5.1 主键约束

  • 特点:唯一 非空,不可重复
  • 作用:用于唯一标识数据库表中的一条记录

1)创建主键

  1. 创建一个带主键的表
  2. # 方式1
  3. CREATE TABLE student(
  4. # 设置主键 唯一 非空
  5. id INT PRIMARY KEY,
  6. name VARCHAR(20),
  7. sex CHAR(1)
  8. );
  9. # 方式2
  10. CREATE TABLE student(
  11. id INT,
  12. name VARCHAR(20),
  13. sex CHAR(1),
  14. PRIMARY KEY(id)
  15. );
  16. # 方式3
  17. CREATE TABLE student(
  18. id INT,
  19. name VARCHAR(20),
  20. sex CHAR(1),
  21. );
  22. ALTER TABLE student ADD PRIMARY KEY(id);
  • 哪些字段可以作为主键 ?

通常针对业务去设计主键,往往每张表都设计一个主键。主键是给数据库和程序使用的,跟最终的客户无关,所以主键没有意义没有关系,只要能够保证不重复就好

2)删除主键

  1. ALTER TABLE student DROP PRIMARY KEY;

3)主键的自增
注: 主键如果让我们自己添加很有可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值。

  1. # 创建主键自增的表
  2. CREATE TABLE student(
  3. id INT PRIMARY KEY AUTO_INCREMENT,
  4. name VARCHAR(20),
  5. sex CHAR(1)
  6. );

4)修改主键自增的起始值
默认地 AUTO_INCREMENT 的开始值是 1,如果希望修改起始值,请使用下面的方式

  1. CREATE TABLE student(
  2. id INT PRIMARY KEY AUTO_INCREMENT,
  3. name VARCHAR(20),
  4. sex CHAR(1)
  5. )AUTO_INCREMENT=200;

5)DELETE 和 TRUNCATE 对自增长的影响

删除表中所有数据的方式 特点
delete 只是删除表中所有数据,对自增没有影响
truncate truncate 是将整个表删除掉,然后创建一个新的表自增的主键,重新从1开始

5.2 非空约束

非空约束的特点:某⼀列不允许为空

  1. CREATE TABLE student(
  2. id INT PRIMARY KEY AUTO_INCREMENT,
  3. name VARCHAR(20) NOT NULL,
  4. sex CHAR(1)
  5. );

5.3 唯一约束

唯一约束的特点:表中的某一列的值不能重复( 对null不做唯一的判断 )

  1. CREATE TABLE student(
  2. id INT PRIMARY KEY AUTO_INCREMENT,
  3. name VARCHAR(20) NOT NULL,
  4. qq varchar(10) UNIQUE,
  5. sex CHAR(1)
  6. );

5.4 外键约束

FOREIGN KEY 表示外键约束,将在多表中学习。

5.5 默认值

默认值约束,用来指定某列的默认值。

  1. CREATE TABLE student(
  2. id INT PRIMARY KEY AUTO_INCREMENT,
  3. name VARCHAR(20) NOT NULL,
  4. qq varchar(10) UNIQUE,
  5. grade int DEFAULT 0,
  6. sex CHAR(1)
  7. );