MySQL数据库2---创建表

1.创建表的语法形式:

CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],
属性名 数据类型 [完整性约束条件],

属性名 数据类型 );

表名表示所要创建表的名称,属性名表示表中字段的名称,数据类型表示指定

字段的数据类型,

注:1)表名不能为SQL关键字,如create,updata,order,一个表名可以有一个或

多个属性,定义时,字母大小写均可,各属性之间用逗号隔开,最后一个属性

不用加逗号。

2)在创建表之前需要使用USE 来选择数据库,基本语法为:USE 数据库名

例:创建新表

CREATE TABLE example1 (id INT,
                       name VARCHAR(20),
                       sex BOOLEAN);                          

约束条件为如下:

PRIMARY KEY: 将指定的列标为主键

FOREIGN KEY :将指定的列标为外键,其作用为关联其他表的主键

NOT NULL:将指定的列标记为非空

UNIQUE:将指定的列标记为唯一的

AUTO_INCREMENT:将指定的列的值设置为自动增加

DEFAULT:将指定的列设为默认值。

2.设置表的主键

1)主键是表的特殊字段,能唯一的标识该表的每条信息,

2)主键的主要目的是帮助MySQL以最快的速度查找到表中的某一条信息

3)主键必须是唯一的,表中任意两条记录的主键字段值不能相同

4)主键非空

5)主键可以是单一字段,也可以是多字段的组合

第一种:单字段的主键:

语法:列名 数据类型 PRIMARY KEY

例:

CREATE TABLE example 2(stu_id INT PRIMARY KEY,
                       stu_name VARCHAR(20),
                       stu_sex BOOLEN
                       );

第二种:多字段主键:

语法:PRIMARY KEY(列名1,列名2…列名n)

例:


CREATE TABLE example3(stu_id INT,course_id INT,grade FLOAT,PRIMARY KEY(stu_id,course_id));

3.设置表的外键:

1)外键是表的特殊字段,若sno是表A的列名,且依赖于表B的主键,那么B为父表,A为子表,sno为表的外键

2)设置外键的原则:必须依赖于数据库中已存在父表的主键

3)外键可以为空

4)外键的作用:建立子表与父表的联系,父表中删除某信息时,子表中与之对应的信息也必须有相应的改变,如stu_id 是student表中的主键,stu_id是grade表的外键,当stu_id为任同学退学了,需要从student表中删除该学生的信息,那么,grade表中stu_id为任同学的所有的信息也该同时删除

设置外键的语法:

CONSTRAINT 外键别名 FOREIGN KEY (列名1.1,列名1.2,…列名1.n)

REFERENCES 表名(列名2.1,列名2.2,…,列名2.n)

外键别名是外键的代号,列名1是子表中设置的外键,表名是指父表的名称,列

名2是父表的主键。

例:

CREATE TABLE example4(id INT PRIMARY KEY,stu_id INT,course_id INT,CONSTRAINT C_FK FOREIGN KEY(stu_id,course_id)  REFERENCES example3(stu_id,course_id));

example4包含3个列名,列名id是主键,stu_id和course_id为外键,c_fk是外键的别名,example3是example4的父表;example4的外键依赖于父表example4的主键 stu_id和course_id。

4.设置非空约束

语法:列名 数据类型 NOTNULL

例:

CREATE TABLE example5(id INT NOTNULL PRIMARY KEY,name VARCHAR(20) NOT NULL,stu_id INT,CONSTRAINT d_fk FOREIGN KEY(stu_id) REFERENCES example2(stu_id));

example5中包括3个列名。id为主键,id和name字段非空,stu_id为外键;d_fk

为外键的别名;example2为example5的父表;example5的外键依赖于父表的

主键stu_id

5.设置表的唯一性约束

唯一性是指所有记录中该字段的值不能重复出现

语法: 列名 数据类型 UNIQUE

例:

CREATE TABLE example 6(id INT PRIMARY KEY,stu_id INT UNIQUE,name VARCHAR(20) NOT NULL);

example6 中有3个列名,id为主键,stu_id是唯一值,name非空

6.设置表的值的自动增加

AUTO_INCREMENT主要用于为表中插入新的记录自动生成唯一的ID,一个表

中只能有一个字段使用自动增长约束,且必须为主键的一部分,一般情况下,

从1开始自增。

语法规则:列名 数据类型 AUTO_INCREMENT

例:

CREATE TABLE example7(id INT PRIMARY KEY AUTO_INCREMENT,stu_id INT UNIQUE,name VARCHAR(20)  NOT NULL);

example7表中有3个列名,id为主键,且每插入一条新记录id的值会自动增加,stu_id是唯一值,该字段不能重复,name为非空字段

7.设置表属性的默认值

语法:列名 数据类型 DEFAULT 默认值

例:

CREATE TABLE example 8 (id INT PRIMARY KEY  AUTO_INCREMENT,stu_id INT UNIQUE,name VARCHAR (20) NOT NULL,Engilsh VARCHAR(20) DEFAULT 'zero',
Math FLOAT DEFAULT 0, Computer FLOAT DEFUAT 0);

example8中有6个列名,id为主键,每插入一条记录id的值会自动增加;stu_id

字段是唯一值,name为非空字段,English默认值为zero,Math 和Computer

字段默认值为0.

猜你喜欢

转载自blog.csdn.net/qq_43709590/article/details/86602250