----------------------------建表,与插入数据
--创建职务表
CREATE TABLE POSITION(
  POSITIONID VARCHAR2(2),
  POSITIONNAME VARCHAR2(20),
  CONSTRAINTS POS_ID_PK PRIMARY KEY (POSITIONID)
);
--创建工资级别表
CREATE TABLE EMPLEVEL(
  LEVELNO VARCHAR2(2),
  LOWSALARY NUMBER(7,2),
  HIGHSALARY NUMBER(7,2),
  CONSTRAINTS EMP_NO_PK PRIMARY KEY (LEVELNO)
);

--创建学位表
CREATE TABLE QUAFICATION(
    QUALID CHAR(1),
    QUALNAME VARCHAR2(10),
    CONSTRAINTS QUA_ID_PK PRIMARY KEY (QUALID)
);

--创建部门表
CREATE TABLE DEPARTMENT(
  DEPTID VARCHAR2(2),
  DEPTNAME VARCHAR2(30),
  LOCATION VARCHAR2(30),
  MANAGERID VARCHAR2(4),
  CONSTRAINTS DEP_ID_PK PRIMARY KEY (DEPTID)
);

--创建员工表
CREATE TABLE EMPLOYEE(
  EMPLOYEEID VARCHAR2(4),
  EMPLOYEENAME VARCHAR2(40) NOT NULL,
  HIREDATE DATE,
  SALARY NUMBER(7,2),
  COMMISSION NUMBER(7,2),
  MANAGERID VARCHAR2(4),
  DEPTID VARCHAR2(2),
  POSITIONID VARCHAR2(2),
  QUALID CHAR(1),
  CONSTRAINTS EMP_ID_PK PRIMARY KEY (EMPLOYEEID),
  CONSTRAINTS EMP_DEPTID_FK FOREIGN KEY (DEPTID) REFERENCES DEPARTMENT(DEPTID),
  CONSTRAINTS EMP_PID_FK FOREIGN KEY (POSITIONID) REFERENCES POSITION(POSITIONID),
  CONSTRAINTS EMP_QUALID_FK FOREIGN KEY (QUALID) REFERENCES QUAFICATION(QUALID)
);

---------添加 员工表EMPLOYEE 外键,参照原表
ALTER TABLE EMPLOYEE
 ADD CONSTRAINTS EMP_MID_FK FOREIGN KEY (MANAGERID) REFERENCES EMPLOYEE(EMPLOYEEID);

---------添加 部门表DEPARTMENT 外键,参照 EMPLOYEE 表
ALTER TABLE DEPARTMENT
 ADD CONSTRAINTS DEP_MAN_FK FOREIGN KEY (MANAGERID) REFERENCES EMPLOYEE(EMPLOYEEID);

------INSERT POSITION
INSERT into POSITION(POSITIONID,POSITIONNAME) values('01','组长');
INSERT into POSITION VALUES('02','经理');
INSERT into POSITION VALUES('03','总监');
INSERT into POSITION VALUES('04','执行总裁');

---select * from POSITION;

-----INSERT  EMPLEVEL
INSERT INTO EMPLEVEL VALUES('0',1000,2000);
INSERT INTO EMPLEVEL VALUES('1',2000,3000);

----select * from EMPLEVEL;

---INSERT QUAFICATION
INSERT INTO QUAFICATION VALUES('1','学士');
INSERT INTO QUAFICATION VALUES('2','博士');

------select * from QUAFICATION;

-----INSERT DEPARTMENT
INSERT INTO DEPARTMENT VALUES('01','企化部','组长办公室',NULL);
INSERT INTO DEPARTMENT VALUES('02','管理部','经理办公室',NULL);

----select * from DEPARTMENT;

----INSERT EMPLOYEE
INSERT INTO EMPLOYEE VALUES(01,'小张',TO_DATE('2009-09-01','YYYY-MM-DD'),1500,600,NULL,NULL,NULL,NULL);

----与下面的记录相同,EMPLOYEEID,SALARY
INSERT INTO EMPLOYEE VALUES(02,'小李',TO_DATE('2009-09-02','YYYY-MM-DD'),1600,300,NULL,NULL,NULL,NULL);

-----与上面的记录相同
INSERT INTO EMPLOYEE VALUES(03,'小李',TO_DATE('2009-09-02','YYYY-MM-DD'),1600,400,NULL,NULL,NULL,NULL);

INSERT INTO EMPLOYEE VALUES(04,'小勇',TO_DATE('2009-09-03','YYYY-MM-DD'),2100,500,NULL,NULL,NULL,NULL);

INSERT INTO EMPLOYEE VALUES(05,'小勇',TO_DATE('2009-09-03','YYYY-MM-DD'),null,500,NULL,NULL,NULL,NULL);

INSERT INTO EMPLOYEE VALUES(06,'小刚',null,2100,500,NULL,NULL,NULL,NULL);

INSERT INTO EMPLOYEE VALUES(07,'小华',null,2100,500,NULL,NULL,NULL,NULL);
---select * from EMPLOYEE;

--update EMPLOYEE
UPDATE  EMPLOYEE SET COMMISSION = 300;
UPDATE EMPLOYEE SET COMMISSION = 200 WHERE EMPLOYEEID = 1;
UPDATE EMPLOYEE SET COMMISSION = 400 WHERE EMPLOYEEID = 3;
UPDATE EMPLOYEE SET COMMISSION = 500 WHERE EMPLOYEEID = 4;
UPDATE EMPLOYEE SET COMMISSION = 200 WHERE EMPLOYEEID = 2;
UPDATE EMPLOYEE SET EMPLOYEENAME = '小胖' WHERE EMPLOYEEID = 4;
UPDATE EMPLOYEE SET EMPLOYEENAME = '张小华' WHERE EMPLOYEEID = 1;
UPDATE EMPLOYEE SET EMPLOYEENAME = '李小华' WHERE EMPLOYEEID = 2;
UPDATE EMPLOYEE SET EMPLOYEENAME = '大小华华' WHERE EMPLOYEEID = 3;
UPDATE EMPLOYEE SET COMMISSION = 1000 WHERE EMPLOYEEID = 6;

---DELETE  POSITION
DELETE POSITION ;
DELETE POSITION WHERE POSITIONNAME = '组长';
DELETE POSITION WHERE POSITIONID = '02';
---select * from POSITION;

--SELECT EMPLOYEE
SELECT * FROM EMPLOYEE;
SELECT EMP.EMPLOYEEID,EMP.EMPLOYEENAME  FROM EMPLOYEE EMP;
SELECT EMP.EMPLOYEEID ID,EMP.EMPLOYEENAME 姓名  FROM EMPLOYEE EMP;
SELECT EMP.EMPLOYEEID ID,EMP.EMPLOYEENAME 姓名  FROM EMPLOYEE EMP WHERE EMP.SALARY = 1500;

---DISTINCT
SELECT  DISTINCT EMP.EMPLOYEENAME,EMP.SALARY FROM EMPLOYEE EMP;

----||串联
SELECT EMP.EMPLOYEENAME||'的月薪是'||EMP.SALARY INFO FROM EMPLOYEE EMP;

---算术表达式
SELECT EMP.EMPLOYEEID,EMP.SALARY *12 年薪  FROM EMPLOYEE EMP;

---select * from EMPLOYEE;

---where子句 >
SELECT   EMP.EMPLOYEEID,EMP.SALARY FROM EMPLOYEE EMP WHERE EMP.SALARY > 1600;

---BETWTEEIN AND
SELECT EMP.EMPLOYEEID, EMP.SALARY FROM EMPLOYEE EMP WHERE EMP.SALARY BETWEEN 1500 AND 1660;

---IN
SELECT EMP.EMPLOYEENAME,EMP.SALARY FROM EMPLOYEE EMP WHERE EMP.SALARY IN(1399,1600);

---NOT IN
SELECT  EMP.EMPLOYEENAME,EMP.SALARY   FROM EMPLOYEE EMP WHERE SALARY NOT IN(1600,3000);

---IS NULL
SELECT  EMP.EMPLOYEENAME, EMP.SALARY FROM EMPLOYEE EMP WHERE EMP.SALARY IS NULL;

-----IS NOT NULL
SELECT EMP.EMPLOYEENAME, EMP.HIREDATE  FROM EMPLOYEE EMP WHERE EMP.HIREDATE IS NOT NULL;

---LIKE
SELECT    EMP.EMPLOYEENAME     FROM EMPLOYEE EMP  WHERE EMP.EMPLOYEENAME LIKE '小%';
SELECT    EMP.EMPLOYEENAME     FROM EMPLOYEE EMP  WHERE EMP.EMPLOYEENAME LIKE '%小%';
SELECT    EMP.EMPLOYEENAME     FROM EMPLOYEE EMP  WHERE EMP.EMPLOYEENAME LIKE '_小%';
SELECT    EMP.EMPLOYEENAME     FROM EMPLOYEE EMP  WHERE EMP.EMPLOYEENAME LIKE '_小_';

---NOT LIKE
SELECT  EMP.EMPLOYEENAME  FROM  EMPLOYEE EMP WHERE EMP.EMPLOYEENAME NOT LIKE '大%';

---AND
SELECT  EMP.EMPLOYEENAME,EMP.SALARY FROM EMPLOYEE EMP WHERE  EMP.SALARY > 1600 AND EMP.COMMISSION > 900;

---ORDER BY
SELECT EMP.EMPLOYEEID,EMP.EMPLOYEENAME,EMP.COMMISSION FROM EMPLOYEE EMP
ORDER BY EMP.COMMISSION;

SELECT  EMP.EMPLOYEEID,EMP.EMPLOYEENAME,EMP.SALARY,EMP.COMMISSION  FROM EMPLOYEE EMP
ORDER BY EMP.SALARY,EMP.COMMISSION DESC;

转载于:https://blog.51cto.com/baiyan425/618040

Oracle下SQL基本操作(二)相关推荐

  1. oracle 创建工作日表,oracle下sql创建指定年份全年日期表(区分工作日)

    作者的话: 当系统执行到本处sql时,将本年度(或指定年份)一整年365天对应的是否为工作日情况数据插入到指定表中(如:0表示工作日,1表示双休日,法定节假日手动调整). 1.创建表: create ...

  2. oracle 生成日期列表,oracle下sql创建指定年份全年日期表(区分工作日)

    作者的话: 当系统执行到本处sql时,将本年度(或指定年份)一整年365天对应的是否为工作日情况数据插入到指定表中(如:0表示工作日,1表示双休日,法定节假日手动调整). 1.创建表: create ...

  3. oracle之sql(二)

    大小写 upper所有大写 A-Z lower所有小写 a-z initcap 开头大写,其余小写 SQL> select ename from emp where deptno=10; ENA ...

  4. Oracle数据库SQL基本操作

  5. 高级SQL优化(二) ——《12年资深DBA教你Oracle开发与优化——性能优化部分》

    目录: Oracle数据完整性和锁机制  索引及优化之表分析  表分析.约束及表间关系  Oracle体系结构1 Oracle体系结构2  海量数据库及分区1  海量数据库及分区2  海量数据库及分区 ...

  6. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

  7. 14、ORACLE下的基本SQL操作

    ORACLE下的基本SQL操作 1.获取表字段 select * from user_tab_columns where Table_Name='用户表' order by column_name 2 ...

  8. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)...

    [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) 原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之 ...

  9. ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

    [顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORAC ...

最新文章

  1. grails 环境找不到java_home
  2. 每日一皮:当项目完工,开发进行演示时
  3. ASC0106硬件连接注意事项
  4. webpack 入口文件 php,webpack的使用详解
  5. SQL Server表结构和数据导入到MySQL
  6. tsl加密算法_HTTPS背后的加密算法(转)
  7. Apache 紧急修复已遭利用且补丁不完整的 HTTP Server 0day
  8. innodb 共享表空间 转 独立表空间 详细说明
  9. mysql concat 索引_mysql-查看数据库、索引、表大小
  10. java线程的状态改变(练习)
  11. 逻辑卷管理(LVM)
  12. iOS蓝牙链接打印机的使用心得
  13. 艾里斑大小与像元尺寸的匹配问题
  14. 微博热搜数据变化趋势视频化展示
  15. Rust Atomic总结笔记
  16. 98年阿里P6架构师晒出工资单,看完扎心了。。。
  17. 一个月刷完机器学习笔试题300题(10)
  18. 大数据分析和大数据开发哪个好就业啊?
  19. Linux操作系统——切换到root用户及其他用户
  20. Python开发qq批量登陆

热门文章

  1. 鸟哥学习笔记六(基础篇第十一章)
  2. 80x86 CPU 的工作模式
  3. mysql最大连接数512_MySQL服务器最大连接数怎么设置才合理
  4. 计算机网络第1章(概述)
  5. mpu 配置内存空间_ARM存储器之:存储保护单元MPU
  6. 讲php fpm的书,细说PHP-fpm
  7. 基于使用AspectJ实现AOP,注解AOP开发(基于xml文件、基于注解)
  8. 谷歌浏览器添加插件时显示程序包无效:CRX_HEADER_INVALID 解决办法
  9. java 新区 老区_优学院《土地资源学》答案在线查题2020高校邦《Java核心开发技术【实境编程】》章测试答案...
  10. 程序员幽默:伤不起,我就是这样的程序员