Day2_MySQL核心知识——单表查询(select)

一.准备工作

打开Navicat,新建一个表,表的字段如下,为后面的查询作准备,建完表后,自行给其中添加数据。
在这里插入图片描述

二.查询(select)的语法知识

注意:sql语言不区分大小写,所有关键字都无须区分大小写。“`”符号无意义可有可无

2.1查询时支持给列取别名

查询时,可以给列(列即每个字段,如上图中的employee_id,first_name…等等)取别名。
语法格式为:select 列1 别名1,列2 别名2,列3 别名3… from 表名
例子:在Navicat中新建一个查询,在里面写入以下代码:

SELECT employee_id id,first_name 姓名,salary 薪资
FROM `employees`;

为了方便检查错误,一般都分行书写。
注意:
经常会有报错,可能是用了中文符号,可能是语句结尾没有结尾符“;”,可能是Navicat没有选中你要查询的数据库,如下图:
在这里插入图片描述

2.2查询时支持数字运算

SELECT employee_id id,first_name 姓名,salary * 12 薪资 
FROM `employees`;

2.3查询时支持提供条件

语法:
select 列1,列2,… from 表名 where 条件

如果有2个条件则根据“或”和“且”分为以下两种:
select 列1,列2,… from 表名 where 条件1 or 条件2
select 列1,列2,… from 表名 where 条件1 and 条件2

例子:
查询工资高于6000且部门为110的 员工姓名 薪资

SELECT first_name 姓名,salary 薪资 
FROM `employees`
WHERE salary > 6000 and department_id = 110;

2.3查询时的空值判断

语法:
…is not …

SELECT first_name 姓名,salary 薪资
FROM employees
WHERE commission_pct is not NULL;

2.3查询时包含边界

语法:
…between…and…

SELECT first_name, salary
FROM employees
WHERE salary BETWEEN 6000 and 9000;

相当于

SELECT first_name, salary
FROM employees
WHERE salary >= 6000 and salary <= 9000;

2.4 in(set) 查询字段在set中就符合条件

语法:
select 列1,列2… from 表名 where 列名 in(…);

SELECT first_name, salary
FROM employees
WHERE department_id in (90, 110);

2.5 模糊查询

注意:sql中使用引号表示字符

2.5.1通配符%

通配符%代表任意0~n个任意的字符
例子: 查询姓名中包含a字符的员工信息

SELECT first_name, salary
FROM employees
WHERE last_name LIKE '%a%';

2.5.2通配符_

通配符_代表一个任意的字符
例子: 查询姓名中第二个字母是a的员工信息

SELECT first_name, salary
FROM employees
WHERE last_name LIKE '_a%';

2.5.3转义字符\

查询时,如果字符串出现包含通配符,需要转义
例子: 查询姓名中第二个字母是_的员工信息

SELECT first_name, salary
FROM employees
WHERE last_name LIKE '_\_%';

2.5.4指定转义字符escape

例子: 查询姓名中第二个字母是_的员工信息

SELECT first_name, salary
FROM employees
WHERE last_name LIKE '_A_%' escape 'A';

2.6 将查询到的结果排序

升序排序: 默认为升序排序

SELECT first_name, salary
FROM employees
WHERE department_id = 90
ORDER BY salary ASC;

降序排序:

SELECT first_name, salary
FROM employees
WHERE department_id = 90
ORDER BY salary DESC;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值