Oracle-简单查询
Oracle的简单查询
- Oracle-简单查询
-
- 一、使用的表结构
- 二、使用管理员创建普通用户并授权
- 三、用创建好的普通执行表结构SQL语句
- 四、完成下面的查询语句
- 1、单表查询
-
- ①将所有员工的工资上浮10%.然后查询员工姓名、薪水、补助。(emp.sal为工资,emp.comm为补助)
- ②查看EMP表中部门号为10的员工的姓名,职位,参加工作时间,工资。
- ③查所有已有的职位,要求去除重复项。
- ④计算每个员工的年薪,并取列名为Salary of Year(emp.sal为员工的月薪),要求输出员工姓名,年薪。
- ⑤查询每个员工每个月拿到的总金额(emp.sal为工资,emp.comm为补助)。(提示:NVL(ex1,ex2)表示如果ex1为空则返回ex2)
- ⑥显示职位是主管(manager)的员工的姓名,工资。
- ⑦显示第3个字符为大写O的所有员工的姓名及工资。
- ⑧显示职位为销售员(SALESMAN)或主管(MANAGER)的员工的姓名,工资,职位。
- ⑨显示所有没有补助的员工的姓名。
- ⑩显示有补助的员工的姓名,工资,补助。
- ⑩①排序显示所有员工的姓名,工资(按工资降序方式)。
- ⑩②显示员工的最高工资和最低工资。
- ⑩③显示所有员工的平均工资和总计工资。
- 2、聚合查询
- 3、多表查询
- 4、子查询
- 5、集合查询
一、使用的表结构
二、使用管理员创建普通用户并授权
用户名:zhangsan
密码:zhangsan
授权:connect,resource
三、用创建好的普通执行表结构SQL语句
-- 创建数据表
CREATE TABLE dept (
deptno NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
dname VARCHAR2(14) ,
loc VARCHAR2(13) ) ;
CREATE TABLE emp (
empno NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT );
CREATE TABLE bonus (
enamE VARCHAR2(10) ,
job VARCHAR2(9) ,
sal NUMBER,
comm NUMBER ) ;
CREATE TABLE salgrade (
grade NUMBER,
losal NUMBER,
hisal NUMBER );
-- 插入测试数据 —— dept
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
-- 插入测试数据 —— emp
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO emp V