sql基础语法
- 1. 什么是MySQL
- 1.1 RDBMS 特点
- 1.2 sql分类
- 1.3 数据类型
- 1.4 适应MySQL
- 2. 代码顺序与后台执行顺序
- 2.1 代码撰写顺序
- 2.2 后台执行顺序
- 3. 基础查询
- 4. 条件检索
- 5. 分组
- 6. 多表查询
- 6.1 子查询(几乎不用)
- 6.2 连接查询
- 7. 常用函数
前同事培训过相关内容,自己已能简单实践。近期阅读《SQL必知必会》第五版后,对内容有了更多理解,便重新梳理成文。本文框架多借鉴原内容,本人仅是复现结果,并对部分错漏进行了更改。
1. 什么是MySQL
MySQL(SQL,Structure Query Language 结构化查询语言)是最流行的关系型数据库管理系统
(RDBMS,Relational Database Management System)之一。
1.1 RDBMS 特点
a) 数据以表格的形式出现
b) 每行是一组相关数据的记录
c) 每列是相同数据类型组成的数据域
d) 许多的行和列组成一张表单
e) 若干的表单组成database
1.2 sql分类
a) DDL(Data Definition Language) 数据定义语言,用来操作数据库、表等; 常用语句:CREATE、 ALTER、DROP
b) DML(Data Manipulation Language) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE
c) DCL(Data Control Language) 数据控制语言,用来操作访问权限和安全级别; 常用语句:GRANT、DENY、COMMIT、ROLLBACK
d) DQL(Data Query Language) 数据查询语言,用来查询数据 常用语句:SELECT
1.3 数据类型
数值、字符、日期
1.4 适应MySQL
(1)R
library(RMySQL)
con1 <- dbConnect(MySQL(), host="",port=3306, dbname="", username="",
password="",encoding='utf-8')
somatic_out <- dbGetQuery(con1 ”select * from database1“)
(2)python
import pymysql
conn = pymysql.connect(host='',user='',passwd='',db='',port=3306,charset='utf8')
df_qc = pd.read_sql_query("select * from database1" ,conn)
(3)shell
python Search__db.py -d 'database1' -s 'select * from database1 ' -t xls -o test
(4)客户端软件
DBEVER等第三方软件
2. 代码顺序与后台执行顺序
2.1 代码撰写顺序
select distinct id
from database1 a
join database2 b
on a.id=b.id
where a.type='car'
group by a.batch
having count(*)>5
union (select...)
order by a.batch
limit 0,1000
2.2 后台执行顺序
from database1 a
on a.id=b..id
join database2 b
where a.type='car'
group by a.batch
having count(*)>5
select id
distinct id
union (select ...)
order by a.batch
limit 0,1000
3. 基础查询
4. 条件检索
5. 分组
6. 多表查询
6.1 子查询(几乎不用)
6.2 连接查询
日常使用最多的是**内联结、左外联结**。
7. 常用函数
(1)case when
(2)if
(3)字符串截取大法