资源描述:
《oracle 有关emp表的简单查询练习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQL练习训练一1、查询dept表的结构 在命令窗口输入: descdept;2、检索dept表中的所有列信息 select*fromdept3、检索emp表中的员工姓名、月收入及部门编号 selectename"员工姓名",sal"月收入",empno"部门编号"fromemp 注意查询字段用分号隔开。4、检索emp表中员工姓名、及雇佣时间 日期数据的默认显示格式为“DD-MM-YY",如果希望使用其他显示格式(YYYY-MM-DD),那么必须使用TO_CHAR函数进行转换。 selectename"员工姓名",hiredate"雇用时间1",to
2、_char(hiredate,'YYYY-MM-DD')"雇用时间2"fromemp 注意:第一个时间是日期类型的,在Oracle的查询界面它的旁边带有一个日历。 第二个时间是字符型的。 易错点:不要将YYYY-MM-DD使用双引号5、使用distinct去掉重复行。 检索emp表中的部门编号及工种,并去掉重复行。 select distinctdeptno"部门编号",job"工种" fromemporderbydeptno 注意distinct放的位置 为什么不放在from的前面? 翻译成汉语就明白了 应该是:选择不重复的部门编号和工种从e
3、mp表。而不是:选择部门编号和工种不重复地从emp表。这还是人话么???O(∩_∩)O哈哈~6、使用表达式来显示列 检索emp表中的员工姓名及全年的月收入 selectename"员工姓名",(sal+nvl(comm,0))*12"全年收入"fromemp 注意:防止提成comm为空的操作,使用nvl函数7、使用列别名 用姓名显示员工姓名,用年收入显示全年月收入。 selectename"员工姓名",sal*12"全年收入"fromemp8、连接字符串 在oracle中连接字符串用“
4、
5、”操作符来完成的,当连接字符串时,如果在字符串要加入数字值 那么
6、在“
7、
8、”后可以直接指定数字,如果在字符串加入字符和日期值,则必须要用单引号。 检索emp表,用isa这个字符串来连接员工姓名和工种两个字段 selectename
9、
10、'isa'
11、
12、job"他们各自的职位"fromemp 注意:用的是单引号!!!9、使用WHERE子句 检索月收入大于2000的员工姓名及月收入。 selectename"姓名",sal"月薪"fromempwheresal>2000 检索月收入在1000元到2000元的员工姓名、月收入及雇佣时间。 selectename"姓名",sal"月薪",hiredate"雇佣时间"fromem
13、pwheresalbetween1000and200010、like的用法: 检索以S开头的员工姓名及月收入。 selectename"员工姓名",sal"月收入"fromempwhereenamelike'S%' 检索员工姓名中的第三个字符是A的员工姓名及月收入。 selectename"员工姓名",sal"月收入"fromempwhereenamelike'__A%' 注意这里A前面有两个通配符。 且注意like后面使用的是单引号11、在WHERE条件中使用IN操作符 检索emp表中月收入是800的或是1250的员工姓名及部门编号
14、 selectename"姓名",deptno"部门编号",sal"工资"fromempwheresalin(800,1250) 注意:IN的意思是或者。是800或者1250而不是表示范围12、在WHERE条件中使用逻辑操作符(AND、OR、NOT) 显示在部门20中岗位CLERK的所有雇员信息 select*fromempwheredeptno='20'andjob='CLERK' 显示工资高于2500或岗位为MANAGER的所有雇员信息 select*fromempwheresal>'2500'orjob='MANAGER' 注意:在
15、where里面的条件都是使用的单引号13、查询表中是空值的数据 检索emp表中有提成的员工姓名、月收入及提成。 selectename"姓名",comm"提成",sal"工资"fromempwherecommisnotnull14、使用ORDERBY子句,进行排序。 检索emp表中部门编号是30的员工姓名、月收入及提成,并要求其结果按月收入升序、然后按提成降序显示。 selectename"姓名",comm"提成",sal"工资"fromempwheredeptno='30'orderbysalasc,commdescSQL练习训练二1.查询工资大
16、于1200