insert插入多条语句
insert into 表名(字段1,字段2) values(值1,值2),
(值3,值4),...,()
快速创建表
将查询的结果当作成新的表
create table xx as select * from emp;
把查询结果插入到
insert into xx select * from xxx
快速删除表中的数据,不可恢复!
truncate table xxx # DDL
删除表
drop table xxx
DDL 不讲,因为不常用,create,drop,alter
create table t_vip(
id int unique,
name varchar(255) not null
)
null不算unique
两个字段联系起来具有唯一性
create table t_vip(
id int,
name varchar(255),
email varchar(255),
unique(name, email) # 表集约束
)
not null只有列级约束,没有表级约束
如果一个字段被unique和not null 同时修饰,那么就自动成为主键(Oracle不是)
任何一张表都应该有主键。
主键特征:不能空,不能重复
drop table if exists t_vip;
create table t_vip(
id int primary key,
name varchar(255)
)
单一主键和复合之间,建议不使用复合主键
一张表主键约束只能添加一个
主键值建议使用 int,bigint,char,一般都是定长的。
自然主键和业务主键。自然主键是一个int值,与业务没关系。业务主键是业务中的一个字段。建议使用自然主键,不要和业务挂钩。
自增
create table xxx (
int id primary key auto_increment,
name varchar(255)
)
foreign key
create table t_class(
classno int primary key,
classname varchar(255)
)
create table t_student(
no int primary key,
name varchar(255),
cno int,
foreign key(cno) references t_class(classno)
)
外键值可以为null。外键不一定是父表的主键,但是一定要有unique约定
MyISAM
格式文件
数据文件
索引文件
InnoDB
Memory
添加了unique或者主键的字段,会自动创建索引
事务是一个完整的业务逻辑。
和事务有关的是DML语句,update delete insert
提交事务:commit
回滚事务:callback
mysql默认自动提交,每次执行一个DML语句就提交一次!
两个事务A和B
可以在单个字段,也可以在多个字段上添加。为了缩小扫描范围。
create index emp_ename_index on emp(ename);
drop index emp_ename_index on emp(ename);
create view dept2_view as select * from dept;
drop view dept2_view;
对视图对象的增删改查会导致原表被修改
好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!