Oracle一些经典SQL练习题
- 格式:doc
- 大小:64.50 KB
- 文档页数:9
oracle sql练习题Oracle SQL练习题在数据库管理和开发中,SQL(Structured Query Language)是一种标准化的用于管理和操作关系数据库的语言。
对于想要提升自己的SQL技能的数据库开发人员和管理员来说,练习题是一个非常有效的学习方法。
本文将介绍一些Oracle SQL练习题,帮助读者巩固和提高他们的SQL技能。
1. 查询员工表中的所有员工信息。
```sqlSELECT * FROM employees;```2. 查询员工表中的所有员工的姓名和工资。
```sqlSELECT first_name, last_name, salary FROM employees;```3. 查询员工表中工资大于5000的员工信息。
```sqlSELECT * FROM employees WHERE salary > 5000;```4. 查询员工表中工资大于5000并且职务是经理的员工信息。
```sqlSELECT * FROM employees WHERE salary > 5000 AND job_id = 'MANAGER'; ```5. 查询员工表中按照工资降序排列的前5个员工信息。
```sqlSELECT * FROM employees ORDER BY salary DESC FETCH FIRST 5 ROWS ONLY; ```6. 查询员工表中每个职务的员工数量。
```sqlSELECT job_id, COUNT(*) FROM employees GROUP BY job_id;```7. 查询员工表中每个部门的平均工资。
```sqlSELECT department_id, AVG(salary) FROM employees GROUP BY department_id; ```8. 查询员工表中工资排名前10的员工信息。
Oracle经典练习题及标准答案oracle经典练习sql/*1、选择在部门30中员工的所有信息*/select * from scott.emp where deptno = '30'/*2、列出职位为(MANAGER)的员工的编号,姓名*/select empno, ename from scott.emp where job = 'MANAGER'/*3、找出奖金高于工资的员工*/select * from scott.emp where comm > sal/*4、找出每个员工奖金和工资的总和*/select ename, sal + nvl(comm, 0) from scott.emp/*5、找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK) */select *from scott.empwhere deptno = '10'and job = 'MANAGER'unionselect *from scott.empwhere job = 'CLERK'and deptno = '20'/*6、找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工*/ select *from scott.empwhere job != 'MANAGER'and job != 'CLERK'and sal > 2000/*7、找出有奖金的员工的不同工作*/select distinct(job) from scott.emp where comm is not null /*8、找出没有奖金或者奖金低于500的员工*/select *from scott.empwhere comm is not nulland comm > 500/*9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面*/select enamefrom scott.emporder by (months_between(sysdate, hiredate) / 12) descselect ename,hiredate from scott.emp order by hiredate/*10、找出每个月倒数第三天受雇的员工*/select * from scott.emp where hiredate = last_day(hiredate) - 2/*11、分别用case和decode函数列出员工所在的部门,deptno=10显示'部门10',deptno=20显示'部门20'deptno=30显示'部门30'deptno=40显示'部门40'否则为'其他部门'*/select ename,case deptnowhen 10 then'部门10'when 20 then'部门20'when 30 then'部门30'when 40 then'部门40'else'其他部门'end 工资情况from scott.empselect ename,decode(deptno,10,'部门10',20,'部门20',30,'部门30',40,'部门40','其他部门') 工资情况from scott.emp/*12、分组统计各部门下工资>500的员工的平均工资*/select avg(sal) from scott.emp where sal > 500 group by deptno/*13、统计各部门下平均工资大于500的部门*/select deptno from scott.emp group by deptno having avg(sal) > 500 /*14、算出部门30中得到最多奖金的员工奖金*/ select max(comm) from scott.emp where deptno = 30/*15、算出部门30中得到最多奖金的员工姓名*/select enamefrom scott.empwhere deptno = 30and comm = (select max(comm) from scott.emp where deptno = 30) /*16、算出每个职位的员工数和最低工资*/select count(ename), min(sal), job from scott.emp group by job/*17、列出员工表中每个部门的员工数,和部门no */select count(ename), deptno from scott.emp group by deptno/*18、得到工资大于自己部门平均工资的员工信息*/select *from scott.emp ewhere sal > (select avg(sal) from scott.emp where e.deptno = deptno)select *from scott.emp e1,(select avg(sal) sals, deptno from scott.emp group by deptno) e2where sal > salsand e1.deptno = e2.deptno/*19、分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) */select avg(nvl(comm,0)), sum(sal + nvl(comm, 0))from scott.empgroup by deptno,job/*20、笛卡尔集*/select * from scott.emp, scott.dept/*21、显示员工ID,名字,直属主管ID,名字*/select empno,ename,mgr,(select ename from scott.emp e1 where e1.empno = e2.mgr) 直属主管名字from scott.emp e2/*22、DEPT表按照部门跟EMP表左关联*/select *fromscott.dept, scott.empwherescott.dept.deptno = scott.emp.deptno(+)/*23、使用此语句重复的内容不再显示了*/select distinct (job) from scott.emp/*24、重复的内容依然显示*/select *from scott.empUNION ALLselect * from scott.emp/*23和24题和22题是一样的*//*25、只显示了两个表中彼此重复的记录。
oracle练习及答案测试⼀1.SQL*PLUS命令可以控制数据库(no)2.下⾯的语句是否可以执⾏成功(yes)select last_name , job_id , salary as salfrom employees;3.下⾯的语句是否可以执⾏成功(yes)select * from employees;4.找出下⾯语句中的错误select employee_id , last_namesal * 12 ANNUAL SALARYfrom employees;列于列之间未⽤逗号分隔别名应⽤引号括起来5.显⽰表departments的结构,并查询其中的全部数据desc departmentsselect * from departments;6.显⽰出表employees中的全部job_id(不能重复)select distinct job_idfrom employees;7.显⽰出表employees的全部列,各个列之间⽤逗号连接,列头显⽰成OUT_PUTselect EMPLOYEE_ID||','|| FIRST_NAME||','||LAST_NAME||','||EMAIL||','||PHONE_NUMBER||','||HIRE_DATE||','||JOB_ID||','||SALARY||','||COMMISSION_PCT||','||MANAGER_ID||','|| DEPARTMENT_ID as "OUT_PUT" from employees;测试⼆1.查询⼯资⼤于12000的员⼯姓名和⼯资SELECT FIRST_NAME, salaryFROM employeesWHERE salary > 12000;2.查询员⼯号为176的员⼯的姓名和部门号SELECT FIRST_NAME, department_idFROM employeesWHERE employee_id = 176;3.选择⼯资不在5000到12000的员⼯的姓名和⼯资SELECT FIRST_NAME, salaryFROM employeesWHERE salary NOT BETWEEN 5000 AND 12000;4.选择雇⽤时间在1998-02-01到1998-05-01之间的员⼯姓名,job_id和雇⽤时间SELECT FIRST_NAME, job_id, hire_dateFROM employeesWHERE hire_date BETWEEN '01-2⽉-98' AND '01-5⽉-98';5.选择在20和50号部门⼯作的员⼯姓名和部门号SELECT FIRST_NAME, department_idFROM employeesWHERE department_id IN (20, 50);6.选择在1994年雇⽤的员⼯的姓名和雇⽤时间SELECT FIRST_NAME, hire_dateFROM employeesWHERE hire_date LIKE '%94';7.选择公司中没有管理者的员⼯姓名及job_idSELECT FIRST_NAME, job_idFROM employeesWHERE manager_id IS NULL;8.选择公司中有奖⾦的员⼯姓名,⼯资和奖⾦SELECT FIRST_NAME, salary, commission_pctFROM employeesWHERE commission_pct IS NOT NULL;9.选择员⼯姓名的第三个字母是a的员⼯姓名SELECT FIRST_NAMEFROM employeesWHERE FIRST_NAME LIKE '__a%';10.选择姓名中有字母a和e的员⼯姓名SELECT FIRST_NAMEFROM employeesWHERE (FIRST_NAME LIKE '%e%a%' OR FIRST_NAME LIKE '%a%e%')测试三1.显⽰系统时间Select sysdate "Date" from dual2.查询员⼯号,姓名,⼯资,以及⼯资提⾼百分之20%后的结果(new salary)select empno,ename,sal, round(sal*1.20,0) as“new salary” from emp;3.将员⼯的姓名按⾸字母排序,并写出姓名的长度(length)select ename "Name" ,length(ename) "Length" from emp order by substr(ename,1,1);4.查询各员⼯的姓名,并显⽰出各员⼯在公司⼯作的⽉份数(worked_month)。
oracle sql练习题1. 编写一个SQL查询,找出员工表中工资最高的员工的姓名和工资。
```SELECT ename, salFROM empWHERE sal = (SELECT MAX(sal) FROM emp);```2. 编写一个SQL查询,计算出每个部门的平均工资,并按照平均工资降序排列。
```SELECT deptno, AVG(sal) as avg_salaryFROM empGROUP BY deptnoORDER BY avg_salary DESC;```3. 编写一个SQL查询,找出没有任何员工的部门(即部门中没有员工记录的部门)。
```SELECT d.deptno, d.dnameFROM dept dLEFT JOIN emp e ON d.deptno = e.deptnoWHERE e.deptno IS NULL;```4. 编写一个SQL查询,找出在每个部门中薪资排名第二高的员工的姓名和工资。
```SELECT d.dname, e.ename, e.salFROM emp eINNER JOIN dept d ON e.deptno = d.deptnoWHERE e.sal = (SELECT DISTINCT salFROM empWHERE deptno = e.deptnoORDER BY sal DESCOFFSET 1 ROW FETCH FIRST 1 ROW ONLY);```5. 编写一个SQL查询,找出拥有部门管理权限(即至少管理一个部门)且工资不超过5000的员工的姓名。
```SELECT enameFROM empWHERE empno IN (SELECT DISTINCT mgrFROM empWHERE sal <= 5000);```6. 编写一个SQL查询,找出在工资表中有重复记录的员工姓名和工资。
```SELECT ename, salFROM empGROUP BY ename, salHAVING COUNT(*) > 1;```7. 编写一个SQL查询,找出至少在两个部门工作过的员工的姓名。
oracle的sql练习题1. 编写SQL查询语句,从员工表(EMPLOYEES)中选择工资(SALARY)大于5000的员工信息,按照工资的降序排列。
```sqlSELECT * FROM EMPLOYEES WHERE SALARY > 5000 ORDER BY SALARY DESC;```2. 编写SQL查询语句,从部门表(DEPARTMENTS)中选择部门名称(DEPARTMENT_NAME)、部门位置(LOCATION_ID)以及该部门员工的数量,按照员工数量的升序排列。
```sqlSELECT DEPARTMENT_NAME, LOCATION_ID, COUNT(*) AS EMPLOYEE_COUNTFROM DEPARTMENTSJOIN EMPLOYEES ON DEPARTMENTS.DEPARTMENT_ID = EMPLOYEES.DEPARTMENT_IDGROUP BY DEPARTMENT_NAME, LOCATION_IDORDER BY EMPLOYEE_COUNT ASC;```3. 编写SQL查询语句,从员工表(EMPLOYEES)中选择员工的姓名(FIRST_NAME)以及所属部门的名称(DEPARTMENT_NAME),要求只选择属于部门名称以"E"开头的员工信息。
```sqlSELECT FIRST_NAME, DEPARTMENT_NAMEFROM EMPLOYEESJOIN DEPARTMENTS ON EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_IDWHERE DEPARTMENT_NAME LIKE 'E%';```4. 编写SQL查询语句,从员工表(EMPLOYEES)中选择员工的姓名(FIRST_NAME)以及所属部门的名称(DEPARTMENT_NAME),要求只选择属于部门名称以"A"结尾的员工信息,且员工的工资(SALARY)在3000到6000之间。
oracle-sql练习题及答案createtabletudent(novarchar2(10)primarykey,namevarchar2(20),agenumber(2),e某varchar2(5));createtableteacher(tnovarchar2(10)primarykey,tnamevarchar2(20));createtablecoure(cnovarchar2(10),cnamevarchar2(20),tnovarcha r2(20),contraintpk_coureprimarykey(cno,tno));createtablec(novarchar2(10),cnovarchar2(10),corenumber(4,2), contraintpk_cprimarykey(no,cno));/某某某某某某某初始化学生表的数据某某某某某某//某某某某某某某某某某某某某某某初始化课程表某某某某某某某某某某某某某某某某某某某某某某某某某某某某/inertintocourevalue('c001','J2SE','t002');inertintocourevalue(' c002','JavaWeb','t002');inertintocourevalue('c003','SSH','t001') ;inertintocourevalue('c004','Oracle','t001');inertintocourevalue('c005','SQLSERVER2005','t003');inertinto courevalue('c006','C#','t003');练习:注意:以下练习中的数据是根据初始化到数据库中的数据来写的SQL 语句,请大家务必注意。
oracle sql 试题及答案在Oracle数据库管理和开发中,SQL(Structured Query Language)是一种标准化的关系型数据库语言。
在这篇文章中,我们将提供一些Oracle SQL试题及其答案,旨在帮助读者巩固和加深对Oracle SQL语言的理解。
请注意,答案中不再重复题目,仅给出相应的解答。
1. 以下SQL语句中,哪一个用于创建一个名为"Employees"的表?CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,LastName VARCHAR2(50),FirstName VARCHAR2(50),DateOfBirth DATE);2. 在一个名为"Employees"的表中,你想要删除LastName为"Smith"的所有行。
你应该使用以下哪个SQL语句?DELETE FROM Employees WHERE LastName = 'Smith';3. 假设你有一个名为"Employees"的表,你想要增加一个名为"Salary"的列,数据类型为NUMBER(10,2)。
你应该使用以下哪个SQL 语句?ALTER TABLE Employees ADD (Salary NUMBER(10,2));4. 以下SQL查询语句将返回哪些列?SELECT LastName, FirstName FROM Employees;答案:该查询将返回"Employees"表中的LastName和FirstName列。
5. 以下SQL语句将返回"Employees"表中有多少条记录?SELECT COUNT(*) FROM Employees;答案:该查询将返回"Employees"表中的记录数。
oracle的sql语句的练习题及答案(员⼯表+部门表)⼀、创建表及初始化数据1、表说明:emp员⼯表(empno员⼯号/ename员⼯姓名/job⼯作/mgr上级编号/hiredate受雇⽇期/sal薪⾦/comm佣⾦/deptno部门编号) dept部门表(deptno部门编号/dname部门名称/loc地点)注意:⼯资 = 薪⾦ + 佣⾦2、创建表create table DEPT(DEPTNO NUMBER(2) not null,DNAME VARCHAR2(14),LOC VARCHAR2(13));alter table DEPT add constraint PK_DEPT primary key (DEPTNO);create table EMP(EMPNO NUMBER(4) not null,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2));alter table EMP add constraint PK_EMP primary key (EMPNO);3、初始化数据insert into DEPT (DEPTNO, DNAME, LOC)values (10, 'ACCOUNTING', 'NEW YORK');insert into DEPT (DEPTNO, DNAME, LOC)values (20, 'RESEARCH', 'DALLAS');insert into DEPT (DEPTNO, DNAME, LOC)values (30, 'SALES', 'CHICAGO');insert into DEPT (DEPTNO, DNAME, LOC)values (40, 'OPERATIONS', 'BOSTON');commit;insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980', 'dd-mm-yyyy'), 800, null, 20);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600, 300, 30);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7521, 'WARD', 'SALESMAN', 7698, to_date('22-02-1981', 'dd-mm-yyyy'), 1250, 500, 30);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7566, 'JONES', 'MANAGER', 7839, to_date('02-04-1981', 'dd-mm-yyyy'), 2975, null, 20);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-09-1981', 'dd-mm-yyyy'), 1250, 1400, 30);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7698, 'BLAKE', 'MANAGER', 7839, to_date('01-05-1981', 'dd-mm-yyyy'), 2850, null, 30);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7782, 'CLARK', 'MANAGER', 7839, to_date('09-06-1981', 'dd-mm-yyyy'), 2450, null, 10);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7788, 'SCOTT', 'ANALYST', 7566, to_date('19-04-1987', 'dd-mm-yyyy'), 3000, null, 20);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981', 'dd-mm-yyyy'), 5000, null, 10);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7844, 'TURNER', 'SALESMAN', 7698, to_date('08-09-1981', 'dd-mm-yyyy'), 1500, 0, 30);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7876, 'ADAMS', 'CLERK', 7788, to_date('23-05-1987', 'dd-mm-yyyy'), 1100, null, 20);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7900, 'JAMES', 'CLERK', 7698, to_date('03-12-1981', 'dd-mm-yyyy'), 950, null, 30);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7902, 'FORD', 'ANALYST', 7566, to_date('03-12-1981', 'dd-mm-yyyy'), 3000, null, 20);insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)values (7934, 'MILLER', 'CLERK', 7782, to_date('23-01-1982', 'dd-mm-yyyy'), 1300, null, 10);commit;⼆、题⽬练习1.列出⾄少有⼀个员⼯的所有部门。
✧(CORE-E-001)综合练习▪定义CORE-F-001——CORE-F-005的综合练习:1.用sqlplus连接数据库时,为什么会出Oracle not available错误?2.找出员工的姓中(last_name)第三个字母是a的员工名字3.找出员工名字中含有a和e的4.找出所有有提成的员工,列出名字、工资、提出,显示结果按工资从小到大,提成从小到大的顺序5.42部门有哪些职位6.除了Sales部门,还有哪些部门,列出部门号、部门名称。
7.显示工资不在1000到1550之间的员工信息:名字、工资,按工资从大到小排序。
8.显示职位为Stock Clerk和Sales Representative,年薪在14400和17400之间的员工的信息:名字、职位、年薪。
9.解释select id ,commission_pct from s_emp where commission_pct is null 和select id , commission_pct from s_emp where commission_pct = null的输出结果。
10.select语句的输出结果为select * from s_dept;select * from s_emp;select * from s_region;select * from s_customer;……当前用户有多少张表,结果集有多少条记录。
11.判断select first_name , dept_id from s_emp where salary > '1450';是否抱错,为什么?✧(CORE-E-002)综合练习▪定义CORE-F-006——CORE-F-008的综合练习:1.改变NLS_LANG的值,让select to_char(salary*12,’L99,999.99’) from s_emp输出结果的货币单位是¥和$2.列出每个员工的名字,工资、涨薪后工资(涨幅为8%),元为单位进行四舍五入3.找出谁是最高领导,将名字按大写形式显示4.Ben的领导是谁(Ben向谁报告)。
5.Ben领导谁。
(谁向Ben报告)。
6.哪些员工的工资高于他直接上司的工资,列出员工的名字和工资,上司的名字和工资7.哪些员工和Biri(last_name)同部门8.哪些员工跟Smith(last_name)做一样职位9.哪些员工跟Biri(last_name)不在同一个部门10.哪些员工跟Smith(last_name)做不一样的职位11.显示有提成的员工的信息:名字、提成、所在部门名称、所在地区的名称12.显示Operations部门有哪些职位13.整个公司中,最高工资和最低工资相差多少14.提成大于0的人数15.显示整个公司的最高工资、最低工资、工资总和、平均工资,保留到整数位。
16.整个公司有多少个领导17.列出在同一部门入职日期晚但工资高于其他同事的员工:名字、工资、入职日期✧(CORE-E-003)综合练习▪定义CORE-F-009——CORE-F-011的综合练习:1.各个部门平均、最大、最小工资、人数,按照部门号升序排列2.各个部门中工资大于1500的员工人数3.各个部门平均工资和人数,按照部门名字升序排列4.列出每个部门中有同样工资的员工的统计信息,列出他们的部门号,工资,人数5.该部门中工资高于1000的员工数量超过2人,列出符合条件的部门:显示部门名字、地区名称6.哪些员工的工资,高于整个公司的平均工资,列出员工的名字和工资(降序)7.哪些员工的工资,介于32和33部门(33高些)平均工资之间8.所在部门平均工资高于1500的员工名字9.列出各个部门中工资最高的员工的信息:名字、部门号、工资10.最高的部门平均工资值的是多少11.哪些部门的人数比32号部门的人数多12.Ben的领导是谁(非关联子查询)13.Ben领导谁(非关联子查询)14.Ben的领导是谁(关联子查询)15.Ben领导谁(关联子查询)16.列出在同一部门共事,入职日期晚但工资高于其他同事的员工:名字、工资、入职日期(关联子查询)17.哪些员工跟Biri(last_name)不在同一个部门(非关联子查询)18.哪些员工跟Biri(last_name)不在同一个部门(关联子查询)19.Operations部门有哪些职位(非关联子查询)20.Operations部门有哪些职位(关联子查询)✧CORE-E-004综合练习▪定义CORE-F-012——CORE-F-017的综合练习:1.显示员工的名字、入职日期、周几入职(用英文全拼),显示顺序从周一至周日。
2.写一个sql脚本,实现多对多关系(暂时不实现约束):学生表、课程表、学生选课表,学生表包含如下信息:学号、姓名、性别、出生日期、政治面貌,课程表包含如下信息:课程号、课程名称、学分、学时、学期,学生选课表包含如下信息:学号、课程号、成绩并插入数据。
3.在建好表的基础上完成查询:某个指定的学生(给出学生名字)选了哪些课程。
4.某个指定的学生(给出学号)没有选哪些课程。
✧(CORE-E-005)综合练习▪定义CORE-F-018——CORE-F-020的综合练习:1.工资在1500至3000之间的员工,各自工作的年限(四舍五入,降序)。
2.公司规定,每个员工在工作25年的第一个周五,可以申请退休,查询每个员工的这天显示格式:2010-01-013.完善sql脚本中的建表语句,在三张表上增加约束:学生表、课程表、学生选课表,在数据处理上体现出事务的概念。
4.修改某个学生的出生日期。
5.修改某门课程的学时。
6.删除某名学生。
(需要考虑该学生是否已经选了课程)7.在学生选课表上添加两个字段学生名字和课程名称并填上值。
8.若有两门课程的成绩低于60分将其删除。
9.哪些学生选了所有的课程。
✧(CORE-E-006)综合练习▪定义CORE-E-006的综合练习:1.补充前一天的sql脚本,在学生表、课程表、学生选课表上添加索引。
学生表的姓名字段、出生日期字段,课程表上的学分字段,学生选课表的成绩字段。
2.将学生表上的id和课程表上的id用sequence实现。
3.哪些地区没有员工。
4.某个指定学生(给出学生名字)没有选哪些课程5.42部门员工的纳税情况,税率如下:0.00 ——1999.99 0.002000.00——3999.99 0.094000.00——5999.99 0.206000.00——7999.99 0.308000.00——9999.99 0.4010000.00——11999.99 0.4212000.00——139999.99 0.44140000.00 or greater 0.456.从emp表和dept表中完成如下查询:各个部门不同职位的工资总和?输出如下:JOB DEPT_10 DEPT_20 DEPT_30--------- ---------- ---------- ----------CLERK 1 2 1SALESMAN 4PRESIDENT 1MANAGER 1 1 1ANALYST 27.有一个权限表XT_QXMX:(权限序号,权限名称)QXXH QXMC1 发文填写2 发文审批3 收文填写4 收文审批权限-人员对应表XT_QXRY,如果某人有某个权限,则在此表有条记录(序号,权限序号,用户名称)XH QXXH YHMC1 2 张三2 3 张三(张三有两个权限,发文审批和收文填写)写一个查询:列出张三有哪些权限,同时列出所有的权限.查询结果如下:QXXH QXMC 是否有此权限1 发文填写 false2 发文审批 true3 收文填写 true4 收文审批 false8.数据如下:日期事务所标章NO.(varchar2) 12/12 北京 112/12 北京 212/12 北京 312/13 河北 5112/13 河北 5212/13 河北 5312/13 河北 6012/13 河北 70输出结果如下: 只要日期和事务所一样,标章号连续就把记录合并日期事务所标章NO.(varchar2) 12/12 北京 1-312/13 河北 51-5312/13 河北 6012/13 河北 70✧(CORE-E-007)项目实战▪定义CORE-E-007的项目实战:实验室管理系统需要说明该系统提供如下功能模块:管理员管理、资费管理、用户管理、帐务查询、账单查询、用户自服务。
有两类人群使用该系统:管理员和用户,管理员可以使用管理员管理、资费管理、用户管理、帐务查询、账单查询功能模块,用户可以使用用户自服务模块。
管理员包含的信息有:管理员编码、管理员姓名、登录名、登录密码、联系电话、E-Mail、注册日期、注销日期。
管理员有多人,每人可以使用多个功能模块。
每个功能模块可以被多名管理员使用。
有用户管理权限的管理员可以管理用户,用户(即为帐务帐号)包含如下信息:主键编码、用户姓名(真实姓名)、用户账务帐号(用户登录名)、用户账务帐号密码(用户登录密码)、账务帐号状态(0:开通;1:暂停;2:删除)、联系电话、email、开通日期、暂停日期、付款方式(0:现金;1:银行转帐;2:邮局汇款;3:其他)、职业、省份、性别、公司名称、地址、邮编。
一个用户可以在多台Solaris机器上开通帐户(即为业务帐号),实现远程登录。
根据使用的时间,进行收费服务。
资费政策为开通服务需要缴纳月租费10元,其它标准如下:业务帐号包含的信息为:主键编码、用户业务帐号(OS系统帐号)、用户业务帐号密码(操作系统密码)、服务器编码(机器IP地址)、业务帐号状态(0:正常;1:暂停;2:删除)、资费编码、开通日期、暂停日期。
1.根据以上说明画出E-R图并设计出表结构,并设计索引。
2.用DDL语句实现表结构、索引,其中主键用sequence实现、3.完成数据编辑。
4.每个管理员有哪些权限?5.哪些管理员有所有权限?6.没有某项权限的管理员有哪些?7.用户选择了哪些业务?8.用户选择的业务的资费情况如何?。