MySQL练习(二)---数据库的基本查询

数据库的基本查询

普通查询

记录查询

SELECT * FROM t_emp;
SELECT empno,ename,sal FROM t_emp;

使用列别名

SELECT 
	ename,
	sal * 12 as "annual_salary"
FROM 
	t_emp;

查询语句的执行顺序

在这里插入图片描述

数据分页

#如果结果集的记录很多,则可以使用LIMIT关键字限定结果集数量。
#SELECT ......FROM....... LIMIT 起始位置,偏移量;
SELECT empno,ename FROM t_emp LIMIT 0,20;
#数据分页的简写用法
#如果LIMIT子句只有一个参数,它表示的是偏移量,起始值默认为0
SELECT empno , ename FROM t_emp LIMIT 10;
SELECT empno , ename FROM t_emp LIMIT 0,10;
#语句执行顺序 FROM ->SELECT ->LIMIT

结果集排序

#如果排序字段内容相同,MySQL会按照主键大小来排序两条数据

SELECT ename,sal FROM t_emp ORDER BY sal;#ASC升序,不写默认是升序

SELECT ename,sal,hiredate FROM t_emp ORDER BY hiredate DESC;#DESC降序

#多个排序字段  我们可以使用ORDER BY规定首要排序条件和次要排序条件。
#数据库会先按照首要排序条件排序,如果遇到首要排序内容相同的记录,那么就会启用次要排序条件接着排序

#排序+分页
SELECT empno , ename , sal , hiredate 
FROM t_emp
ORDER BY sal DESC, hiredate ASC LIMIT 5;

在这里插入图片描述

去除重复记录

在这里插入图片描述

#例如查询员工表有多少种职业
SELECT job FROM t_emp; #没有用DISTINCT关键字会出现多个重复记录
SELECT DISTINCT job FROM t_emp;#用DISTINCT关键字去除重复记录
#注意:
#使用DISTINCT的SELECT子句中只能查询一列数据,如果查询多列,SELECT DISTINCT job , ename FROM t_emp;去除重复记录就会失效。
#DISTINCT关键字只能在SELECT子句中使用一次  例如SELECT DISTINCT job, DISTINCT ename FROM t_emp;SELECT ename , DISTINCT job FROM t_emp;都会语法错误

条件查询


## 条件查询

SELECT empno,ename,sal FROM t_emp WHERE deptno=10 AND sal>=2000;

#查询10部门里面年收入超过15000美金而且工龄超过20年的员工信息
SELECT empno, ename, sal, hiredate 
FROM t_emp
WHERE deptno=10 AND (sal+IFNULL(comm,0))*12>=15000 
AND DATEDIFF(NOW(),hiredate)/365>=20;

#查询10,20,30部门里面在1985年以前入职的员工而且不能是salesman职位的员工的信息;
SELECT empno,ename, sal,deptno,hiredate
FROM t_emp
WHERE deptno IN(10,20,30) AND job !="SALESMAN" AND hiredate<"1985-01-01";
#其他的例子
SELECT ename,comm,sal
FROM t_emp 
WHERE comm IS NULL AND sal BETWEEN 2000 AND 3000 AND ename LIKE "%A%";

SELECT ename,comm,sal
FROM t_emp 
WHERE comm IS NULL AND sal BETWEEN 2000 AND 3000 AND ename LIKE "_LAKE";

SELECT ename,comm,sal
FROM t_emp 
WHERE comm IS NOT NULL AND sal BETWEEN 1000 AND 3000
AND ename REGEXP "^[\\u4e00-\\u9fa5]{2,4}$";#正则表达式匹配出中文

SELECT ename,deptno
FROM t_emp
WHERE NOT deptno IN(10,20) XOR sal>=2000;
#WHERE子句的注意事项
#WHERE子句中,条件执行的顺序是从左到右的。所以我们应该把索引条件,或者筛选掉记录最多的条件写在最左侧
#各种子句的执行顺序 FROM -> WHERE ->SELECT ->ORDER BY ->LIMIT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值