普通查询
查询全部列数据
语法:
select * from 表名;
select - 表示查询哪些字段
from - 表示来自哪些表
* - 表示所有列
例:查询emp表中全部列数据 :
select *from emp;
查询指定列数据
语法:
select 列名1,列名2,……from 表名;
例:查询student表中,学员编号(sid),姓名(sname),性别(sex),分数(score)
select sid,sname,sex,score from student;
查询emp表中,编号(empno),姓名(ename),职位(job),工资(sal),入职时间(hiredate)
select empno,ename,job,sal,hiredate from emp;
为列指定别名
语法:
select 列名1 as 别名1,列名2 as 别名2,…… from 表名;
说明: as关键字可以省略。
例:查询dept表,部门编号(deptno),部门名称(dname),部门地址(loc),并起别名显示
select deptno as '部门编号',dname as '部门名称',loc as '部门地址' from dept;
去掉重复的值
语法:
select distinct 列名 from 表名;
例:查询emp表中,员工的职位(job),并去重显示
select distinct job from emp;
分页查询
- 语法:
select */列名 from 表名 limit 初始位置,行数;
说明:初始位置是从哪行开始显示,一个可选值,默认值是0,
--行数是要查询的行数
例:查询student表中,前5条记录
select * from student limit 5;
查询student表中,从第3条记录开始到第10条记录
select * from student limit 2,8;
排序
- 语法:
SELECT /列名 FROM 表名 ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- ASC升序(默认)
-- DESC 降序
-- 如果对多列进行排序的时候,首先排序第一列,第一列必须有相同列值,才会进行第二列排序
例:查询emp表中,员工的编号、姓名、职位根据员工的编号进行升序排列
select empno,ename,job from emp order by empno asc;
查询emp表中,员工的编号,姓名,职位,工资、部门编号,首先根据部门编号升序排列,在根据员工编号降序排列
select empno,ename,job,sal,deptno from emp order by deptno asc,empno desc;
条件查询
语法:
SELECT */列名 FROM 表名
WHERE 条件
ORDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- 条件可以包含关系运算符、逻辑运算符、特殊情况等
-- 是
-- 在几个选项之中
-- between and 在一定范围内
关系运算符
运算符
=等于 >大于 >=大于等于 <小于 <=小于等于 <>不等于 !非
逻辑运算符
AND 逻辑与
OR 逻辑或
NOT 逻辑非
例:查询emp表中,30号部门下,所有员工的编号、姓名、工资、部门编号
select empno,ename,sal,deptno from emp where deptno=30;
查询emp表中,工资大于2000的,员工的编号、姓名、职位、工资
select empno,ename,job,sal from emp where sal>2000;
查询emp表中工资在1000~5000之间的,员工的编号,姓名,工资
select empno,ename,sal from emp where sal>=1000 and sal<=5000;
查询emp表中,职位(job)是SALESMAN并且工资大于1250的,员工的编号,姓名,职位,工资,根据员工编号降序排列
select empno,ename,job,sal from emp where job='SALESMAN' and sal>1250 order by empno desc;
查询emp表中,工资大于2000或者部门编号是20号部门的,员工的编号,姓名,职位,工资,部门编号(deptno)
select empno,ename,job,sal,deptno from emp where sal>2000 or deptno=20;
查询emp表中,员工编号是7521,7654,7782,7900的员工信息
select * from emp where empno=7521 or empno=7654 or empno=7782 or empno=7900;
is和in和between
is
例:查询emp表中,没有上级领导编号(mgr)的员工的信息
select* from emp where mgr is null;
查询emp表中,奖金不为空的(有奖金的),员工的编号,姓名,奖金
select empno,ename,comm from emp where comm is not null;
in
例:查询emp表中,员工编号是7499,7521,7782的员工信息。
select * from emp where empno in(7499,7521,7782);
between......and
例:查询emp表中工资在1000~3000之间,所有员工的编号、姓名、工资
select empno,ename,sal from emp where sal between 1000 and 3000;
like
模糊查询
语法:
SELECT 列名 FROM 表名
WHERE 列名 LIKE 模糊条件
OEDER BY 列名1 ASC/DESC,列名2 ASC/DESC;
-- % 表示0个或多个任意字符
-- _表示任意一个字符
例:查询emp表中,员工的姓名,第1个字母是S的,员工的姓名、职位、工资
select ename,job,sal from emp where ename like 'S%';
查询emp表中,姓名的最后1个字母是N,员工的姓名、职位、工资
select ename,job,sal from emp where ename like '%N';
标签:语句,sal,数据库,empno,查询,emp,表中,例题,select
From: https://blog.51cto.com/u_16239022/7387496