07 数据查询语言(DQL)--行选择(WHERE)

本文详细讲解了MySQL中的行选择与列选择语法差异,如何使用WHERE子句限制行,对比各种比较条件如BETWEEN、IN和LIKE,逻辑运算符的应用,以及ORDER BY子句的排序技巧。通过实例演示,帮助理解SQL查询的高级操作。
摘要由CSDN通过智能技术生成

目录

一、行选择与列选择的语法区别(有无where):

列选择:select 列名、、、from 表名;

行选择:select 列名、、、from 表名 where条件;

二、用选择限制行:

三、MySQL中的比较条件:

1.常规比较条件:

2.其他比较条件:

2.1.BETWEEN...AND...:

2.2.IN(set):

2.3.LIKE:

2.4.IS NULL:

3.逻辑条件:AND、OR、NOT

4.优先规则:

5.运算符总结:

四、使用ORDER BY排序

1.注意:

2.SELECT 语句的执行顺序如下:

3.使用别名排序(用列别名排序):

4.多列排序:


一、行选择与列选择的语法区别(有无where):

列选择:select 列名、、、from 表名;

行选择:select 列名、、、from 表名 where条件;

二、用选择限制行:

用 WHERE 子句限制从查询返回的行一个 WHERE 子句包含一个

必须满足的条件,WHERE 子句紧跟着 FROM 子句如果条件是

true,返回满足条件的行。

语法:SELECT * | 投影列 FROM 表名 WHERE 选择条件;

例:select department_name,location_id from departments where departments_id = 4;

表示:查询 departments 表中部门 ID 为 90 的部门名称与工作地ID

三、MySQL中的比较条件:

1.常规比较条件:

 

符号!=也能表示不等于条件;

例:select last_name,salary from employees where salary<>5000;

表示:查询 employees 表中员工薪水不等于 5000 的员工的姓名与薪水;

2.其他比较条件:

2.1.BETWEEN...AND...:

可以用 BETWEEN...AND... 范围条件显示基于一个值范围的行。指定的范围,包含一个下限和一个上限

例:select employee_id,last_name,salary from employees where salary between 3000 and 8000;

表示:查询 employees 表,薪水在 3000-8000 之间的雇员ID、名字与薪水。

2.2.IN(set):

使用IN成员条件测试在列表中的值

例:select employee_id,last_name,salary from employees where salary in(5000,6000,8000);

表示:查询 employees 表,找出薪水是 5000,6000,8000 的雇员ID、名字与薪水。

2.3.LIKE:

1.使用LIKE条件执行有效搜索串值的通配符搜索

2.搜索条件既可以包含文字也可以包含数字(数字只字符串型,非整数型)

占位符:%表示零个或多个字符

                _表示一个字符

注意 :

在LIKE语句中,%表示零个或多个字符,_表示一个字符

例:select last_name from employees where last_name like %e%;

表示:查询 employees 中雇员名字字母含有 e 的雇员名字

例:select last_name from employees where last_name like _e%;

表示:查询 employees 中雇员名字第二个字母是 e 的雇员名字

2.4.IS NULL:

用IS NULL操作来测试空值,NULL条件,包括IS NULL条件和IS NOT NULL 条件

IS NULL 条件用于空值测试。空值的意思是难以获得的、未指定的、未知的或者不适用的。因此, 不能用 = ,因为 null 不能等于或不等于任何值

例:select employee_id,last_name,commission_pct from employees where commission_pct is null;

表示:找出 emloyees 表中那些没有佣金的雇员雇员ID、名字与佣金。

例:select employee_id,last_name,commission_pct from employees where commission_pct is not null;

表示:找出 employees 表中那些有佣金的雇员ID、名字与佣金。

3.逻辑条件:

 

逻辑条件组合两个比较条件的结果来产生一个基于这些条件的单个的结果,或者逆转一个单个条件的结果。当所有条件的结果为真时,返回行。

SQL 的三个逻辑运算符是:

AND

OR

NOT

可以在 WHERE 子句中用 AND 和 OR 运算符使用多个条件。

例:select last_name,salary from employees where salary = 8000 and last_name like '%e%';

表示:查询 employees 表中雇员薪水是 8000 的并且名字中含有e 的雇员名字与薪水。

例:select last_name,salary from employees where salary = 8000 or last_name like '%e%';

表示:查询 employees 表中雇员薪水是 8000 的或者名字中含有e 的雇员名字与薪水。

例:select last_name from employees where last_name not like '%u%';

表示:查询 employees 表中雇员名字中不包含 u 的雇员的名字。

例:select last_name from employees where last_name not like '%u%';

查询 employees 表中雇员名字中不包含 u 的雇员的名字。

4.优先规则:

 

5.运算符总结:

  1. 算术运算符用于整型、浮点型数据类型,进行加减乘除;
  2. LIKE用于模糊查询,只能用于字符型,不能用于数组查询;

四、使用ORDER BY排序

 

1.注意:

在一个不明确的查询结果中排序返回的行。ORDER BY 子句用于排序。如果使用了 ORDER BY 子句,它必须位于 SQL 语句的最后

2.SELECT 语句的执行顺序如下:

FROM 子句

WHERE 子句

SELECT 子句

ORDER BY 子句(即查询出结果后再对结果进行排序)

例:1.select employee_id,last_name,salary from employees order by salary;(默认升序排序ASC)

2.select employee_id,last_name,salary from employees order by salary asc;

表示:查询 employees 表中的所有雇员,显示他们的ID、名字与薪水,并按薪水升序排序

例:select employee_id ,last_name from employees order by last_name desc;

表示:查询 employees 表中的所有雇员,显示他们的ID与名字,并按雇员名字降序排序

3.使用别名排序(用列别名排序):

例:select employee_id,last_name, 12*salary annsal from employees order by annsal desc;

表示:显示雇员ID,名字。计算雇员的年薪,年薪列别名为annsal,并对该列进行降序排序

4.多列排序:

多列排序按ORDER BY 列表的顺序就是排序的顺序;并且可以排序一个不在SELECT列表中的列;

例:select department_id ,salary from employees order by department_id asc,salary desc;

表示:以升序排序显示department_id列后,再根据前一个排序的基础上,以降序排序显示salary列;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值