单表查询
select查询
查看员工的 姓名,职位,工资
查看员工的 姓名,职位,工资
select ename,job,sal from emp --查看表中指定列的信息
查看员工的 姓名,职位,工资,入职时间
查看员工的 姓名,职位,工资,入职时间
/* 在显示结果集的使用用别名代替默认的列名(select后的字段名),
注意别名只是在显示结果集的时候加上去的,并没有改变表结构
别名的作用就是方便对结果集的信息的解释*/
select ename as 员工姓名,job as 职位,sal as 工资,hiredate 入职时间 from emp
显示员工的姓名,职位,工资,疫情期间工资(原工资的70%)
-- 显示员工的姓名,职位,工资,疫情期间工资(原工资的70%)
select ename,job,sal,sal*0.7 as 疫情期间工资 from emp
显示员工的姓名,职位,工资,以及年底涨薪之后的工资(sal+500)
-- 显示员工的姓名,职位,工资,以及年底涨薪之后的工资(sal+500)
select ename,job,sal, sal+500 as 涨薪之后工资 from emp
利用 *作为通配符,显示表中所有列 select * 表示 显示数据源中的所有列
-- 利用 *作为通配符,显示表中所有列 select * 表示 显示数据源中的所有列
select * from emp
如果select 后使用 * 则默认不能再显示其它列的,还想写其它列,则需要用表名.表示 强调代表的表字段
-- 如果select 后使用 * 则默认不能再显示其它列的,还想写其它列,则需要用表名.*表示 强调*代表的表字段
select emp.* ,sal+500 from emp
条件查询
/*条件查询目的:是将符合查询条件的信息放入结果集
查询条件的执行时机:对数据源(表中)每条记录根据查询条件进行判断,将符合查询条件的信息放入结果集,即where语句是在结果集生成之前被执行的
查询工资低于2000的员工信息*/
select * from emp where sal<2000
查询部门编号为20的员工姓名,工资,部门编号
select ename,sal,deptno as 部门编号 from emp where deptno=20
多条件查询
/* 如果有多个条件 ,则两个条件的关系是
and(并且) : 条件1 and 条件2 只有两个条件同时成立最终的条件才成立
or(或者) : 条件1 or 条件2 只要两个条件中有一个成立则最终条件就会成立
*/
-- 查询出 工资大于1500而且部门编号为20的员工信息
select * from emp where sal>1500 and deptno=20
-- 查询从事工作为CLERK或者工作为MANAGER的员工信息
select * from emp where job='CLERK' or job='MANAGER'
-- 表中的数据是严格区分大小写的
SELECT * From Emp where job='SALESMAn'
-- 注意查询时数据要与字段类型对应
-- 数值型
-- 查询工资大于2500的员工信息
select * from emp where sal>2500
-- 字符型:用单引号声明
-- 查询职位为CLERK的员工信息
select * from emp where job ='CLERK'
-- 数值型
-- 1、用to_date将字符转为对应时间
-- 查询在1982-02-16之前入职的员工
select * from emp where hiredate < to_date('1982-02-16','yyyy-mm-dd')
-- 2、用to_char方法从时间中提取出指定信息的字符形式 (date -->字符)
-- 查询出员工的姓名,工资,和入职年份
select ename,sal,to_char(hiredate,'yyyy') from emp
-- 查询出员工的姓名,工资,和入职时间(格式为yyyymmdd)
select ename,sal,to_char(hiredate,'yyyy.mm.dd') from emp
-- ""在Oracle中表示强制使用
select ename,sal,to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp;
-- 查询所有在1981年入职的员工信息
select * from emp where to_char(hiredate,'yyyy')='1981'
-- 查询在1981-02-20入职的员工信息
select * from emp where hiredate = to_date('1981-02-20','yyyy-mm-dd')
select * from emp where to_char(hiredate,'yyyy-mm-dd') ='1981-02-20'