- 一、SQL基础
- 1.DDL(Data Definition Language)
- 2.DQL(Data Query Language)
- 3.DML(Data Manipulation Language)
- 4.DCL(Data Control Language)
- 5.函数
- 6.约束
- 7.多表查询
- 8.事务
- 一、SQL进阶
- 1.存储引擎
- 2.性能分析
- 3.索引
- 4.SQL优化
- 总结
一、SQL基础 1.DDL(Data Definition Language)
--数据库操作 show databases; select database(); create database database_name; drop database database_name; use database_name; --表操作 show tables; desc table_name; create table( id int primary key auto_increment, name varchar(10) ); show create table table_name; alter table table_name add nickname varchar(10) ; alter table table_name modify nickname varchar(7); alter table table_name change 旧字段 新字段 数据类型; alter table table_name drop nickname; alter table table_name rename to new_name; drop table table_name; truncate table table_name;2.DQL(Data Query Language)
--SQL语句顺序 select *|字段名1 as|省略 别名,字段名2 as|省略 别名 from table_name as|省略 别名 where group by having order by limit --去除重复数据 select distinct 字段名 from table_name; --聚合函数 select 聚合函数(字段名) from table_name; --分组查询 select * from table_name where 条件 group by 字段名 having 筛选; --排序查询 select * from table_name order by 字段名 asc|desc; --分页查询 --查询第一页,展示十条数据 select * from table_name limit 0,10; --查询第二页 select * from table_name limit 10,10;3.DML(Data Manipulation Language)
insert into table_name(字段名) values(),(); insert into table_name values(); update table_name set 字段1=value_1,字段2=value_2 where 条件; delete from table_name where 条件4.DCL(Data Control Language)
user mysql;
select * from user;
--创建用户
create user '用户名'@'主机名' identified by '密码';
alter user '用户名'@'主机名' indentified with mysql_native_password by '新密码';
drop user '用户名'@'主机名';
--权限管理
show grants for '用户名'@'主机名';
grant 权限 on 数据库名.表名 to '用户名'@'主机名';
revoke 权限 on 数据库名.表名 from '用户名'@'主机名';
--字符串函数
concat("","","")
lower(str)
upper(str)
--左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
lapd(str,n,pad)
--右填充,用字符串pad对str的左边进行填充,达到n个字符串长度
rpad(str,n,pad)
--首尾去空格
trim(str)
--返回从字符串str从start位置起的len个长度的字符串
substring(str,start,len)
5.函数
--数值函数 --向上取整 ceil() --向下取整 floor() --模长 mod(x,y) --0~1随机数 rand() --四舍五入保留y位小数 round(x,y) -日期函数 curdate(); curtime(); now(); year(date); month(date); day(date); --返回日期增加n的值 date_add(date,n) --返回日期1,2差值 datediff(date1,date2) --流程函数 if(value,t,f) ifnull(value1,value2) if elseif else end; case when then else end;6.约束
--约束
not null;
unique;
primary key
foreign key
default;
check;
auto_increment
##例子
create table user(
id int primary key auto_increment,
name varchar(10) not null unique,
age int check(age > 0 and age < 120),
status char(1) default '1',
gender char(1)
);
constraint fk_name foreign key(外键字段名) references 主表(列名)
7.多表查询
--内连接 table1 inner join table2 on 条件 --左右连接 left join on right join on --联合查询 union|union all --子查询 all any some in not in ##例子 -- 查询销售部和市场部的所有员工信息 select * from employee where dept in (select id from dept where name = '销售部' or name = '市场部'); -- 查询比财务部所有人工资都高的员工信息 select * from employee where salary > all(select salary from employee where dept = (select id from dept where name = '财务部')); -- 查询比研发部任意一人工资高的员工信息 select * from employee where salary > any (select salary from employee where dept = (select id from dept where name = '研发部'));8.事务
##事务是一组操作的集合,事务会把所有操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败 --查看事务提交方式 select @@autocommit; --设置事务提交方式 set @@autocommit = 0; --提交 commit; --回滚 rollback; start|begin transaction commit rollback; --事务四大特性ACID atomicitiy--原子性:事务要么全部完成,要么全部失败 consistency--一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。 isolation--隔离性:防止多个并发事务交叉执行而导致数据不一致 durability--持久性:事务处理结束后,对数据的修改就是永久的 --并发事务引起的问题 --脏读,不可重复读,幻读 --隔离级别 select @@transaction_isolation; set global|session transaction isolation level ....;一、SQL进阶 1.存储引擎
INNODB MYISAM MEMORY ##INNODB储存结构 tablespace segment extent 1m page 16k row 1k、2.性能分析
--查询执行频次 select global|session status like 'com______' --慢查询 # 开启慢查询日志开关 slow_query_log=1 # 设置慢查询日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询,记录慢查询日志 long_query_time=2 --慢查询日志开关 show variables like 'slow_query_log'; --profile select @@have_profiling; set profiling =1 show profiles show profiles for query query_id; show profiles cpu for query query_id; --explain3.索引
create (unique|FULLTEXT)index index_name on table_name(字段名1,字段名2,...) show index from table_name; drop index index_name on table_name; ##最左前缀法则 ##索引失效情况 use ignore force4.SQL优化
#插入优化 --批量插入,手动提交,主键顺序插入 --其他优化用索引,以及满足最左前缀法则
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。



