Oracle下SQL基本操作(二)
----------------------------建表,与插入数据
--创建职务表
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基本操作(二)相关推荐
- oracle 创建工作日表,oracle下sql创建指定年份全年日期表(区分工作日)
作者的话: 当系统执行到本处sql时,将本年度(或指定年份)一整年365天对应的是否为工作日情况数据插入到指定表中(如:0表示工作日,1表示双休日,法定节假日手动调整). 1.创建表: create ...
- oracle 生成日期列表,oracle下sql创建指定年份全年日期表(区分工作日)
作者的话: 当系统执行到本处sql时,将本年度(或指定年份)一整年365天对应的是否为工作日情况数据插入到指定表中(如:0表示工作日,1表示双休日,法定节假日手动调整). 1.创建表: create ...
- oracle之sql(二)
大小写 upper所有大写 A-Z lower所有小写 a-z initcap 开头大写,其余小写 SQL> select ename from emp where deptno=10; ENA ...
- Oracle数据库SQL基本操作
- 高级SQL优化(二) ——《12年资深DBA教你Oracle开发与优化——性能优化部分》
目录: Oracle数据完整性和锁机制 索引及优化之表分析 表分析.约束及表间关系 Oracle体系结构1 Oracle体系结构2 海量数据库及分区1 海量数据库及分区2 海量数据库及分区 ...
- linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...
本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...
- 14、ORACLE下的基本SQL操作
ORACLE下的基本SQL操作 1.获取表字段 select * from user_tab_columns where Table_Name='用户表' order by column_name 2 ...
- [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)...
[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) 原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之 ...
- ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)
[顶]ORACLE PL/SQL编程详解之二: PL/SQL块结构和组成元素(为山九仞,岂一日之功) 继上四篇:ORACLE PL/SQL编程之八:把触发器说透 ORAC ...
最新文章
- grails 环境找不到java_home
- 每日一皮:当项目完工,开发进行演示时
- ASC0106硬件连接注意事项
- webpack 入口文件 php,webpack的使用详解
- SQL Server表结构和数据导入到MySQL
- tsl加密算法_HTTPS背后的加密算法(转)
- Apache 紧急修复已遭利用且补丁不完整的 HTTP Server 0day
- innodb 共享表空间 转 独立表空间 详细说明
- mysql concat 索引_mysql-查看数据库、索引、表大小
- java线程的状态改变(练习)
- 逻辑卷管理(LVM)
- iOS蓝牙链接打印机的使用心得
- 艾里斑大小与像元尺寸的匹配问题
- 微博热搜数据变化趋势视频化展示
- Rust Atomic总结笔记
- 98年阿里P6架构师晒出工资单,看完扎心了。。。
- 一个月刷完机器学习笔试题300题(10)
- 大数据分析和大数据开发哪个好就业啊?
- Linux操作系统——切换到root用户及其他用户
- Python开发qq批量登陆
热门文章
- 鸟哥学习笔记六(基础篇第十一章)
- 80x86 CPU 的工作模式
- mysql最大连接数512_MySQL服务器最大连接数怎么设置才合理
- 计算机网络第1章(概述)
- mpu 配置内存空间_ARM存储器之:存储保护单元MPU
- 讲php fpm的书,细说PHP-fpm
- 基于使用AspectJ实现AOP,注解AOP开发(基于xml文件、基于注解)
- 谷歌浏览器添加插件时显示程序包无效:CRX_HEADER_INVALID 解决办法
- java 新区 老区_优学院《土地资源学》答案在线查题2020高校邦《Java核心开发技术【实境编程】》章测试答案...
- 程序员幽默:伤不起,我就是这样的程序员