第二章 MySQL查询语句

目录

1. 查询语句

1.1 查询一个字段

1.2 查询多个字段

 1.3 查询所有字段

1.4 重命名任意字段

 1.5 数据进行乘除运算

 2. 条件查询

2.1 条件查询的定义

2.2 可用的条件

2.3 模糊查询

 3. 排序

3.1 对所有员工薪资进行升序排列

 3.2 对所有员工薪资进行降序排列

 3.3 依据多个条件的升降序排列

 3.4 练习题


在开始之前我们要导入上一章中的sql脚本,具体方法详见http://t.csdn.cn/aEROthttp://t.csdn.cn/aEROt

1. 查询语句

1.1 查询一个字段

语句格式:select 字段名 from 表名;

我们使用的是数据库macondomayor中的emp这张表,首先可以看一下表中都有哪些数据

然后我们可以试着查询任意字段,,如输入

select empno from emp;

 

 我们想查询哪个字段,就把empno换成我们想要查询的字段就可以了。

1.2 查询多个字段

语句格式:select 字段名1,字段名2,。。。from 表名;

当我们想要同时查询多个字段时,需要用逗号隔开,比如输入

select empno,ename,sal from emp;

 1.3 查询所有字段

查询所有字段有两种方式,第一种方式跟上面所讲的查询多个字段的方式是一样的,只需要将表格中的所有字段写上即可;第二种方式语句格式为:select * from 表名;

两种查询方式各有优劣,第一种方式查询效率高,但是输入麻烦;第二种方式查询效率低,但是输入简单。

1.4 重命名任意字段

语句格式: select 字段名1 as 新字段名 from 表名;

 省略as也可以达到一样的效果

 需要注意的有两点;一是这里的重命名并不是真正意义上的重命名,只是改变了显示出的字段名,其实数据库中存储的字段名并未改变;

二是修改后的字段名中不可有空格或中文,若要加入空格或中文,需要用单引号括起来。

 1.5 数据进行乘除运算

语句格式:select 字段名*n from emp;

输入

select sal*12 as yearsal from emp;

 2. 条件查询

2.1 条件查询的定义

条件查询就是将字段中符合条件的数据查询出来。

语句格式:select 字段名 from 表名 where 条件

2.2 可用的条件

有等于,大于等于,小于等于,不等于,in,or,between and 等条件。

在下表中,我们可以试着查询sal为800的员工编号及姓名

输入

select ename,empno,sal from emp where sal=800;

 查询薪资不为800的员工的编号及姓名

输入

select ename,empno,sal from emp where sal!=800;

 查询薪资小于2000的员工的编号及姓名

输入

select ename,empno,sal from emp where sal<2000;

 查询名字为“SMITH”的员工的编号及薪资

输入

select ename,empno,sal from emp where ename='SMITH';

 查询薪资在2450到3000之间的员工的姓名及编号

输入

select ename,empno,sal from where sal>=2450 and <=3000;
//或
select ename,empno,sal from where sal between 2450 and 3000;//小的数值必须在and左边

查询comm为null的员工的姓名编号及comm

输入

select ename,empno,comm from emp where comm is null;//null前不能用‘=’

 查询职位为“MANAGER”且薪资大于2500的员工的姓名及编号

输入

select ename,empno,job,sal from emp where job='MANAGER' and sal>2500;

 查询职位为“MANAGER”和“SALESMAN”的员工的姓名及编号

输入

select ename,empno,job from emp where job='MANAGER' or job='SALESMAN';

 查询工资大于2500,并且部门编号为10或20的员工的编号姓名及薪资

输入

select ename,empno,sal,deptno from emp where sal>2500 and (deptno=10 or deptno=20);//and优先级大于or,所以这里必须加括号

 当我们需要并列查询的条件过多时,可以不使用or,而是使用in来操作

语句格式:

select ename,empno,job from emp where job='MANAGER' or job='SALESMAN';

可使用in写成

select ename,empno,job from emp where job in ('MANAGER','SALESMAN');

2.3 模糊查询

模糊查询的关键字是like,%表示多个字符,_表示一个字符。

如果我们要查询字段ename中所有含有字母‘o’的数据,可以输入

select ename from emp where ename like 'o%' or ename like '%o%' or ename like '%o';

 如果想要查询ename中以‘T’结尾的员工的数据,可以输入

select ename from emp where ename like '%T';

 如果想要查询ename中第二个字母是‘A’的员工的数据,可以输入

select ename from emp where ename like '_A%';

 3. 排序

3.1 对所有员工薪资进行升序排列

语句格式:select ename,sal from emp order by sal;或select ename,sal from emp order by sal asc;//加asc为指定升序,不加asc为默认升序

 3.2 对所有员工薪资进行降序排列

语句格式:select ename,sal from emp order by sal desc;

 3.3 依据多个条件的升降序排列

在上面的例子中,如果薪资相同,该如何排序呢?这时我们可以加入第二个条件,在第一个条件相同的前提下,依据第二个条件进行排序,语句格式:select ename,sal from emp order by 条件一 asc,条件二 asc;

 3.4 练习题

请找出工资在1250到3000之间的员工信息,要求按照薪资降序排列。

答案:

select ename,empno,sal from emp where sal between 1250 and 3000 order by sal desc;

 创作不易,如果您觉得对您有帮助的话,就点个赞再走吧!!!

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马孔多镇长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值