【数据库】MySql简单查询的所有用法:起别名、显示不同记录、查询时执行计算、查询结果排序、条件查询、模糊查询及分页查询用法和示例
【数据库】MySql简单查询的所有用法:起别名、显示不同记录、查询时执行计算、查询结果排序、条件查询、模糊查询及分页查询用法和示例
查询所有的列: 方法一:把所有的列id用,连接写出来
方法二:select * from emp;
1.给列起别名
查询所有员工的编号和姓名,使用别名:select eid as bh,ename as xm from emp;
中间as可省略,保留空格即可。如:select eid bh,ename xm from emp;
2.显示不同的记录
①查询出都有哪些性别的员工:select distinct sex from emp;
②查询出员工都分布在哪些部门:select distinct deptid from emp;
3.查询时执行计算
①查询出所有的员工姓名及其年薪:select ename,salary*12 from emp;
②年终奖30000,工资增加2000:select ename,(salary+2000)*12+30000 from emp;
③年终奖30000,工资增加2000,再起个别名:select ename n ,(salary+2000)*12+30000 nx from emp;
4.查询结果排序
①查询所有部门,将部门编号降序排序:select * from dept order by did desc;
②查询所有部门,将部门编号升序排列:select * from dept order by did asc;
注解: asc → ascendant 升序的 desc→descendant降序的
desc→describe 描述
③查询所有员工,按照工资降序:select * from emp order by salary desc;
④查询所有员工,生日从小到大排列:select * from emp order by birthday asc;
注解:如果不加排序规则,默认为升序
如果按照字符串排序,按照字符的Unicode编码排列
⑤查询所有员工,按照姓名排列:select * from emp order by ename;
⑥查询所有员工,按照工资升序排列,如果工资相同,按照姓名排列:
select * from emp order by salary asc,ename asc;
两个查询结果条件中间 , 逗号隔开
⑦查询所有员工,要求女员工在前,性别相同按照生日从小到大排:
select * from emp order by sex asc,birthday asc;
5.条件查询
- 查询出编号为5的员工:select * from emp where eid=5;
- 查询出姓名为King的员工:select * from emp where ename='King';
- 查询出所有女员工:select * from emp where sex=0;
- 查询出工资在5000以上的员工:select * from emp where salary>5000;
注解: 比较运算符: > < >= <= = !=(不等于)
- 不在10号部门的员工:select * from emp where deptid!=10;
- 查询出没有明确部门的员工:select * from emp where deptid is null;
- 查询出有明确部门的员工:select *from emp where deptid is not null;
注解:两个null之间,不可以用比较运算符,要用is或is not查询
- 查询工资在5000元以上的女员工:select * from emp where salary>5000 and sex=0;
两个条件查询, 都要满足用and(&&),只需满足一个用or(||)
- 查询出6000-8000的员工:select * from emp where salary<8000 && salary>6000;
- 查询出工资8000以上,6000以下的女员工:
select * from emp where (salary>8000 && sex=0 && (eid>10 || eid<5)) || (salary<6000 && sex=0 && (eid>10 || eid<5));
- 查询出不在20号部门且不在30号部门的员工:
select * from emp where deptid!=30 && deptid!=20;
简写:select * from emp where deptid not in(20,30);
- 查询出在20号部门或在30号部门的员工:
select * from emp where deptid=30 || deptid=20;
简写:select * from emp where deptid in (20,30);
6.模糊条件查询
示例:查询出姓名中含有字母e的员工:select * from emp where ename like '%e%';
% 匹配任意字符 >=0 注意:%和_必须与关键字like 结合使用
_ 匹配任意1个字符 =1
练习:
- 查询出姓名中以e结尾的员工:select * from emp where ename like '%e';
- 查询出姓名中倒数第二个字符为e的:select * from emp where ename like '%e_';
7.分页查询
查询的结果中有太多数据,一次显示不完,可以做成分页显示。
需要有两个已知条件:①每页显示的数据量;②当前的页码
每页开始查询的值=(当前的页码-1)*每页数据量
语法:select * from emp limit 开始查询的值,每页数据量;
练习:
- 假设每页显示5条数据,查询出前4页每页的数据
第一页:select * from emp limit 0,5;
第二页:select * from emp limit 5,5;
第三页:select * from emp limit 10,5;
第四页:select * from emp limit 15,5;
- 查询出工资最高的前3个女员工:
select * from emp where sex=0 order by salary desc limit 0,3;
注解:开始的值必须提前计算好,limit后面不可以进行计算;
开始的值和每页的数据量必须是数值型,不可加引号。
更多推荐
所有评论(0)