DQL数据查询语言的学习(上)

 今天主要总结一下DQL(数据查询语言)中基本查询、过滤及排序、分组查询、多表查询四种查询。
 
 一、基本查询
 首先进入mysql,然后进入数据库db_xiaozhu,查询该库中现有的数据表:

在这里插入图片描述
然后查询t_mysql_beauty表中所有的数据信息:
在这里插入图片描述
我们也可以选择只查询特定的列的信息:
在这里插入图片描述
只需要将*换成我们需要查询的列段名即可,各列段名之间用,隔开。
别名:
我们可以替数据表的各个列段设置别名,只需要在列段名后面加上需要设置成的别名即可,除此之外还可以为数据表设置别名,语法格式为"select 列段名 from 数据表名 别名":
在这里插入图片描述
这里需要注意一下字符串的+号的问题,在mysql中,+号只用作运算符。如果要连接两个字符串,使用concat关键词。
在这里插入图片描述
MySQL版本查询:
查询命令:select version();
在这里插入图片描述
去重查询:
这里我们以出生日期为例,对数据表t_mysql_beauty进行去重查询:
在这里插入图片描述
注意:去重查询只能显示被查询列段的信息,如果同时查询其他列段则会报错:
在这里插入图片描述
显示表结构:
命令:desc 表名;
在这里插入图片描述
二、过滤及排序查询
过滤查询需要使用到where关键词,基本语法是 “select *from 表名 where 条件(boolean表达式)”;
条件语句中的筛选主要有下面几种:
1.运算符筛选:<,>,=,<>,<=,>=;其中<>为不等于;
2.逻辑筛选:即and(与)、or(或)、not(非);
3.模糊查询筛选:关键词like,用%表示任意数量多的任意字符,下划线_表示单个任意字符,可以配合关键词escape 来只表示下划线_本身;
下图中即表示查询last_name第二个字符为下划线的员工的信息在这里插入图片描述
4.区间查询:关键词 between…and,功能上等同于a<b &&a>c;
5.列表筛选查询
关键词:in
在这里插入图片描述
上图即按照员工是否在’it_prot’,‘ad_vp’,'ad_pres’三个部门来查询符合条件的员工的部门和last_name。
6.等值筛选查询
如果是比较null值,使用"is"和"is not"关键词来查询。
在这里插入图片描述
排序:
基本语法:order by 列名 desc(降序)/asc(升序),asc是默认排序方法,如果是升序的话可以省略不写。
升序:在这里插入图片描述
降序:
在这里插入图片描述
三、分组
基本语法:group by 列名 having 条件 条件(boolean条件)。
组函数(sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数)。
在这里插入图片描述
上面图中就是查询了各个部门中平均工资在6000以上的部门id。这里需要注意一下,使用组函数的时候必须是在having后面写条件,而不能写在where后面,因为组函数是分组以后才得到的值,如果用where的话在未分组之前就判断条件的话就不能拿到值。
然后还需要注意的是查询的列段一定要跟分组的列段相关。

四、多表查询
笛卡尔集
在学习多表查询之前,需要先了解一下笛卡尔集,假如我们现在有两个数据表,一个有10条数据,一个有20条数据,那么如果我们不加任何条件直接同时查询这两张表,就会得到200条数据信息,即两表数据数量的乘积,这是我们在做数据查询时一定要避免的。
笛卡尔集会在如下这几种情况中产生:
– 省略连接条件
– 连接条件无效
– 所有表中的所有行互相连接
为了避免笛卡尔集现象,我们需要在where中加入有效的连接条件。
下面就以t_mysql_departments和t_mysql_locations这两张表为例来进行说明:
在这里插入图片描述
在这里插入图片描述
如上图所示,通过两张表中主外键的关系,我们就将两张表中的部门编号、部门名字还有城市就一一对应的显示在了同一张表中。有时候会遇到两张表中有名字相同的列段,这时可以使用别名来区分这两个相同名字的列段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值