1、复制快速原有表到新表
create table emp2 as select * from emp;
原理:
将一个查询结果当做一张表新建!!!!!
这个可以完成表的快速复制!!!!
表创建出来,同时表中的数据也存在了!!
2、表的删除
//删除dept_bak表中的数据
delete from dept_bak; //这种删除数据的方式比较慢。
delete语句删除数据的原理?(delete属于DML语句!!!)
表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
这种删除缺点是:删除效率比较低。
这种删除优点是:支持回滚,后悔了可以再恢复数据!!!
truncate语句删除数据的原理?
这种删除效率比较高,表被一次截断,物理删除。
这种删除缺点:不支持回滚。
这种删除优点:快速。
用法:truncate table dept_bak; (这种操作属于DDL操作。)
3、表的约束
3.1 什么是约束?
约束对应的英语单词:constraint
在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性、有效性!!!
3.2 约束包括哪些?
非空约束:not null:非空约束not null约束的字段不能为NULL
唯一性约束: unique:唯一性约束unique约束的字段不能重复,但是可以为NULL。
主键约束: primary key (简称PK):主键值是每一行记录的唯一标识。
记住:任何一张表都应该有主键,没有主键,表无效!!
主键的特征:not null + unique
主键值建议使用:
int
bigint
char
等类型。不建议使用varchar
外键约束:foreign key(简称FK)
例:create table t_vip(
id int primary key,
name varchar(255),
email varchar(255),
unique(name,email) // 约束没有添加在列的后面,这种约束被称为表级约束
tel varchar(255) not null
);