您的位置:首页 > 数据库 > MySQL

[笔记]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函数计算条件查询后的总数据量,用于计算总页数。另外用在分组聚合函数中求分组单元中的数据量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: