[笔记]MySQL查询语法
2017-10-19 16:04
288 查看
分组查询语法:
SELECT
分组完的字段1,
分组完的字段2,
...
FROM表名
[WHERE全局表的过滤条件]
[GROUP BY表字段1,表字段2
HAVING分组完成后的过滤条件(可以加聚合)
]
[ORDER BY分组完的字段1ASC/DESC,分组完的字段1ASC/DESC,...]
查询所有数据
SELECT*FROMtable_name [WHEREcondition]
避免重复数据的查询
使用关键字:DISTINCT
SELECTDISTINCT clazzFROM
stu_info
查询数据处理
数学运算的数据结果处理:+ - * / %
SELECT name,priceAS'人民币',
price/6AS'美元'FROM
t_menu
格式化的数据处理使用CONCAT(STR1, STR2,...)进行字符串拼接是最常用的。
SELECT name,CONCAT('¥',price)AS'人民币',
CONCAT('$',price/6)AS'美元'FROM
t_menu
条件查询
· 带关系运算符和逻辑运算符的表达式;
· 带 BETWEEN AND关键字的条件查询;
· 带 IS NULL关键字的条件查询;
· 带 IN关键字的条件查询;
· 带 LIKE关键字的条件查询。
关系运算符和逻辑运算符
关系运算符:>、 >=、 <、
<=、 !=(<>)、 =;
逻辑运算符:AND(&&)、OR(||)、NOT(!)、XOR。
示例:
SELECT*FROM stu_infoWHERE
age >=18AND clazz='C1'AND
code='01'
BETWEEN AND
一般用在对数值或者日期的区间判断条件中,而且是可以被替代的。
SELECT*FROM stu_infoWHERE
age BETWEEN 16
AND 20
SELECT*FROM stu_infoWHERE
age >=16
AND age<=20
--使用 NOT
取反
SELECT*FROM stu_infoWHERE
NOT (age>=16AND age<=20)
IS NULL
判断数据结果集中非空元素,要注意的是:NULL和空字符串是两个概念,使用的查询条件不尽相同
SELECT*FROM stu_infoWHERE
name ISNULL;
SELECT*FROM stu_infoWHERE
name ='';--
判断空字符串
使用非空判断时要注意
SELECT*FROM stu_infoWHERE
name IS NOT
NULL
IN
条件在某些离散的数据范围内
SELECT*FROM stu_infoWHERE
clazzIN ('C1','C2');
--替代方案
SELECT*FROM stu_infoWHERE
clazz='C1'OR clazz='C2'
LIKE
模糊查询:用的较多,一般用到的是全匹配 %搜索字%,尾部匹配 搜索字%
其他还有单个字匹配 _ 和首部匹配 %搜索字
SELECT*FROM stu_infoWHERE
name LIKE'李_强';
SELECT*FROM stu_infoWHERE
name LIKE'李%';
SELECT*FROM stu_infoWHERE
name LIKE'%李%';
数据排序
数据的排序方式:顺序 ASC、逆序 DESC。
SELECT*FROM stu_infoORDERBY
clazzASC, code
DESC
限制数据记录数量
使用 LIMIT关键字,后面跟两个参数,第一个参数是从第几条开始,第二个是一共显示多少条记录
SELECT*FROM stu_infoORDERBY
clazzASC, code
DESCLIMIT9,3
--显示第 page
页,每页显示 num
条记录
-- page = 2; num = 3;
-- x = (page - 1) * num
-- y = num
对于一个较完整的 SQL语句执行的解释
SELECT
clazz,
MAX(age)AS'最大年龄',
COUNT(*)AS'多少人'
FROM stu_info
WHERE id>2
GROUPBY clazzHAVING count(*)>1
ORDERBY MAX(age)DESC
以上语句的执行顺序:
1. 筛选整个表找那个id > 2 的数据;
2. 把筛选出的记录按照 clazz 字段进行分组;
3. 把分组完的结果,筛选出每组数据总数量 > 1的数据 count(*)
> 1;
4. 按照分组后的字段进行排序 MAX(age) DESC;
5. 按照 SELECT中要求显示的字段输出结果集。
常用的统计函数
COUNT:在实际开发中,会使用 COUNT函数计算条件查询后的总数据量,用于计算总页数。另外用在分组聚合函数中求分组单元中的数据量。
相关文章推荐
- Mysql学习笔记二——基础查询where练习
- Solr查询语法笔记——查询参数缩写
- MySQL联合查询语法内联、左联、右联、全联
- Mysql学习笔记八——子句查询
- mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】
- mysql笔记 三 查询语句 where having group order by
- MySQL学习笔记之三:单表查询(Select)和常用函数
- MySQL之数据查询语法(DQL)--(2)条件查询
- mysql 笔记---MySQL多表查询之外键、表连接、子查询、索引
- MySQL(九)之数据表的查询详解(SELECT语法)二
- MySQL中的基本查询语句学习笔记
- 【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法
- MySQL笔记-select多表查询
- MySql基本的语法(学习笔记)
- 【数据库学习笔记】MySQL_02_查询,约束
- 【MySQL笔记】数据库的查询
- 【MySQL笔记】SQL基本语法
- [MySQL]学习笔记- 用户行为表中,查询每个人的一条最新行为(分组 排序 取时间最大的一条记录)
- mysql 查询语法记录
- 关于一个MYSQL语法(在查询中使用count)的兼容性问题