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;
对视图对象的增删改查会导致原表被修改
好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!