创建表
create table t_表名/tbl_表名(
字段名称 字段类型 字段长度 字段约束,
字段名称 字段类型 字段长度 字段约束
);
删除表
drop talbe t_表名;
drop talbe if exists t_表名; //加入if exists 意思是如果表存在则删除
复制表
create table 表名 as select * from 被复制的表;
create table 表名 as 查询语句;
Mysql常用数据类型:char varchar int bigint float double date BLOB CLOB等
DML语句:insert update delete
insert into 表名(字段名) values (值);
update 表名 set 字段名1 = 字段值1,字段名2 = 字段值2 where 限制条件; //修改和删除要加条件,否则全表中的修改
delete from t_表名; //删除表中的所有数据
delete from t_表名 where 限制条件; //删除符合条件的数据
修改表
alter table 表名 add 字段 值; //增加字段
alter table 表名 modify 字段 值; //修改字段
alter table 表名 drop 字段; //删除字段
alter table 表名 change name 修改后的字段名 值; //修改表名
非空约束 (指定值不能为null)
create table 表名(
字段名 字段类型 字段长度 not null //字段长度后加not null即为非空约束;
);
列级约束
create table 表名(
字段名 字段类型 字段长度 unique //字段长度后加unique即为唯一约束;
);
表级约束
create table 表名(
字段名 字段类型 字段长度, //字段长度后加not null即为非空约束;
unique(约束字段1,约束字段2) //加入约束字段1,2 1和2同时相同时重复
);
给约束起名
create table 表名(
constraint 表名_字段名1_字段名2_unique unique(字段名1,字段名2)
);
唯一约束和非空约束
create table 表名(
字段名 字段类型 字段长度 not null unique //字段长度后加not null即为非空约束,在加上唯一约束;
);
主键约束
添加主键primary key的字段既不能重复也不能为空,添加主索引
create table 表名(
字段名 字段类型 字段长度,
primary(字段)
);
create table 表名(
字段名 字段类型 字段长度,
constraint 主键名 primary(字段) //给主键命名
);
主键根据性质分类:自然主键,业务主键
自然主键:主键值若是一个自然数,并且这个自然数与业务没有任何关系,这种主键称为自然主键
业务主键:主键值若和当前表中的业务紧密相关,那么这种主键值就是业务主键,如果业务发生改变时,业务主键往往会受到影响。
MYSQL中自动生成主键值
create table 表名(
字段名 字段类型 字段长度 primary key auto_increment //自动生成主键值 从0逐渐增加 0 1 2...
);
外键约束
create table 表名1(
字段名 字段类型 字段长度,
constraint 表名2_字段_fk foreign key(字段名1) references 表名2(字段名2)
);
create table 表名2(
字段名 字段类型 字段长度 primary key
);
有外键引用之后,表分为父表和子表,创建表时先创建父表在删除子表,插入数据时先插入父表数据在插入子表数据
删除外键
alter talbe 表名 drop foreign key 外键名;
级联删除:在删除父表数据时,级联删除字表数据
alter talbe 表名 add constraint 外键名 foreign key(字段名1) references 表名2(字段名2) on delete cascade;
级联更新
alter talbe 表名 add constraint 外键名 foreign key(字段名1) references 表名2(字段名2) on update cascade;
索引:提高程序的检索或查询效率
主键自动添加索引,能够通过主键查询就通过主键查询,效率较高
表的索引方式:全表扫描,通过索引检索
创建索引
create (unique) index 索引名 on 表名(别名);
查看索引
show index from 表名;
删除索引
drop index 索引名 on 表名;
创建视图
create view 视图名 as 查询语句;
删除视图
drop view 视图名;
事务特征ACID
1.原子性:事务是最小单位,不可再分
2.一致性:事务要求所有的DML语句操作的时候,必须保证同时成功或同时失败
3.隔离性:一个事务不影响其他事务的运行
4.持久性:事务完成后,该事务对数据库所做的更改将持久的保持在数据库中,不会被回滚
事务SQL语句 commit 成功提交 rollback 失败回滚
事务隔离级别: 1.读未提交 2.读已提交 3.可重复读 4.串行化