栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

SQL语句(复习)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL语句(复习)

SQL语句(复习版)
  • 一、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;

--explain
3.索引
 
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
force
4.SQL优化
#插入优化
--批量插入,手动提交,主键顺序插入
--其他优化用索引,以及满足最左前缀法则


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号