sql 语法练习(一)
使用 scott/tiger 用户下的 emp 表(数据库自带的表)完成下列练习,表的结构说明如下:
请根据上表完成如下练习题:
1、选择部门 30 中的所有员工。
select * from emp where deptno=30
2、列出所有办事员(clerk)的姓名,编号和部门编号。
select ename,emptno,deptno from emp where job=’clerk’
3、找出佣金高于薪金的员工。
select * from emp where comm>sal
4、找出佣金高于薪金的 60%的员工。
select * from emp where comm>sal*0.6
5、找出部门 10 中所有经理(manager)和部门 20 中所有办事员(clerk)的详细资料。
select * from emp where (deptno=10 and job=’manager’) or (deptno=20 and job=’clerk’)
6、找出部门 10 中所有经理(manager),部门 20 中所有办事员(clerk),既不是经理又不是办事员但其薪金大于或等于 2000 的所有员工的详细资料。
select * from emp
where (deptno=10 and job=’ manager’)
or (deptno=20 and job=’clerk’)
or (job not in(’ manager’ ,clerk’) and sal >=2000)
7、找出收取佣金的员工的不同工作。
select distinct job from emp
where comm is not null
8、找出不收取佣金或收取的佣金低于 100 的员工。
select * from emp
where comm is null or comm<100
9、找出各月倒数第 3 天受雇的所有员工。
select * from emp
where hiredate= last_day(hiredate)-2
10、找出早于 12 年前受雇的员工。
select * from emp
where months_between(sysdate,hiredate)/12 >12
11、以首字母大写的方式显示所有员工的姓名。
select initcap(ename) from emp
12、显示正好为 5 个字符的员工的姓名。
select ename from emp
where length(ename)=5
13、显示不带有“r”的员工的姓名。
select ename from emp
where ename not like ‘%r%’
14、显示所有员工姓名的前三个字符。
select substr(ename,1,3) from emp
15、显示所有员工的姓名,用“a”替换所有“a”。
select replace(ename,’a’,’a’) from emp
16、显示满 10 年服务年限的员工的姓名和受雇日期。
select ename,hiredate from emp
where months_between(sysdate,hiredate)/12>=10
17、显示员工的详细资料,按姓名排序。
select * from emp order by ename
18、显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面。
select ename,hiredate from emp order by hiredate
19、显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序。
select ename,job,sal from emp order by job desc,sal
20、显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面。
select ename,to_char(hiredate,’yyyy’) year,to_char(hiredate,’mm’) month from emp
order by month,year
21、显示在一个月为 30 天的情况所有员工的日薪金,忽略余数。
select ename,round(sal/30) from emp
22、找出在(任何年份的)2 月受聘的所有员工。
select * from emp
where to_number(to_char(hiredate,’mm’))2
-或-select * from emp
where to_char(hiredate,’mm’)=2
23、对于每个员工,显示其加入公司的天数。
select ename,round(sysdate-hiredate) days from emp;
24、显示姓名字段的任何位置包含“a”的所有员工的姓名。
select ename from emp
where ename like ‘%a%’
25、以年月的方式显示所有员工的服务年限。(大概数所即可) 。
select trunc(months_between(sysdate,hiredate)/12) years,trunc(mod(months_between(sysdate,hiredate),12)) months
from emp
26、查询你到目前为止生存了多少天?生存了多少星期?
select round(sysdate-to_date(‘1988-01-15’,’yyyy-mm-dd’))days, round((sysdate-to_date(‘1988-01-15’,’yyyy-mm-dd’))7) weeks
from dual;
SQL练习
1 现有以下关系 student no,name,sex,birthday,class teacher no,name,sex,birthday,prof,depart course cno,cname,tno score no,cno,degree 1 列出student表中所有记录的name s...
SQL练习
总分100 1.安装mysql数据库。为确保数据安全,修改root用户密码为abcabc123 截图,5分 2.建立 bisai 数据库,并查看所有数据库 截图,2分 3.建立 xuanshou 数据表 截图 10分 注 xsid为主键,不能为空,name与project不能为空,sex的缺省值为m...
SQL练习
d 当修改数据库时,必先写日志。23 sql server数据库的主数据文件的扩展名为 a sql b mdf c mdb d db 24 以下不属于企业管理器功能的是 a 创建并管理所有数据库 登陆 用户 权限等。b 管理和执行数据导入导出 数据库备份等多项辅助功能。c 定义 sql server...