02-MySQL基础查询、条件查询和排序查询


1. 基本SELECT语句

SELECT *|{[DISTINCT] column|expression[alias],...}
FROM table;

SELECT 标识选择哪些列。

FROM 标识从哪个表中选择。

类似于Java中 :System.out.println(要打印的东西);

特点:

(1)通过select查询完的结果 ,是一个虚拟的表格,不是真实存在

(2)要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数

1.1 查询字段

  1. 选择全部列
SELECT *
FROM departments;
  1. 选择特定的列
SELECT department_id, location_id
FROM departments;

注意:

(1) SQL 语言大小写不敏感。

(2) SQL 可以写在一行或者多行

(3 )关键字不能被缩写也不能分行

(4) 各子句一般要分行写。

(5) 使用缩进提高语句的可读性。

  1. 使用别名
SELECT last_name AS name, commission_pct comm   # name comm 即为别名
FROM employees;
SELECT last_name "Name", salary*12 "Annual Salary"  # Name/ Annual Salary 即为别名
FROM employees;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x3aPoguQ-1629797308948)(C:\Users\lp\AppData\Roaming\Typora\typora-user-images\image-20210824164727008.png)]

1.2 选择字符串

字符串可以是SELECT 列表中的一个字符、数字、日期。

  • 日期和字符只能在单引号中出现。
  • 每当返回一行时,字符串被输出一次。

使用DESCRIBE 命令显示表结构

DESCRIBE employees

1.3 查询常量

SELECT 常量值

注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要

1.4 去重

SELECT DISTINCT 字段名
FROM 表名

1.5 +运算

SELECT 数值+数值:直接运算
SELECT 字符+数值:先试图将字符转换为数值,如果转换成功则继续运算,否则转换为0再做运算

2.条件查询

条件查询:根据条件过滤原始表的数据,查询到想要的数据

使用 WHERE 子句,将不满足条件的行过滤掉。

语法:

SELECT 
	要查询的字段|表达式|常量值|函数
FROMWHERE 
	条件 ;
SELECT *|{[DISTINCT] column|expression[alias],...}
FROM table
WHERE condition(s);

返回在90号部门工作的所有员工的信息

SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;

2.1 条件表达式

在这里插入图片描述
示例:salary>10000

SELECT last_name, salary
FROM employees
WHERE salary <= 3000;

2.2 逻辑表达式

在这里插入图片描述

and(&&):两个条件如果同时成立,结果为true,否则为false
or(||):两个条件只要有一个成立,结果为true,否则为false
not(!):如果条件成立,则not后为false,否则为true

示例说明:

SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%';
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%';
SELECT last_name, job_id
FROM employees
WHERE job_id NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');

2.3 模糊查询

在这里插入图片描述
1.使用BETWEEN 运算来显示在一个区间内的值

SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500;

2.使用IN运算显示列表中的值。

SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201);

在这里插入图片描述
3.使用 LIKE 运算选择类似的值

选择条件可以包含字符或数字:

  • –% 代表零个或多个字符(任意个字符)。
  • –_ 代表一个字符。
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%';  #名字以'S'开头
  • ‘%’ 和 ‘-’ 可以同时使用。
SELECT last_name
FROM employees
WHERE last_name LIKE '_o%'; #名字第二个字符为'o'

在这里插入图片描述
4.使用 IS (NOT) NULL 判断空值。

SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL;  # manager_id 为null

3. 排序查询

使用ORDER BY 子句排序

–ASC(ascend): 升序

–DESC(descend): 降序

1.语法:

SELECT
	要查询的东西
FROMWHERE 
	条件
ORDER BY 排序的字段|表达式|函数|别名 【ASC|DESC】
如果不写【ASC|DESC】,默认是升序

SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC;

2.按别名排序:

SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal;

在这里插入图片描述

3.多个列排序(第一列升序排序完,若有相等情况再按照第二列降序排序)

SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC;

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值