SQL练习

发布 2022-09-21 01:30:28 阅读 1186

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...