基础部分
create database {数据库名字} 创建数据库
use {数据库名称 } 使用数据库
show databases {数据库名称 } 查看数据库
show full tables 查看表(有详细信息)
drop database {数据库名称 }删除数据库
create table {表名} 创建表
describe {表名} 查看表
增加列 alter table 表名 add 字段名 数据类型;
修改字段类型 alter table 表名 modify 字段名 数据类型;
修改字段名 alter table 表名 change 旧字段名 新字段名 数据类型;
删除列 alter table 表名 drop 字段名;
主键约束:primary key
外键约束:foreign key
修改表名:ALTER TABLE {表名} rename {新表名}
唯一约束:UNIQUE
非空约束:NOT NULL
默认约束:DEFAULT
设置表的属性值自动增加:AUTO_INCREMENT
指定位置添加字段 ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] AFTER <已经存在的字段名>;
开头添加字段 ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;
末尾添加字段 ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];
内外键
删除外键 alter table <表名> drop foreign (外键约束);
添加外键 foreign key(字段名) references 外键表名(外键字段名字)
添加内建 primary key(字段名)
添加默认值 {字段名}{字段类型} default “默认值”
设置值的范围 {字段名}{字段类型} check (字段名 取值范围)
列表范围查询:
SELECT 字段名 FROM 表名 WHERE 查询字段 BETWEEN 数值 AND 数值;
查询列表内容:
SELECT 字段名 FROM 表名 WHERE 查询字段 in (查询值);
查询列表不属于的内容:
SELECT 字段名 FROM 表名 WHERE 查询字段 not in (查询值);
插入表数据(部分记录):
insert into 表名 (插入字段名) values (数据,数据,数据);
插入表数据(完整记录):
insert into 表名 values(数据,数据,数据);--(按字段顺序排列,中文加影号)
同时插入多条数据:insert into 表名(字段名)values
(数据,数据,数据),
(数据,数据,数据),
(数据,数据,数据);
修改表指定数据:
update 表名 set 字段名=修改值,字段名=修改值 where 字段名=ID;(横向)
删除指定数据 :
delete from 表名 where 字段名(筛选项)
例如id=3(删除id为3的所有数据)
删除大于或小于数据:
delete from 表名 where 字段名 >数值 or 字段名 <数值;
查询表内字段内容:
select 字段名,字段名 from 表名
定义字段别名:
select 字段名 as '定义字段别名'
批量定义字段别名:
select 字段名2,字段名3
case
when 修改字段名1 is null then '无业绩'
when 修改字段名1 <=1000 then '业绩一般'
else '优秀'
end '定义结果字段名'
from 表名
查询结果去重:
select distinct 字段名,字段名 from 表名 where 字段名=查询字段内容
函数:
rand():随机生成一个0到1之间的值,加上*100就是0到一百之间的数
AVG:平均值
MAX:最大值
MIN:最小值
查询字段什么或什么的内容:
select *
from 表名
where 字段名 in (查询内容)
查询字段不是什么或什么的内容:
select *
from 表名
where 字段名 not in (查询内容)
查询字段内容范围:
select *
from 表名
where 查询字段名 between 范围(小值) and 范围(大值)
模糊查询:
where 字段名 like 查询范围
“%”是 MySQL 中最常用的通配符,它能代表任何长度的字符串,字符串的长度可以为 0。例如,a%b表示以字母 a 开头,以字母 b 结尾的任意长度的字符串。
“_”只能代表单个字符,字符的长度不能为 0。例如,a_b可以代表 acb、adb、aub 等字符串。
排序
select *
from 表名
where 查询尺度
order by 排序内容 desc(降序,升序为:asc)默认为升序
多个条件排序
select *
from 表名
where 查询尺度
order by * desc,* asc
对分组查询添加条件
select 字段,函数()
from 表名
group by 组名 having avg(esal)>1000 #函数+条件
对分组查询后新增一条记录为总和
select 字段,函数()
from 表名
group by 组名 with rollup
限制查询结果行数
select 字段
from 表名
limit 3(行数)
多表查询
select *
from 表名,表名
where 表名.字段名=表名.字段名
OR
SELECT ename,esal,dname
FROM employees,departments
WHERE employees.eno=departments.dno
内连接:
select 字段名
from 表名1
inner join 表名2
on 条件(表)(employees.eno=departments.dno)
where
连接查询:
select
from 表名1
inner join 表名2
on
where
左连接(以左边的表为准查询)下面是以表1的基础查询更改
select
from 表名1 left join 表名2
on
where
子查询操作符:any(some),all,in,exists
exists方法:
select 字段名
from 表名
where exists (select 字段名 from 表名 where 查询条件)
in方法:
select 字段名
from 表名
where in(select 字段名 from 表名)
合并查询结果:
select... from ...
union
select... from ...
创建视图
create view 视图名称
as
select 字段名
from 表名
where 查询范围
索引:为系统指向,快速定位到要使用的表
索引类型: primary key 索引
index 索引
unique 索引
创建索引:create index 索引名 on 表名 {字段名}(在现有表中添加索引)
alter table 表名 add index 索引名 {字段名}(添加索引,修改表结构)
查看索引:show index from 表名
删除索引:alter table 表名 drop index 索引名
drop index 索引名 on 表名
事务:
查看事务状态:show variables like 事务名称;
关闭自动提交状态:set autocommit=0;(数值为1就是开启状态)
建立保存点(快照):savepoint 保存点名称;
回到保存点:rollback to savepoint 保存点名称;
提交内容(保存修改内容):commit;
变量定义
用户变量:set @用户变量="表达式"
局部变量:declare 变量名 类型(int);
为变量赋值:set 变量名=表达式或者值
调用存储过程:call 存储名(数);
删除存储过程:drop procedure if exists 存储名
查看存储过程的创建语句:show create procedure
查看当前数据库的存储过程:show procedure status where db=""
跳出循环:itrate
增大循环次数:bigint
函数:
自定义函数的创建:create function 函数名 returns(返回值类型)
打开创建自定义函数权限:set global log_bin_trust_function_creators=1;
commit;
刷新权限列表:flush privileges