一、MySQL查询
1.1 排序
ASC 是按照升序进行排序的,是默认的排序方式,即可以省略;
SELECT语句中如果没有指定具体的排序方式,则默认按ASC方式进行排序。
DESC是按降序方式进行排列。当然ORDER BY前面也可以使用 WHFRE 子句对查询结果进一步过滤。
1.1.1 排序语法
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ...
1.1.2 order by案例
(1)按id进行升序排序
(2)order by还可以结合where进行条件过滤
(3)order by 语句也可以使用多个字段来进行排序,当排序的第一个字段相同的记录有多条的情况下,这些多条的记录再按照第二个字段进行排序,order by 后面跟多个字段时,字段之间使用英文逗号隔开,优先级是按先后顺序而定,但order by 之后的第一个参数只有在出现相同值时,第二个字段才有意义。
1.2 区间判断及查询不重复记录
1.2.1 区间判断
(1)AND/OR ——且/或
(2)嵌套/多条件
1.2.2 查询不重复记录
distinct 查询不重复记录
1.3 对结果进行分组
通过 SQL 查询出来的结果,还可以对其进行分组,使用 GROUP BY 语句来实现 ,GROUP BY 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、 求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY 分组的时候可以按一个或多个字段对结果进行分组处理。
1.3.1 group by 语法
SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;
1.3.2 group by 案例
(1)按hobbid相同的分组,计算相同分数的学生个数(基于name个数进行计数)
(2)结合where语句,筛选分数大于等于90的分组,计算学生个数
(3)结合order by把计算出的学生个数按升序排列
1.4 限制结果条目
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句。
LIMIT 的第一个参数是位置偏移量(可选参数),是设置 MySQL 从哪一行开始显示。 如果不设定第一个参数,将会从表中的第一条记录开始显示。需要注意的是,第一条记录的 位置偏移量是 0,第二条是 1,以此类推。第二个参数是设置返回记录行的最大数目。
1.4.1 LIMIT 语法
SELECT column1, column2, ... FROM table_name LIMIT [offset,] number
1.4.2 LIMIT 案例
(1)查询所有信息显示前4行记录
(2)从第4行开始,往后显示3行内容
(3)输出最后三行
1.5 设置别名
在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性。
1.5.1 设置别名语法
对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;
1.5.2 设置别名案例
注意:此处AS起到的作用:
1、创建了一个新表t1 并定义表结构,插入表数据(与ky35表相同)
2、但是”约束“没有被完全”复制“过来 #但是如果原表设置了主键,那么附表的:default字段会默认设置一个0
1.6 通配符
通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。
通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:
%:百分号表示零个、一个或多个字符 *
_:下划线表示单个字符 .