第二章 MySQL的DQL操作(3)

MySQL数据库

第二章 MySQL的DML操作

一、DQL(Data Query Language)

数据查询语言,专门用于查询数据库数据、视图、函数等数据库相关结构。
关键字**:select**

1、语法结构
select 查询所要显示的字段列表 from 所要查询的表结构 [where 查询条件];
2、select 查询 SQL 的执行顺序

(1)、通过 from 关键字准备数据;
(2)、通过 where 关键字对所确定的数据进行筛选,本质上 where 后面是 boolean,当该 boolean 结果为 true 时,那么该数据被选中;
(3)、通过 order by 对所筛选的最终结果进行排序;
(4)、通过 select 对所筛选出来的数据进行显示。
在这里插入图片描述

3、select查询

(1)查询所有的字段信息,使用通配符*

select * from 表名;

(2)查询部分字段信息

select 字段名1,字段名2 from 表名;

注意:当需要显示所有字段时,为了提高SQL运行效率,不建议使用*来进行通配的,而是明确的写出每个字段。
(3)在查询时使用字段的别名,使用关键字AS(AS也可以忽略不写)

select 字段名1 as 别名1, 字段名2 as 别名2 from 表名;

AS子句作用:

  • 可给数据列取一个新别名
  • 可给表取一个新别名
  • 可把经计算或总结的结果用另外一个新名称来代替
    (4)对查询的结果进行去重,使用关键字distinct
select distinct 字段名 from 表名;
4、where条件语句

(1)用于检索数据表中符合条件的记录
(2)搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
(3)搜索条件的组成

  • 逻辑操作符
    在这里插入图片描述
  • 比较操作符

在这里插入图片描述

5、between…and…范围查询
select 字段名 from where 字段名 between 条件1 and 条件2;

在这里插入图片描述

等同于 >= 和 <= 联合使用
注意:为了提高效率,不建议使用between…and…来进行查询。

6、like模糊查询

在where子句中,使用like关键字进行模糊查询
(1)与“%”一起使用,表示匹配0或任意多个字符
(2)与“_”一起使用,表示匹配单个字符
在这里插入图片描述

7、in进行范围查询

在where子句中使用in进行范围查询:

select 字段名1,字段名2 from 表名 where   字段名  in  ( 值1,值2,值3…)  

在这里插入图片描述

(1)查询的字段名的值,至少与括号中的一个值相同;
(2)多个值之间用英文逗号隔开;

8、NULL空值条件查询

(1)判断字段是否为空

select 字段名 from 表名 where 字段 is null;

(1)判断字段是否不为空

select 字段名 from 表名 where 字段 is not null;
9、连接查询(多表查询)

如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询。
(1)join…on…
在这里插入图片描述
注意: INNER JOIN 与 JOIN 是相同的;
(2)left join…on…
在这里插入图片描述
(3)right join…on…
在这里插入图片描述
(4)join对比
在这里插入图片描述
在这里插入图片描述
(5)两张表关联查询时,除了使用join…on…之外,也可以直接进行连接

select e.name,w.name from sys_emp e,sys_welfare w;

(6)join为横向连接,union为纵向连接。
union:实现将两张表进行笛卡尔连接,纵向连接。在使用时,需要注意两张表所显示的字段必须是相同名称的。

10、子查询

(1)在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句,外部那个select语句则称为主查询语句。
(2)主查询和子查询的关系:

  • 子查询是嵌入到主查询中。
  • 子查询是辅助主查询的,要么充当条件,要么充当数据源。
  • 子查询是可以独立存在的语句,是一条完整的 select 语句。
    (3) 嵌套查询可由多个子查询组成,求解的方式是由里及外,子查询返回的结果一般都是集合,故而建议使用 IN 关键字。
11、order by 排序

(1)对select语句查询得到的结果,按某些字段进行排序。
(2)与desc(降序)或asc(升序)搭配使用,默认为asc(升序)。

select 字段名 from 表 where 条件 order by 字段[desc/asc];
12、limit

(1)MySQL和SQL Service独有的性质。
(2)实现数据的分页查询,即从一批结果数据中规定每页显示多少条数据,也可以查询中间某页记录。
(3)limit begin,size
其中begin表示开始查询记录的下标,begin是从0开始的;
size表示从begin开始连续查询到个数。
在这里插入图片描述

(4)页面转换为开始记录下标的公式
(当前页码 - 1) * 每页显示数量

13、group by 分组

根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。

select 字段名 from 表名 group by 分组字段名;
14、having

如果使用group by 分组时,进行数据筛选时,需要使用having。
注意:having是跟在group之后。

15、虚表dual

在数据库中存在一张数据表dual,该表被称为“虚表”,它的存在仅仅是为了保证SQL的语法完整。

二、MySQL函数

1、聚合函数在这里插入图片描述
2、字符串函数

在这里插入图片描述

3、数学函数

在这里插入图片描述

4、时间日期函数

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值