题一
1 实现将已知表中的数据插入到另一个表中
学生表:stu1
向表中插入两条数据
学生信息表2:stuinfo
将stu1表中的两条数据导入到stuinfo表中,执行下列语句
此时查看一下stuinfo表,select * from stuinfo,会发现多了两条数据。
2.
1)创建如图所示的一张表animal,其中name字段是主键,owner、species、birth三个字段非空
Create table animal(name varchar2(20) primary key, owner varchar2(20) not null,species varchar2(10) not null,sex char(2),age number(3),birth date not null);
2)使用insert语句插入如上表所示数据
3)添加adress字段,该字段类型为varchar2
Alter table animal add address varchar2(20);
4)将address字段全部修改为“惠普洛阳基地”
Update animal set address=’惠普洛阳基地’;
5) 查找18岁到21岁之间的宠物,将他们的name和owner字段显示出来
Select name,owner from animal where age between 18 and 21;
Select name,owner from animal where age>=18 and age<=21;
6) 将小于20岁的宠物的出生日期设置为2010-01-01
Update animal set birth=’01-1月-2010’ where age<20;
Update animal set birth=to_date(‘2010-01-01’,’yyyy-mm-dd’) where age<20;
7) 将大于20岁的宠物信息删除
Delete from animal where age>20;
3.
序列号 | 姓名 | 年龄 | 地址 | 毕业院校 | java成绩 | 数据库成绩 |
1001 | 李明 | 20 | 洛阳 | 河南大学 | 80 | 70 |
1002 | 张红 | 19 | 周口 | 郑州大学 | 85 | 80 |
1003 | 赵潘 | 21 | 商丘 | 山东大学 | 59 | 63 |
1) 创建一个员工表woker, 包含以下列:序列号ID,姓名name,年龄age,地址addr,毕业院校school,java成绩javascore,数据库成绩dbscore,其中name为主键;
2) 将表中毕业院校为山东大学的员工毕业院校修改为烟台大学。
Update worker set school=’烟台大学’ where school=’山东大学’;
3) 将表中数据库成绩小于70分的都加5分。
Update worker set dbscore=dbscore+5 where dbscore<70;
4) 查找毕业院校为郑州大学的的学生的序号,以及JAVA成绩与数据库成绩之和。
Select id as 序列号, javascore+dbscore as “成绩” from woker where school=’郑州大学’;
5) 查找表中有一门成绩不合格的员工姓名及其毕业院校。
Select name,school from worker where (javascore<60 and dbscore>=60) or (javascore>=60 and dbscore<60);
6) 查找表中地址为洛阳和商丘的员工姓名和地址。
Select name,addr from worker where addr=’洛阳’ or addr=’商丘’;
Select name,addr from worker where addr in(‘洛阳’,’商丘’);
7) 查找表中姓张的员工的姓名,毕业院校,年龄。
Select name,school,age from worker where name like ‘张%’;
8) 查询数据库成绩合格的员工信息。
Select * from worker where dbscore>=60;
题二 EMP表练习
- 1. 选择在部门30中员工的所有信息
请写出sql语句并核对是否跟下图一致
- 2. 列出职位为(MANAGER)的员工的编号,姓名
请写出sql语句并核对是否跟下图一致
- 3. 找出奖金高于工资的员工
请写出sql语句并核对是否跟下图一致
- 4. 找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK)
请写出sql语句并核对是否跟下图一致
- 5. 找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工
请写出sql语句并核对是否跟下图一致
- 6. 找出没有奖金或者奖金低于500的员工
请写出sql语句并核对是否跟下图一致
- 7. 显示雇员姓名,根据其服务年限,将最老的雇员排在前面
请写出sql语句并核对是否跟下图一致
- 8. 每名员工的年终奖是2000,请显示基本工资在2000元以上的员工的月工资,年总工资(12月工资+年终奖)
请写出sql语句并核对是否跟下图一致
- 9. 在emp表中,查询工资在2000元以上的姓名以及工作,使用字符串连接符显示,如下图所示
请写出sql语句并核对是否跟下图一致
答案
--. 选择在部门30中员工的所有信息
select *from emp4 where deptno=;
--. 列出职位为(MANAGER)的员工的编号,姓名
select empno name from emp4 where job='MANAGER';
--. 找出奖金高于工资的员工
select *from emp4 where comm>=sal;
--. 找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK)
select *from emp4 where (deptno= and job='MANAGER' ) or (deptno= and job='MNAAGER')
--. 找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工
select *from emp4 where (deptno = and (job !='MANAGER'and job !='CLERK')) and sal>=;
--. 找出没有奖金或者奖金低于500的员工
select *from emp4 where comm is null or comm<;
--. 显示雇员姓名,根据其服务年限,将最老的雇员排在前面
select ename from emp4 order by hiredate desc
--. 每名员工的年终奖是2000,请显示基本工资在2000元以上的员工的月工资,年总工资(12月工资+年终奖)
select ename, sal, sal*+ from emp4 where sal>;
--. 在emp表中,查询工资在2000元以上的姓名以及工作,使用字符串连接符显示
select ename||'is a '||job from emp4 where sal >;