DDL 数据定义语言
创建数据库
1.创建数据库
CREATE DATABASE 数据库名;
2.判断数据库是否存在,若不存在则创建数据库
CREATE DATABASE if not exists 数据库名;
3.创建指定字符集的数据库
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
查看数据库
1.查看所有数据库
show databases;
2.查看某个数据库的定义信息
show create database 数据库名;
修改数据库
1.修改数据库的字符集
ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 字符集;
删除数据库
drop database 数据库名;
使用数据库
1.使用数据库
use 数据库名;
2.查看当前使用的数据库
select database();
创建表
create table 表名 (
字段名1 字段类型 1,
字段名2 字段类型 2,
字段名3 字段类型 3
);
查看表
1.查看正在使用的数据库中的所有表
show tables;
2.查看表结构
desc 表名;
3.查看创建表的SQL语句
show create table 表名;
创建一个表结构相同的表
create table 新表名 like 旧表名;
删除表
1.删除表
drop table 表名;
2.判断表是否存在,若存在则删除
drop table if exists 表名
修改表结构
1.添加列
ALTER TABLE 表名 ADD 列名 类型;
2.修改类型
ALTER TABLE 表名 MODIFY 列名 新类型;
3.修改列名
ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
4.删除列
ALTER TABLE 表名 DROP 列名;
5.修改表名
rename table 表名 to 新表名;
6.修改字符集
ALTER TABLE 表名 character set 字符集;
DML 数据操作语言
插入
insert into 表名(字段名 1, 字段名 2) values (字段值 1, 字段值2) (字段值 1, 字段值2) (字段值 1, 字段值2)…;
更新
update 表名 set 列名 = 值 where 条件;
删除
delect from 表名 where 条件;
DQL 数据查询语言
简单查询
select * from 表名;
去重
distinct 去除重复值
条件查询
<> :不等于
between…and:介于两者之间
in() :在()里存在
like :模糊查询
isnull :值为null
排序
order by
聚合函数
max() 最大值,min() 最小值,avg()平均值,count() 求个数,sum() 求和
分组
group by having
limit
limit offset, lenth
约束
主键约束
非空且唯一
primary key
alter table 表名 add(添加)/drop(删除) primary key(字段名);
auto_increment:自动增长
设置自动增长的初始值:ALTER TABLE表名AUTO_INCREMENT = 初始值;
唯一约束
unique
非空约束
not nul
default :设置默认值
外键约束
foreign key
另一张表的主键作为这张表的外键
constraint 外键名 foreign key (外键字段名) references 主表名(主键字段名);
外键的级联
on update cascade 级联更新
on delete cascade 级联删除
检查约束(mysql不支持)
表连接查询
多表查询
隐式内连接
SELECT 字段名 FROM 左表, 右表 WHERE 条件;
显示内连接
SELECT 字段名 FROM 左表 join 右表 on 条件;
左外连接
SELECT 字段名 FROM 左表 left join 右表 on 条件;
右外连接
SELECT 字段名 FROM 左表 right join 右表 on 条件;
子查询
一个查询作为另一个查询的条件
子查询为一个值的时候
SELECT 查询的字段 FROM 表 WHERE 字段 = (子查询);
子查询为单行多列的时候
SELECT 查询的字段 FROM 表 WHERE 字段 in (子查询);
子查询为多行多列的时候
SELECT 查询的字段 FROM(子查询)表别名 where 条件;
DCL 数据控制语言
事务
开启事务: start transaction;
提交事务:commit;
事务回滚:rollback;
回滚点
savepoint 回滚点名;
回滚到回滚点:
rollback to 回滚点ming;
事务的四大特性
原子性,一致性,隔离性, 持久性。
事务的隔离级别
脏读
读到另一个事务未提交的数据
不可重复读
读两次的内容不一致 update 引起
幻读
读两次的数量不一致 insert delect引起
隔离级别
1.读未提交(read uncommitted) 会造成 脏读,不可重复读,幻读
2.读已提交(read committed) 会造成不可重复读,幻读
3.可重复读(repeatable read) 会造成幻读
4.串行化(serializable) 无
设置隔离级别
set global transaction isolation level 级别字符串;
修改数据库安全模式
SET SQL_SAFE_UPDATES = 0;
索引
创建索引
create index 索引名 on 表(字段名);
删除索引
alter table 表 drop index 索引名;
索引的好处!!!
视图
临时的表
创建视图:create view 视图名 as 查询
删除:drop view 视图名;
视图的好处!!!