MySQL-创建表及其约束

CREATE TABLE [tb_name];

1、创建表的主键约束:主键是唯一标识某字段的作用,当该字段为主键的时候,其值必须是唯一的,且不能为空。
mysql>CREATE TABLE student(id INT PRIMARY KEY,
                                                 stu_id INT,
                                                 course_id INT);id为主键,所有字段都为整数

mysql>CREATE TABLE student (id INT PRIMARY KEY,
                                                   stu_id INT,
                                                   course_id INT,
                                                   PRIMARY KEY(id,stu_id)
                                                   );  id和stu_id成为主键,两者的组合唯一标识一条记录

2、创建表的外键约束(CONSTRAINT:外键别名;FOREIGN KEY:外键字段;REFERENCES 父表):外键是和另外一个表关联其来的作用,外键必须是另一表的主键,外键可以为空。
mysql>CREATE TABLE student (id INT PRIMARY KEY,
                                                   stu_id INT,
                                                   course_id INT,
                                                   CONSTRAINT c_fk FOREIGN KEY(stu_id,course_id)
                                                   REFERENCES example2(stu_id,course)
                                                    );表student的stu_id,course_id为外键,外键到example2表的stu_id,course_id主键。example2是student的父表。子表的外键关联的必须是父表的主键。而且,数据类型必须一致。

3、设置表的非空约束(NOT NULL):定义字段值不能为空
mysql>CREATE TABLE student(id INT NOT NULL PRIMARY KEY,
                                                  name VARCHAR(20) NOT NULL,
                                                  stu_id INT,
                                                  CONSTRAINT e_fk FOREIGN KEY(stu_id)
                                                  REFERENCES example1(stu_id)
                                                   ); id为主键,NOT NULL定义id和stu_id为非空约束;CONSTRAINT定义外键别名,FOREIGN KEY定义外键字段,REFERENCES定义父表;

4、设置表的唯一约束(UNIQUE):定义字段值唯一。
mysq>CREATE TABLE student(id INT NOT NULL PRIMARY KEY,
                                                 name VARCHAR(20) NOT NULL,
                                                 stu_id INT UNIQUE,
                                                 sex CHAR(6),
                                                 CONSTRAINT e_fk FOREIGN KEY(sex)
                                                 REFERENCES example2(sex),
                                                 );id为主键且不能为空;name为字符串类型且不能为空;sut_id为整形且只能唯一;sex为字符串且是外键,example2为student父键。

5、设置表的属性值自动增加:数字自动增长(AUTO_INCREMENT)
mysql>CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,
                                                  name VARCHAR(20) NOT NULL,
                                                  stu_id UNIQUE AUTO_INCREMENT,
                                                  sex CHAR(6) ,
                                                  CONSTRAINT e_fk FOREIGN KEY(sex)
                                                  REFERENCES example2(sex),
                                                   );id为主键且自动增长不能为空,Name为字符串不能为空,stu_id是唯一键自动增长,sex是外键,example2是student的父表。

6、设置表属性的默认值(如果插入一条新的记录没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值):DEFAULT
mysql>CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,
                                                  name CHAR(20) NOT NULL,
                                                  stu_id UNIQUE INT AUTO_INCREMENT,
                                                  sex CHAR(6) DEFALUT ‘man‘,
                                                   );id为自动增长整数类型,且是主键;name为字符类型,不能为空;stu_id是唯一键自动增长;sex的默认值是man。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。