Mysql下scott用户练习表创建002 后续有相关数据库练习语句

本文详细介绍了SQL数据查询语言(DQL)的基础用法,包括条件查询、范围比较、null值查询、模糊查询、多条件联合查询、结果排序及分页。通过实例展示了如何查询数据库中的特定数据,如查询特定员工、薪资范围、职位等,以及如何进行多列排序和分页显示。是学习SQL查询的实用教程。
摘要由CSDN通过智能技术生成

DQL语句  DQL数据查询语言:主要包含数据库中表数据的查询。(重头戏!);

普通条件查询 =, >, <, !=, <>, >=, <=

-- 查询编号为7844的员工

SELECT * FROM emp WHERE empno = 7844;

-- 查询工资大于1000元的员工

SELECT * FROM emp WHERE sal > 1000;

-- 查询工资小于1000元的员工

SELECT * FROM emp WHERE sal < 1000;

-- 查询工资等于1000元的员工

SELECT * FROM emp WHERE sal = 1000;

-- 查询职位为SALESMAN(销售人员)的员工

SELECT * FROM emp WHERE job = 'SALESMAN'; 

-- 查询职位不是销售人员(SALESMAN)的员工

SELECT * FROM emp WHERE job != 'SALESMAN';

SELECT * FROM emp WHERE job <> 'SALESMAN';

-- 查询薪资大于等于3000的员工

SELECT * FROM emp WHERE sal >= 3000;

in 在某个范围内查找

-- 查询员工编号为 7369 7788 7881 的员工信息

SELECT * FROM emp WHERE empno IN(7369,7788,7881);

-- 查询员工编号除了 7369 7788 7881 之外的所有员工信息

SELECT * FROM emp WHERE empno NOT IN(7369,7788,7881);

-- 查询除了10,20部门之外的所有员工

SELECT * FROM emp WHERE deptno NOT IN (10, 20);

null值查询

-- 查询不发放津贴的员工信息

SELECT * FROM emp WHERE comm IS NULL;

-- 查询发放津贴的员工信息

SELECT * FROM emp WHERE comm IS NOT NULL;

范围比较

-- 查询薪资在1600到3000之间的员工

SELECT * FROM emp WHERE sal BETWEEN 1600 AND 3000;

模糊查询 "%", "_"
 "%": 代表任意字符的任意次数
 "_": 代表任意字符的一次

-- 查询名字中有S的员工

SELECT * FROM emp WHERE ename LIKE '%S%';

-- 查询名字最后一个字符是S的员工

SELECT * FROM emp WHERE ename LIKE '%S';

-- 查询名字打一个字符是S的员工

SELECT * FROM emp WHERE ename LIKE 'S%';

-- 查询名字第二字是A的员工

SELECT * FROM emp WHERE ename LIKE '_A%';

-- 查询名字中有%的员工

SELECT * FROM emp WHERE ename LIKE '%\%%';

多条件联合查询 and or
 and 必须前后同时满足条件才能返回结果
 or  前后有一个满足条件就能返回结果

-- 查询在20部门并且薪资大于2000的员工

SELECT * FROM emp WHERE deptno = 20 AND sal > 2000;

-- 查询在20部门或者薪资大于2000的员工

SELECT * FROM emp WHERE deptno = 20 OR sal > 2000;

-- 查询不在20部门并且薪资小于2000的员工

SELECT * FROM emp WHERE deptno != 20 AND sal < 2000;

select 结果排序 order by
 使用asc是升序排列(默认的),使用desc可以降序排列

-- 单列

-- 按照薪资进行排序(默认排序)

SELECT * FROM emp ORDER BY sal;

-- 按照薪资进行排序(降序)

SELECT * FROM emp ORDER BY sal DESC;

-- 按照薪资进行排序(升序)

SELECT * FROM emp ORDER BY sal ASC;

-- 按照津贴进行排序(null排在最前面)

SELECT * FROM emp ORDER BY comm;

-- 多列

-- 多个排序的列

SELECT * FROM emp ORDER BY deptno , sal;

-- 多个排序的列(部门升序,薪资降序)

SELECT * FROM emp ORDER BY deptno , sal DESC;

-- 多个排序的列(工作,薪资)

SELECT * FROM emp ORDER BY job,sal;

limit 分页

-- 每次查询前N行

SELECT * FROM emp LIMIT 4;

-- 查询地N页,每页显示M个 
-- select * from emp limit (n-1)*M,M  当前页码减1乘以显示条数,条数

SELECT * FROM emp LIMIT 0,3; -- 第1页  当前页数=(1-1) * 3

SELECT * FROM emp LIMIT 3,3; -- 第2页  当前页数=(2-1) * 3

SELECT * FROM emp LIMIT 6,3; -- 第3页  当前页数=(3-1) * 3

-- 查询薪资大于1000的降序排列,显示前5条记录

SELECT * FROM emp WHERE sal > 1000 ORDER BY sal DESC LIMIT 0 , 5 ;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值