SQL语句(一)基础查询与过滤数据

一、数据库测试表

首先这里给出需要使用到的数据库表:
链接:https://pan.baidu.com/s/17woahG6lupK9FYb3vFNJAg
提取码:gbb4
里面是一个.sql文件,直接运行即可得到如下几个测试表:
在这里插入图片描述
在这里插入图片描述

二、基础查询

1. 获得需要的记录的特定字段

语法:SELECT后加上需要的结果映射到的字段,若为*则为选取所有字段。

#单个字段查询
SELECT
	last_name 
FROM
	employees;

在这里插入图片描述

#多个字段
SELECT
	last_name,
	salary,
	email 
FROM
	employees;

在这里插入图片描述

#所有字段
SELECT
	* 
FROM
	employees;

2. 查询常量值

#查询常量值
SELECT 100;
SELECT "john";

3. 查询表达式

例:

SELECT 100%98;

4. 查询函数

例:

SELECT VERSION();

在这里插入图片描述

5. 起别名

为查询结果的列起一个新的名字,语法:

SELECT 表中的列名 AS 自己起的新名字
FROM 表名;

或者省略AS

SELECT 表中的列名 自己起的新名字
FROM 表名;

例:

SELECT last_name AS, first_name ASFROM employees;

SELECT last_name 姓, first_name 名 
FROM employees;

在这里插入图片描述

6. 去重

SELECT DISTINCT 字段名
FROM 表名;

实际过程:

  1. 查询到对应的记录
  2. 映射到对应的字段
  3. 最终结果去重

例:

SELECT DISTINCT department_id 
FROM employees;

在这里插入图片描述

7. CONCAT函数的简单使用

SELECT
	CONCAT( last_name, first_name ) AS 姓名 
FROM
	employees;

实际过程:

  1. 到表中没有这个字段,然后为所有的记录添加这个新字段,内容为last_name字段和first_name字段的链接
  2. 查出相应的记录
  3. 将所有记录映射到姓名字段中

运行结果:
在这里插入图片描述

三、过滤数据

主要语法:

SELECT		查询列表
FROM 		表名
WHERE		条件;

大纲

  • 按条件表达式筛选:
    • 简单条件运算符: > < = != <> >= <=
  • 逻辑表达式:
    • && || !
    • AND OR NOT
  • 模糊查询:
    • LIKE
      • 一般和通配符搭配使用
      • 通配符:
        • % 任意多个字符,包含0个字符
        • _ 任意单个字符
    • BETWEEN AND
      • 简洁
      • 闭区间
      • 不可调换顺序
    • IN
      • 简洁
      • IN列表的值类型必须统一或兼容
    • IS NULL
      • 可用IS NULLIS NOT NULL来判断是否为空

1. 按条件表达式筛选

查询工资>12000的员工信息

SELECT * 
FROM employees 
WHERE salary > 12000;

查询部门编号不等于90号的员工名和部门编号

SELECT last_name, department_id
FROM  employees
WHERE department_id <> 90
ORDER BY department_id; #排序

在这里插入图片描述

2. 使用逻辑表达式

查询工资在10000~20000之间的员工的员工名,工资及奖金

SELECT  last_name, salary, commission_pct
FROM 	employees
WHERE 	salary>=10000 AND salary<=20000;

部门编号不在90到110之间,或者工资高于15000的员工信息:

SELECT 	*
FROM 	employees
WHERE	department_id<90 	
		OR 	department_id>110	
		OR	salary>15000

SELECT  *
FROM  	employees
WHERE	NOT(department_id>=90 AND department_id<=110)
		OR 	salary>15000

3. 模糊查询

LIKE

员工名中包含字符a的员工信息:

SELECT 	last_name
FROM  	employees
WHERE 	last_name LIKE '%a%';

在这里插入图片描述
员工名中第三个字符为n,第五个字符为t的员工名和工资:

SELECT 	last_name, salary
FROM  	employees
WHERE 	last_name LIKE '__n_t%';

在这里插入图片描述
员工名中第二个字符为_的员工名:

SELECT 	last_name
FROM 	employees
WHERE 	last_name LIKE '_$_%' ESCAPE '$';# 转义

BETWEEN AND

员工编号在100到120之间的员工信息

SELECT 	*
FROM  	employees
WHERE 	employee_id >= 100 AND employee_id <= 120;
#================使用BETWEEN AND================
SELECT 	*
FROM  	employees
WHERE 	employee_id BETWEEN 100 AND 120;

IN

查询员工的工种编号是IT_PROGAD_VPAD_PRES中的一个的员工名和工种编号

SELECT 	last_name, job_id
FROM 	employees
WHERE 	job_id IN ('IT_PROG','AD_VP','AD_PRES');

IS NULL

查询没有奖金的员工名和奖金律

SELECT 	last_name, commission_pct
FROM 	employees
WHERE 	commission_pct IS NULL;

在这里插入图片描述
查询有奖金的员工名和奖金律

SELECT 	last_name, commission_pct
FROM 	employees
WHERE 	commission_pct IS NOT NULL;

在这里插入图片描述

安全等于 <=>

SELECT 	last_name, commission_pct
FROM 	employees
WHERE 	commission_pct <=> NULL;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值