[笔记]MySQL查询语法

来源:互联网 发布:javascript基础单词 编辑:程序博客网 时间:2024/03/29 00:52

分组查询语法:

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 16AND 20

SELECT*FROM stu_infoWHERE age >=16 AND age<=20

--使用 NOT取反

SELECT*FROM stu_infoWHERENOT (age>=16AND age<=20)


IS NULL

判断数据结果集中非空元素,要注意的是:NULL空字符串是两个概念,使用的查询条件不尽相同

SELECT*FROM stu_infoWHERE name ISNULL;

SELECT*FROM stu_infoWHERE name ='';--判断空字符串

使用非空判断时要注意

SELECT*FROM stu_infoWHERE name IS NOTNULL


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, codeDESC


限制数据记录数量

使用 LIMIT关键字,后面跟两个参数,第一个参数是从第几条开始,第二个是一共显示多少条记录

SELECT*FROM stu_infoORDERBY clazzASC, codeDESCLIMIT9,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函数计算条件查询后的总数据量,用于计算总页数。另外用在分组聚合函数中求分组单元中的数据量。





原创粉丝点击