oracle有关emp表的简单查询练习题.doc
文本预览下载声明
SQL练习
1、查询dept表的结构 ?? 在命令窗口输入:?? desc dept;
2、检索dept表中的所有列信息?? select * from dept
3、检索emp表中的员工姓名、月收入及部门编号?? select ename 员工姓名,sal 月收入,empno 部门编号 from emp?? 注意查询字段用分号隔开。
4、检索emp表中员工姓名、及雇佣时间?? 日期数据的默认显示格式为“DD-MM-YY,如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。?? select ename 员工姓名, hiredate 雇用时间1,to_char(hiredate,YYYY-MM-DD) 雇用时间2 from emp?? 注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。???第二个时间是字符型的。?? 易错点:不要将YYYY-MM-DD使用双引号
5、使用distinct去掉重复行。?? 检索emp表中的部门编号及工种,并去掉重复行。?? select? distinct deptno 部门编号,job 工种? from emp order by deptno?? 注意distinct放的位置?? 为什么不放在from的前面??? 翻译成汉语就明白了?? 应该是:选择不重复的部门编号和工种从emp表。而不是:选择部门编号和工种不重复地从emp表。这还是人话么???O(∩_∩)O哈哈~
6、使用表达式来显示列?? 检索emp表中的员工姓名及全年的月收入?? select ename 员工姓名, (sal+nvl(comm,0))*12 全年收入 from emp?? 注意:防止提成comm为空的操作,使用nvl函数
7、使用列别名?? 用姓名显示员工姓名,用年收入显示全年月收入。?? select ename 员工姓名,sal*12 全年收入 from emp
8、连接字符串 在oracle中连接字符串用“||”操作符来完成的,当连接字符串时,如果在字符串要加入数字值?? 那么在“||”后可以直接指定数字,如果在字符串加入字符和日期值,则必须要用单引号。?? 检索emp表,用is a 这个字符串来连接员工姓名和工种两个字段
?? select ename|| is a ||job 他们各自的职位from emp?? 注意:用的是单引号!!!
9、使用WHERE子句?? 检索月收入大于2000的员工姓名及月收入。?? select ename 姓名 ,sal 月薪from emp where sal2000?? 检索月收入在1000元到2000元的员工姓名、月收入及雇佣时间。?? select ename 姓名 ,sal 月薪,hiredate 雇佣时间 from emp where sal between 1000 and 2000
10、like的用法:??? 检索以S开头的员工姓名及月收入。??? select ename 员工姓名,sal 月收入 from emp where ename like S%??? 检索员工姓名中的第三个字符是A的员工姓名及月收入。??? select ename 员工姓名,sal 月收入 from emp where ename like __A%??? 注意这里A前面有两个通配符。??? 且注意like后面使用的是单引号
11、在WHERE条件中使用IN操作符??? 检索emp表中月收入是800的或是1250的员工姓名及部门编号??? select ename 姓名,deptno 部门编号,sal 工资 from emp where sal in(800,1250)??? 注意:IN的意思是或者。是800或者1250而不是表示范围
12、在WHERE条件中使用逻辑操作符(AND、OR、NOT)??? 显示在部门20中岗位CLERK的所有雇员信息??? select * from emp where deptno=20 and job=CLERK??? 显示工资高于2500或岗位为MANAGER的所有雇员信息??? select * from emp where sal2500 or job=MANAGER??? 注意:在where里面的条件都是使用的单引号
13、查询表中是空值的数据??? 检索emp表中有提成的员工姓名、月收入及提成。??? select ename 姓名,comm 提成,sal 工资 from emp where comm is not null
14、使用ORDER BY子句,进行排序。??? 检索
显示全部