Http://www.kingbase.com.cn MAXSIZE = 16——最大值16M; FILEGROWTH = 10——增长率10% 新增数据文件如下:
在企业管理器中查看“表空间->SP001->属性。可以查看新增的数据文件SP0011 再次执行:insert into WTF001 select * from WTF001; 语句,数据库插入正常。
任务3:解决方案二(增加数据文件的大小)
ALTER TABLESPACE SP002 MODIFY DATAFILE SP002 RESIZE 15; 注释:SP002——数据文件名称(物理名称)。每次文件增长长度应小于此文件的最大长度值(SP002最大为16M)。数据文件的最终大小不要超过16000M,因为这是KingbaseES数据库单个数据文件的极限值。而:ORACLE 10G数据库的单个表空间文件是不能超过500M的。 再次执行:insert into WTF002 select * from WTF002; 语句,数据库插入正常。
实验(五):SQL语句的查询实现
一、实验内容:使用SQL语句对自己所建数据库中的表进行查询。 二、实验目的:练习使用各种SQL语句查询表的方法与技巧。 三、实验要求: 1、单表查询; 2、多表查询;
26
____________________________________________________________________________________
联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn
Http://www.kingbase.com.cn
3、子查询;
任务1:利用SQL语句进行单表查询
SELECT empno,ename,job,sal FROM \
(1)、查询EMP表中指定的列
SELECT EMPNO AS 员工编号,ENAME AS 员工姓名,JOB AS 职位,SAL AS 工资 FROM \
(2)、在结果集中给查询的列以别名
SELECT EMPNO,ENAME,SAL*12 FROM \
(3)、在EMP表中查询每位员工的员工编号、姓名、和年薪
select * from \
(4)、在EMP表中查询月工资大于等于1500元,小于等于3000元的员工信息
select empno,ename,job,sal from \ where job='SALESMAN';
(5)、在EMP表中查询工作职位是“SALESMAN”的员工编号,姓名、职位和工资
任务2:利用SQL语句进行多表查询
(1)、查询每个员工所属部门和所在的具体地点
由于所查询的字段分别在EMP表和DEPT表中,所以需要进行跨表进行查询。
查询语句如下:
____________________________________________________________________________________
联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn
27
Http://www.kingbase.com.cn
SELECT EMPNO,ENAME,SAL,EMP.DEPTNO,LOC FROM \WHERE EMP.DEPTNO=DEPT.DEPTNO ORDER BY LOC;
该例子为相等连接,当两个表中记录的deptno值完全相等时才进行连接。这种连接查询涉及主键和外键。也称简单连接或内连接。
(2)、查询工资级别在4-5级之间的所有员工
该查询使用BETWEEN AND作为连接运算符,该运算符不是等号(=),因此这
个连接称之为不等连接。
SELECT e.empno,e.ename,e.job,e.sal,s.grade FROM \WHERE e.sal between s.losal and s.hisal and s.grade>3;
任务3:利用SQL语句进行子查询
SELECT empno,ename,sal,job FROM \WHERE job=
(SELECT job
FROM \ WHERE ename='SMITH');
(1)、查询与SMITH这个员工职位相同的所有员工的员工编号,姓名,薪水和职位。
该语句包含一个子查询,属于Where子句中的单行子查询。括号内的查询叫子查询
或内查询,括号外的查询叫主查询或外查询。
(2)、查询工作职位与SMITH相同,并且工资不超过ADAMS的所有员工的信息。
SELECT empno,ename,sal,job FROM \
28
____________________________________________________________________________________
联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn
Http://www.kingbase.com.cn
WHERE job=
(SELECT job
FROM \ WHERE ename='SMITH')
AND sal<=
(SELECT sal
FROM \ WHERE ename='ADAMS');
任务4:分页查询
(1)、在SAMPLES数据库SCOTT模式下的EMP表中查询第5条至第10条之间的记录。如下图所示:
其查询语句如下:
select * from (select a1.*, rownum rn from (select * from scott.emp) a1 where rownum<=10) where rn>=5;
在查询分析器中运行完以上查询语句的结果如下:
____________________________________________________________________________________
联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn
29
Http://www.kingbase.com.cn
任务5:查询强化训练
约定:以下的所有查询均以SAMPLES数据库中,SCOTT模式下的“DEPT表”,“EMP表”,“SALGRADE表”作为查询对象。
一、单表查询
1、创建一个表users,并且插入一行数据。请写一条插入语句,要求从自己复制,以迅速加大表的数据量。
表创建:CREATE TABLE users(userId VARCHAR2(10), uName VARCHAR2 (20), uPassw VARCHAR2(30));
插入数据:INSERT INTO users VALUES('a0001', '北京','abcdefg007'); 从自己复制插入数据的语句为?
INSERT INTO users (userId,UNAME,UPASSW) SELECT * FROM users;
2、上题中,如果需要让表中的数据量达到1024条记录,需要执行几次上题中正确选项的“自我复制插入语句”? 10次 3、如何用一条语句统计表中数据的行数
SELECT COUNT (*) FROM users;
4、查询SCOTT模式下,EMP表中SMITH 这位员工所在的部门号,工作,薪水
select deptno,job,sal from scott.emp where ename='SMITH'; 5、如何显示SCOTT模式下,EMP表中每个雇员的年工资及奖金?
说明:表中EMPNO-员工编号,ENAME-员工姓名,JOB-职位,HIREDATE-入职时间,SAL-工资,COMM-奖金,DEPTNO-员工所在部门编号。员工表如下图所示:
SELECT sal*12+nvl(comm, 0)*12 AS \年薪\6、如何查找SCOTT模式下EMP表中1982年5月1日 后入职的员工?
30
____________________________________________________________________________________
联系方式:北京市海淀区上地西路8号上地科技大厦4号楼601 电话:86-010-58851118 邮箱:Training@kingbase.com.cn