最全的SQL入门基础知识总结(3:dql查询表中数据)

一.准备数据

# 创建员工表
表名 emp
表中字段:
eid 员工 id int
ename 姓名, varchar
sex 性别, char
salary 薪资, double
hire_date 入职时间, date
dept_name 部门名称, varchar
# 创建员工表
CREATE TABLE emp(
eid INT ,
ename VARCHAR ( 20 ),
sex CHAR ( 1 ),
salary DOUBLE ,
hire_date DATE ,
dept_name VARCHAR ( 20 )
);
# 添加数据
INSERT INTO emp VALUES ( 1 , ' 孙悟空 ' , ' ' , 7200 , '2013-02-04' , ' 教学部 ' );
INSERT INTO emp VALUES ( 2 , ' 猪八戒 ' , ' ' , 3600 , '2010-12-02' , ' 教学部 ' );
INSERT INTO emp VALUES ( 3 , ' 唐僧 ' , ' ' , 9000 , '2008-08-08' , ' 教学部 ' );
INSERT INTO emp VALUES ( 4 , ' 白骨精 ' , ' ' , 5000 , '2015-10-07' , ' 市场部 ' );
INSERT INTO emp VALUES ( 5 , ' 蜘蛛精 ' , ' ' , 5000 , '2011-03-14' , ' 市场部 ' );
INSERT INTO emp VALUES ( 6 , ' 玉兔精 ' , ' ' , 200 , '2000-03-14' , ' 市场部 ' );
INSERT INTO emp VALUES ( 7 , ' 林黛玉 ' , ' ' , 10000 , '2019-10-07' , ' 财务部 ' );
INSERT INTO emp VALUES ( 8 , ' 黄蓉 ' , ' ' , 3500 , '2011-09-14' , ' 财务部 ' );
INSERT INTO emp VALUES ( 9 , ' 吴承恩 ' , ' ' , 20000 , '2000-03-14' , NULL );
INSERT INTO emp VALUES ( 10 , ' 孙悟饭 ' , ' ' , 10 , '2020-03-14' , 财务部 );
INSERT INTO emp VALUES ( 11 , ' 兔八哥 ' , ' ' , 300 , '2010-03-14' , 财务部 );
二.简单查询
1.select 不会修改数据库,只是显示数据
语法格式: select 列名 from 表名
需求 1 : 查询 emp 中的 所有数据
SELECT * FROM emp; -- 使用 * 表示所有列
需求 2 : 查询 emp 表中的所有记录,仅显示 id name 字段
SELECT eid,ename FROM emp;
需求 3 : 将所有的员工信息查询出来,并将列名改为中文
别名查询,使用关键字 as
# 使用 AS 关键字 , 为列起别名
SELECT
eid AS ' 编号 ' ,
ename AS ' 姓名 ' ,
sex AS ' 性别 ' ,
salary AS ' 薪资 ' ,
hire_date ' 入职时间 ' , -- AS 可以省略
dept_name ' 部门名称 '
FROM emp;
需求 4 :查询一共有几个部门
使用去重关键字 distinct
-- 使用 distinct 关键字 , 去掉重复部门信息
SELECT DISTINCT dept_name FROM emp;
需求 5: 将所有员工的工资 +1000 元进行显示
运算查询 ( 查询结果参与运算 )
SELECT ename , salary + 1000 FROM emp;
三.条件查询
语法格式: select 列名 from 表名 where 条件表达式
1) 比较运算符
运算符说明
> < <= >= = <> !=大于、小于、大于(小于)等于、不等于
BETWEEN ...AND...显示在某一区间的值
IN(集合)
集合表示多个值, 使用逗号分隔 , 例如 : name in ( 悟空,八戒)in 中的每个数据都会作为一次条件 , 只要满足条件就会显示
LIKE '%%'模糊查询
IS NULL查询某一列为NULL的值, : 不能写 = NULL

2)逻辑运算符

运算符说明
And &&
多个条件同时成立
Or ||
多个条件任一成立
Not
不成立,取反。

需求1

# 查询员工姓名为黄蓉的员工信息
# 查询薪水价格为 5000 的员工信息
# 查询薪水价格不是 5000 的所有员工信息
# 查询薪水价格大于 6000 元的所有员工信息
# 查询薪水价格在 5000 10000 之间所有员工信息
# 查询薪水价格是 3600 7200 或者 20000 的所有员工信息
代码实现
# 查询员工姓名为黄蓉的员工信息
SELECT * FROM emp WHERE ename = ' 黄蓉 ' ;
# 查询薪水价格为 5000 的员工信息
SELECT * FROM emp WHERE salary = 5000 ;
# 查询薪水价格不是 5000 的所有员工信息
SELECT * FROM emp WHERE salary != 5000 ;
SELECT * FROM emp WHERE salary <> 5000 ;
# 查询薪水价格大于 6000 元的所有员工信息
SELECT * FROM emp WHERE salary > 6000 ;
# 查询薪水价格在 5000 10000 之间所有员工信息
SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000 ;
# 查询薪水价格是 3600 7200 或者 20000 的所有员工信息
-- 方式 1: or
SELECT * FROM emp WHERE salary = 3600 OR salary = 7200 OR salary = 20000 ;
-- 方式 2: in() 匹配括号中指定的参数
SELECT * FROM emp WHERE salary IN ( 3600 , 7200 , 20000 );
需求2 
# 查询含有 ' ' 字的所有员工信息
# 查询以 ' ' 开头的所有员工信息
# 查询第二个字为 ' ' 的所有员工信息
# 查询没有部门的员工信息
# 查询有部门的员工信息
通配符说明
%
表示匹配任意多个字符串
_
表示匹配 一个字符
# 查询含有 ' ' 字的所有员工信息
SELECT * FROM emp WHERE ename LIKE '% %' ;
# 查询以 ' ' 开头的所有员工信息
SELECT * FROM emp WHERE ename LIKE ' %' ;
# 查询第二个字为 ' ' 的所有员工信息
SELECT * FROM emp WHERE ename LIKE '_ %' ;
# 查询没有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NULL ;
-- SELECT * FROM emp WHERE dept_name = NULL;
# 查询有部门的员工信息
SELECT * FROM emp WHERE dept_name IS NOT NULL ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值