第三章 保证数据完整性
3.1 数据完整性的概述:实体完整性 域完整性 引用完整性 用户自定义完整性
3.2 数据完整性的实现
3.2.1 创建非空约束 (在定义列后加上 not null )默认为 null
3.2.2 创建主键约束-- primary key 主键列不允许储存null值。
3.2.3 设置唯一约束 unique
3.2.4 设置默认值 default
3.2.5 设置检查约束(MySQL不支持)
创建表:student
3.2.6 使用自动编号列:auto_increment
1: 改变自动增长值:
alter table student auto_increment=1000;
2:添加主键约束 ,唯一约束,默认约束,自动增长(自动增长只能用在主键上),都用 change
alter table student change id id primary key ;
alter table student chang gender gender varchar(4) unique;
alter table student change name name varchar(20) default "张三";
alter table student change id id int primary key auto_increment;
3:删除主键约束,唯一约束(删除唯一约束的时候 实际上是删除索引),默认约束,外键约束 ,都用drop
alter table student drop primary key;
alter table student drop index gender;
alter table student drop name name varchar(20);
alter table student drop primary key fk_name;
4:添加外键约束用add。
5:contraint 约束 ; references 引用 ; foreign key 外键 ;default 默认;unique 唯一;auto_increment 自动增长;
alter table student drop index gender;
alter table student drop name name varchar(20);
alter table student drop primary key fk_name;
4:添加外键约束用add。
5:contraint 约束 ; references 引用 ; foreign key 外键 ;default 默认;unique 唯一;auto_increment 自动增长;
第四章 使用DML语句更改数据
本章目标 使用insert语句添加数据 使用update语句修改数据 使用delete语句删除数据
4.1 添加新数据
4.1.1 插入单行记录:
insert into <表名> (列名列表)values (<值列表>)
或者 insert into <表名> values (<值列表>) -- 简写
4.1.2 插入多行记录 :
insert into <表名> (<列名列表>) values (<值列表>),(<值列表>),。。。。;
或者 insert into <表名> values (<值列表>);
insert into <表名> values (<值列表>);
insert into <表名> values (<值列表>);
4.1.3 数据表的复制
1: 以创建新表的复制形式
create table student_bak1 select * from student;
2:复制数据
本章目标 使用insert语句添加数据 使用update语句修改数据 使用delete语句删除数据
4.1 添加新数据
4.1.1 插入单行记录:
insert into <表名> (列名列表)values (<值列表>)
或者 insert into <表名> values (<值列表>) -- 简写
4.1.2 插入多行记录 :
insert into <表名> (<列名列表>) values (<值列表>),(<值列表>),。。。。;
或者 insert into <表名> values (<值列表>);
insert into <表名> values (<值列表>);
insert into <表名> values (<值列表>);
4.1.3 数据表的复制
1: 以创建新表的复制形式
create table student_bak1 select * from student;
2:复制数据
create table student_bak2(
pk_id int primary key auto_increment,
name varchar(20) not null,
age int ,
gender char(3) default "男",
birthday date,
phoneNo char(12)
);
insert into student_bak2_select * from student;
4.2 更改已有数据
update <表名> set <新列植列表> where <过滤条件>;
4.3 删除数据
delete from <表名> where <过滤条件>;
update student set age=null where name="未成年";
4.2 更改已有数据
update <表名> set <新列植列表> where <过滤条件>;
4.3 删除数据
delete from <表名> where <过滤条件>;
删除 student_bak2的所有信息
delete from student_bak2; -- delete 语句删除会记录日志 删完数据以后 自动增长依然继续递增
truncate table student_bak2; -- truncate 不会在日志中记录的 删完数据以后 自动增长回到初始值 1
删除 update student set age=null where name="未成年";