oracle数据库习题练习

启动服务方法:sqlplus system/sias
设置环境变量:set 环境变量名 数值
显示当前用户名:show user
查看系统用户:select *from db_users;
用@ 或start命令将指定命令文件调入缓冲区并执行:@d:\文件名.sql
显示表结构:desc 表名
创建student表(sno char(4),sanme varchar(20),sex char(2),birthday date,sal number(6,2)):

create table student(
sno char(4),
sname varchar(20),
sex char(2),
birthday date,
sal double(6,2)  ---- 在 oracle中用number
)

drop table student cascade constraints; – 删除约束
给student表增加一个字段classid:alter table student add classid char(10);
向student表中插入记录,记录来自一个查询结果

insert into student(sno, sname) select empno,ename from emp where empno='7369'; 

新建一个表dept1,结构与dept相同,并将dept表中插入到dept1中

create table dept1 select *from dept;

将 Martin 提升为经理,工资加1000 。

update emp set job='MANAGER', sal=sal+1000 where ename='Martin';

将工资低于平均工资的员工工资增加10%

update emp set sal=sal*1.1 where sal < (select avg(sal) from emp);

查询每个部门的人数

select deptno, count(*) from emp group by deptno;

查询工资低于本部门的平均工资的员工的信息 :

select *from emp a
where sal < (select avg(sal) from emp where emp.deptno=a.deptno group by deptno);

用表:dept,emp,
like用法:

1.select *form emp where job like 'clerk' or job like 'analyst'
2.select ename from emp where ename like 's%'

order by:

1.select *from emp where deptno=20 order by sal desc;

max\count\having\avg\sum:

1.select max(sal) from emp
2.select deptno,count(*)from emp group by deptno;
3.select deptno from emp group by deptno having count(deptno)>4;
4.select deptno,avg(sal)from emp group by deptno having avg(sal)<2000;
5.select deptno,sum(sal)from emp group by deptno having sum(sal)>3000 order by sum(sal);

多表查询:

1.select e.name,d.deptno from emp e,dept d where e.name=d.name;
2.select dname,count(e.empno) from emp e,dept d where e.deptno=d.deptno group by dname;
posted @ 2019-11-27 17:01  jee-cai  阅读(129)  评论(0编辑  收藏  举报