《金仓数据库应用技术实验手册》(V1.2版)For Windows - 图文(7)

2019-08-26 18:22

Http://www.kingbase.com.cn

说明:表中ENAME表示员工姓名,HIREDATE-入职时间。

SELECT ename,hiredate FROM SCOTT.EMP WHERE hiredate >'5-1-1982'; 或SELECT ename,hiredate FROM SCOTT.EMP WHERE hiredate >'1982-5-1';

7、SCOTT模式下EMP表中,如何显示第三个字符为大写N 的所有员工的姓名和工资?

SELECT ename,sal FROM SCOTT.EMP WHERE ename like '_ _N%';

8、SCOTT模式下EMP表中,如何显示empno为7844, 7839,7566的雇员情况?

SELECT * FROM scott.emp WHERE empno in (7844, 7839,7566);

9、在SCOTT模式下的EMP表中,“员工上级”的字段为MGR,如何显示没有上级的雇员的情况?

SELECT * FROM scott.emp WHERE mgr is null;

10、查询工资高于500 或者是岗位为MANAGER 的雇员,同时还要满足他们的姓名首字母为大写的J?

SELECT * FROM scott.emp WHERE (sal >500 or job = 'MANAGER') and ename LIKE 'J%';

11、如何按照工资的从低到高的顺序显示雇员的信息?

SELECT * FROM scott.emp ORDER by sal;

12、按照部门号升序而雇员的工资降序排列

SELECT * FROM scott.emp ORDER by deptno, sal DESC; 13、如何显示所有员工中最高工资和最低工资?

select max(sal),min(sal) from scott.emp;

14、显示所有员工中最高工资,最高工资那个人是谁?

select ename, sal from scott.emp where sal = (select max(sal) from scott.emp); 15、如何显示所有员工的平均工资和工资总和?

select avg(sal),sum(sal) from scott.emp;

16、如何计算总共有多少员工?以下选项哪个最为准确

select count(empno) from scott.emp;

17、查询最高工资员工的名字,工作岗位和工资

select ename,job,sal from scott.emp where sal=(select max(sal) from scott.emp);

____________________________________________________________________________________

联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn

31

Http://www.kingbase.com.cn

18、显示工资高于平均工资的员工信息

select * from scott.emp where sal>(select avg(sal) from scott.emp); 19、如何显示每个部门的平均工资和最高工资?

select avg(sal),max(sal),deptno from scott.emp group by deptno; 20、显示每个部门的每种岗位的平均工资和最低工资?

select avg(sal),min(sal),job,deptno from scott.emp group by deptno,job; 21、显示平均工资低于2000 的部门号和它的平均工资?

SELECT AVG(sal),deptno FROM scott.emp GROUP by deptno having AVG(sal)< 2000;

二、多表查询

22、显示雇员名,雇员工资及所在部门的名字

SELECT e.ename,e.sal,d.dname FROM scott.emp e,scott.dept d WHERE e.deptno=d.deptno; 23、显示部门号为10 的部门名、员工名和工资? SELECT d.dname, e.ename, e.sal

FROM scott.emp e, scott.dept d

WHERE e.deptno = d.deptno and e.deptno = 10;

24、显示各个员工的姓名,工资及工资的级别?

select ename,sal,grade from scott.emp,scott.salgrade where sal between losal and hisal; 25、显示雇员名,雇员工资及所在部门的名字,并按部门排序?

SELECT e.ename, e.sal, d.dname

FROM scott.emp e, scott.dept d WHERE e.deptno = d.deptno ORDER by e.deptno;

26、显示某个员工的上级领导的姓名?【注释:该题属于自连接查询】

SELECT worker.ename as \员工姓名\上级领导姓名\

FROM scott.emp worker,scott.emp boss

WHERE worker.mgr= boss.empno AND worker.ename = 'FORD';

32

____________________________________________________________________________________

联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn

Http://www.kingbase.com.cn

三、子查询

27、如何查询和部门10的工作相同的雇员的名字、岗位、工资、部门号?

SELECT * FROM emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno= 10);

28、如何显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号?

方法一:select ename,sal,deptno from scott.emp where sal>all (select sal from scott.emp where deptno=30);

方法二:Select ename,sal,deptno from scott.emp where sal>(select max(sal) from scott.emp where deptno=30);

29、如何显示工资比部门30的任意一个员工的工资高的员工的姓名、工资和部门号?

方法一:select ename,sal,deptno from scott.emp where sal>any (select sal from scott.emp where deptno=30);

方法二:Select ename,sal,deptno from scott.emp where sal>(select min(sal) from scott.emp where deptno=30);

30、如何查询与SMITH的部门和岗位完全相同的所有雇员??

SELECT * FROM scott.emp WHERE (deptno, job) = (SELECT deptno, job FROM scott.emp WHERE ename = 'SMITH');

31、如何显示高于自己部门平均工资的员工的信息??

方法一:select e1.*,e2.myavg from scott.emp e1,(select avg(sal) myavg,deptno from scott.emp group by deptno) e2 where e1.deptno=e2.deptno and e1.sal>e2.myavg;

方法二:select e1.* from scott.emp e1 where e1.sal>(select avg(sal) from scott.emp where deptno=e1.deptno);

32、查找每个部门工资最高的人的详细资料?

select * from scott.emp e where sal=(select max(sal) from scott.emp where deptno=e.deptno);

33、用查询结果创建新表(这个命令是一种快捷的建表方法)

create table mytable (id,name,sal,job,deptno) as select empno,ename,sal,job,deptno from

____________________________________________________________________________________

联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn

33

Http://www.kingbase.com.cn

scott.emp;

34、自我复制数据(蠕虫复制)

有时,为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此法为表创建海量数据。

insert into mytable (id,name,sal,job,deptno) select empno,ename,sal,job,deptno from scott.emp;

大家思考:如下的语句在执行以后,会产生什么结果?

insert into public.mytable (id,name,sal,job,deptno) select * from public.mytable;

四、分页查询

35、查询5-10条记录(分页查询)

select * from (select a1.*, rownum rn from (select * from scott.emp) a1 where rownum<=10) where rn>=5;

实验(六):权限授予与权限传播

任务1:授权与回收

【例1】 授权。在KingbaseES 中建立多个用户,给他们赋予不同的权限,然后查看是否真正拥有被授予的权限了。

1) 建立用户U1、U2、U3、U4、U5、U6、U7。密码均为123456

CREATE USER U1 WITH PASSWORD '123456'; 2) 在SYSTEM(即DBA)与七个用户之间进行授权。 [例1-1]把查询Student 表的权限授给用户U1。

因为当前用户即为SYSTEM,所以直接写授权语句即可。 GRANT SELECT

34

____________________________________________________________________________________ 联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn

Http://www.kingbase.com.cn

ON TABLE Student TO U1;

[例1-2]把对Student 表和Course 表的全部操作权限授予用户U2 和U3。 GRANT ALL PRIVILEGES ON TABLE Student,Course TO U2,U3;

[例1-3]把对表SC 的查询权限授予所有用户。 GRANT SELECT ON TABLE SC TO PUBLIC;

[例1-4]把查询Student 表和修改学生学号的权限授给用户U4。 GRANT UPDATE (Sno) , SELECT ON Student TO U4;

[例1-5]把对表SC 的INSERT 权限授予U5,并允许U5 将此权限再授予其他用户。GRANT INSERT ON SC TO U5

WITH GRANT OPTION;

[例1-6]用户U5 将对表SC 的INSERT 权限授予U6,并允许将权限转授给其他用户。首先应该以U5 的身份重新登录数据库,然后再进行授权。 GRANT INSERT ON SC TO U6

WITH GRANT OPTION;

[例1-7]用户U6 将对表SC 的INSERT 权限授予U7。 首先应该以U6 的身份重新登录数据库,然后再进行授权。 GRANT INSERT

____________________________________________________________________________________

联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn

35


《金仓数据库应用技术实验手册》(V1.2版)For Windows - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:个人所得税习题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: