Mysql中的DQL

1. 查询简介

1.1 什么是查询

1.2 查询机制简介

*当查询条件为主键时,查询机制是索引机制(快速定位),否则会进行全表扫描,筛选符合条件的内容

2.查询基础语法

2.1 演示示例表

2.1.1 表1——student

2.1.2 表2——result

2.1.3 表3——subject

2.2 查询所有行与列

        SELECT * FROM 表名;

2.3 查询部分列

        SELECT 列名1,列名2... FROM 表名;

2.4 查询部分行

        SELECT * FROM 表名 WHERE 条件表达式;

2.5 一般查询语法,加入排序规则

SELECT    <列名|表达式|函数|常量>
FROM      <表名>
[WHERE    <查询条件表达式>]
[ORDER BY <排序的列名>[ASC(默认升序)或DESC(降序)]];

2.6 加入列别名

        使用 AS 列别名 对列名进行别名的指定

3.函数

3.1 常用聚合函数

3.1.2 平均值AVG()

        关键字 GROUP BY 表示分组

3.1.3 某字段行数COUNT()

3.1.4 某字段最大值MAX()与最小值MIN()

3.1.5 某字段和 SUM()

3.2 常用字符串函数

3.2.1 字符串连接 CONCAT()

        可以连接多个字符串

3.2.2 字符串替换INSERT()

        四个参数:
                参数1 被修改的字符串
                参数2 被修改的起始位置
                参数3 被修改部分的长度
                参数4 替换的新字符串

3.2.3 LOWER()转小写与UPPER()转大写

(4)字符串截取 SUBSTRING()

        三个参数:
                参数1 被截取的字符串
                参数2 截取的起始位置
                参数3 截取的长度

3.3 常用时间函数

补充的两个函数
(1)计算相隔天数 DATEDIFF(date1,date2)

(2)计算加上指定天数后的日期 ADDDATE(date,n)

3.4 常用数学函数

4.LIMIT

4.1 LIMIT语法结构

4.2 LIMIT 单参数

4.3 LIMIT 双参数

        这个函数初始位置默认是从0开始的

5.子查询

5.1 子查询概述

定义:子查询是一个嵌套在SELECT、INSERT、UPDATE 、DELETE 语句或其他子查询中的查询
语法:SELECT … FROM 表名 WHERE 字段名  比较运算符 (子查询);
注意:①将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个②先执行子查询,返回所有来自子查询的结果,再执行外围的父查询,返回查询的最终结果

5.2 示例

6.多表查询

6.1 分组查询

6.1.1 分组概述

分组查询定义:根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表
分组查询语法:SELECT xxx FROM 表名 GROUP BY xxx;

6.1.2 分组示例

示例1——单分组

 示例2——多分组

6.1.3 分组筛选

定义:
WHERE子句——用来筛选 FROM 子句中指定的操作所产生的行
GROUP BY子句——用来分组 WHERE 子句的输出
HAVING子句——用来从分组的结果中筛选行

6.2 多表关联查询

6.2.1 多表关联查询种类

内连接(INNER JOIN)
左外连接(LEFT JOIN)
右外连接(RIGHT JOIN)
自连接(SELF JOIN)

补充:使用 表名.字段名 表示当多个表含有相同字段时需要表明选中哪个表的该字段

6.2.2 内连接

定义:使用比较运算符根据每个表的通用列中的值匹配两个表中的行(双向匹配,排除不匹配的项目)
语法:SELECT xxx FROM 表A INNER JOIN 表B ON 表达式;
示例:

6.2.3 外连接

左外连接:根据左表的记录,在被连接的右表中找出符合条件的记录与之匹配,如果找不到与左表匹配的,用null表示
右外连接:右外连接的原理与左外连接相同,颠倒两表的顺序即可(一般只使用左外连接即可)
示例:

6.2.4 自连接

        原理与内连接类似,只不过是将表自己的一个字段与另一个字段进行匹配,此时需要使用AS来对自身不同的表副本进行标记。

示例:

表categories

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值