网站建设宣传预算,wordpress常用插件,烟台高端网站建设,网站上海备案1、数据库约束的认识 数据库约束的概念#xff1a;数据库的约束是关系型数据库的一个重要的功能#xff0c;它提供了一种“校验数据”合法性的机制#xff0c;能够保证数据的“完整性”、“准确性”和“正确性” 数据库的约束#xff1a; not null#xff1a;不能存储 nul… 1、数据库约束的认识 数据库约束的概念数据库的约束是关系型数据库的一个重要的功能它提供了一种“校验数据”合法性的机制能够保证数据的“完整性”、“准确性”和“正确性” 数据库的约束 not null不能存储 null 值 unique保证某列的每行必须有唯一值 default规定没有给列赋值时的默认值 primary key主键相当于 not null 和 unique 的结合每条记录的身份标识 aoto_increment自动添加主键值也可以手动添加 foreign key外键多个表的关联关系要求某个记录必须在另外一个表里存在 2、not null 约束 创建一个student表表中有两列分别是 id 类型为 int 约束为 not nullname 类型为varchar 最大存储 20 字符 -- 如果已有student表请先删除因为同一个库里面不能存在相同名的表
create table student(id int not null,name varchar(20)); id 的约束为not null说明 id 列不能为空 desc student;
-----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-----------------------------------------------
| id | int(11) | NO | | NULL | |
| name | varchar(20) | YES | | NULL | |
----------------------------------------------- 查看student表的结构也就可以发现 id 行 Null 列为 NO也就说明 id 列不能为 NULL 3、unique 约束 创建一个student表表中有两列分别是 id 类型为 int 约束为 uniquename 类型为varchar 最大存储 20 字符 -- 如果已有student表请先删除因为同一个库里面不能存在相同名的表
create table student(id int unique,name varchar(20)); id 的约束为 unique 必须是唯一的、不能重复 desc student;
-----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-----------------------------------------------
| id | int(11) | YES | UNI | NULL | |
| name | varchar(20) | YES | | NULL | |
----------------------------------------------- 查看student表的结构也就可以发现 id 行 key 列的为 UNI也就说明 id 必须唯一不能重复 4、default 约束 创建一个student表表中有两列分别是 id 类型为 int name 类型为varchar 最大存储 20 字符约束为 default -- 如果已有student表请先删除因为同一个库里面不能存在相同名的表
create table student(id int,name varchar(20) default unkown); name 的约束为 default 当不给 name 添加内容的时候默认为 unkown desc student;
-----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-----------------------------------------------
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | unkown | |
----------------------------------------------- 查看student表的结构也就可以发现 name 行 Default 列的为 unkown也就说明当不给 name 添加内容的时候默认为 unkown 5、primary key 约束 创建一个student表表中有两列分别是 id 类型为 int 约束为 primary name 类型为varchar 最大存储 20 字符 -- 如果已有student表请先删除因为同一个库里面不能存在相同名的表
create table student(id int primary key,name varchar(20)); id 的约束为 primary key说明id为主键主键就相当于 not null 和 unique 的结合不能为空、不能重复 desc student;
-----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-----------------------------------------------
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
-----------------------------------------------
2 rows in set (0.00 sec) 查看student 表的结构也就可以发现 id 行 Null 列为 NOid 行 Key 列为 PRI说明 id 不能为空、不能重复 当我们创建 student 表的时候将 id 设置为 not null 和 unique 的时候也就等于 primary key -- 如果已有student表请先删除因为同一个库里面不能存在相同名的表
create table student(id int not null unique,name varchar(20)); desc student;
-----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-----------------------------------------------
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
----------------------------------------------- 当把 id 的约束设置为 not null 和 unique 的时候查看student 表结构的时候发现跟约束为primary key的结构一样 6、auto_increment 约束 对于整数类型的主键常配搭自增长auto_increment来使用。插入数据对应字段不给值时使用最大 值1 create table student(id int primary key auto_increment,name varchar(20)); desc student;
--------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
--------------------------------------------------------
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
-------------------------------------------------------- 当把 id 的约束设置为 primary key 和 auto_increment 的时候不给 id 添加内容时默认是最大值1 当我们光给这个表中的name列添加内容时 create table student(id int primary key auto_increment,name varchar(20)); select * from student;
----------
| id | name |
----------
| 1 | 张三 |
| 2 | 李四 |
---------- id 列会默认添加值且是最大值1 7、foreign key 约束 外键用于关联其他表的主键和唯一值让两个表之间产生约束语法 foreign key (字段名) references 主表(列) 先创建一个class班级表 create table class(id int primary key auto_increment,className varchar(20)); class 表中有两个列分别为 id 列类型为 int约束为 primary key 和 auto increment className 列类型为 varchar 最多存储 20字符 先创建一个 student 学生表 create table student(id int primary key auto_increment,classId int ,
name varchar(20),
foreign key (classId) references class (id)); student 表中有三个列分别为 id 列类型为 int约束为 primary key 和 auto increment classId 列类型为 int name 列类型为 varchar 最多存储 20字符 classId为外键与class表中的id 产生约束 学生表中的数据要依赖班级表的数据班级表的数据要对学生表产生约束力 此处起到约束作用的班级表就叫做“父表”被约束的这个表就叫做“子表” 给class表添加一些内容 insert into class (className) values(Java),(C),(python); 给student表添加一些内容 insert into student (classId,name) values(1,张三),(1,李四),(2,王五),(3,赵六);