03_sql创建表时字段属性设置

2018-11-04  本文已影响0人  王康健_0124

数据库表的每个字段都有很多的约束,在我们创建表的时候就可以指定每个表的约束!
PRIMARY KEY:主键(1.包含唯一属性,一个表只有一个PRIMARY KEY且字段为int类型;2.包含not null属性:不能为空)

格式1:
create table student (
id int(10) primary key 
);
格式2:
create table student (
id int(10),
name VARCHAR(20),
primary key(id)
);

UNIQUE唯一,不可重复(有唯一约束的字段基本不会设置不可重复约束,UNIQUEPRIMARY KEY 约束均为列或列集合提供了唯一性的保证。PRIMARY KEY 拥有自动定义的 UNIQUE 约束。请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。)

方法1:
CREATE TABLE course
(
course_Id int  primary key /*主键*/,
class varchar(30) ,
Stu_id int(4),
UNIQUE (Stu_id )/*指定某个字段唯一约束*/
)
方法二:
CREATE TABLE course
(
course_Id int  primary key /*主键*/,
class varchar(30) ,
Stu_id int(4) UNIQUE
)

COMMENT :给字段添加文字描述说明

CREATE TABLE course
(
course_Id int  primary key COMMENT '课程id'/*主键*/,
class_name varchar(30) COMMENT '班级名称',
Stu_id int(4) UNIQUE COMMENT '学生编号'
)

NOT NULL:不能为空(加上not null 后,在插入数据的时候该列必须有值)

CREATE TABLE course
(
course_Id int  primary key COMMENT '课程id'/*主键*/,
class_name varchar(30) COMMENT '班级名称' not null,
Stu_id int(4) UNIQUE COMMENT '学生编号' not null
)

AUTO_INCREMENT:当前字段自增(auto_increment关键字就表示自增。自增字段必须是主键,要定义primary key才行,免得出现插入数据时,提示值重复的问题)

CREATE TABLE course
(
course_Id int  primary key COMMENT '课程id'/*主键*/ AUTO_INCREMENT/*自增*/,
class_name varchar(30) COMMENT '班级名称' not null,
Stu_id int(4) UNIQUE COMMENT '学生编号' not null
)

自增字段在执行插入时,可以不输入数据,字段会字段根据上条数据的大小自动+

foreign key(要设置外键的字段名) references 要关联的表名(关联表里的字段名))

注意:A的主键被B表某个字段引用位外键的话,必须先删除B表后才能再删除A表。

即,drop table student;会执行失败,因为它的主键现在被course指定为外键,必须先删除course表才能删除student表,不然会报错Cannot delete or update a parent row: a foreign key constraint fails

创建A表:student ,id为主键
CREATE TABLE student (
id INT(10) NOT NULL ,
NAME VARCHAR(20),
PRIMARY KEY(id)
);
创建B表:course,course表中student_id字段的外键是student 表中的id
CREATE TABLE course(
course_id INT(4) AUTO_INCREMENT PRIMARY KEY,
dept_name VARCHAR(20) NOT NULL ,
student_id INT(10),
FOREIGN KEY(student_id) REFERENCES student(id)/*这行为创建外键的写法*/
);

DEFAULT :添加默认值(DEFAULT 约束用于向列中插入默认值,如果没有规定其他的值,那么会将默认值添加到所有的新记录。)

CREATE TABLE course(
course_id INT(4) AUTO_INCREMENT PRIMARY KEY,
dept_name VARCHAR(20) NOT NULL DEFAULT '谁啊!那么懒不添加值'
);

总结:在添加Constraints的时候,Constraints 之间不需要用符号做分隔例,具体怎么给字段添加约束还是按照实际情况来!

CREATE TABLE course(
course_id INT(4) AUTO_INCREMENT PRIMARY KEY,
dept_name VARCHAR(20) NOT NULL DEFAULT '谁啊!那么懒不添加值'
);
上一篇 下一篇

猜你喜欢

热点阅读