视频教程
新版Oracle19C入门到熟练_哔哩哔哩_bilibili
学习要求
有一定关系型数据的操作功底,会SQL语句
教学目标
学习SQL理论
SQL概述
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL分类
分类 | 概述 | SQL命令 |
---|---|---|
DQL | 数据查询语言(Data Query Language) | select |
DML | 数据操作语言(Data Manipulation Language) | insert,update,delete |
DDL | 数据定义语言(Data Definition Language) | create,drop,alter |
DCL | 数据控制语言(Data Control Language) | grant,revoke |
也有种分法, 将DML 分成DML + DQL, 将select 单独分为DQL专做查询,
数据准备
DEPT(部门表)
表示一个部门的具体信息
编号 | 字段 | 类型 | 描述 |
---|---|---|---|
1 | DEPTNO | NUMBER(2) | 部门编号 |
2 | DNAME | VARCHAR2(14) | 部门名称 |
3 | LOC | VARCHAR2(13) | 部门位置 |
数据
部门名称解释
ACCOUNTING :会计/财务部
RESEARCH :研究部
SALES :销售部
OPERATIONS :运营部?
部门所在地解释
NEW YORK :纽约
DALLAS :达拉斯
CHICAGO :芝加哥
BOSTON :波士顿
SQL
DROP TABLE "SCOTT"."DEPT";
CREATE TABLE "SCOTT"."DEPT" (
"DEPTNO" NUMBER(2) VISIBLE NOT NULL ,
"DNAME" VARCHAR2(14 BYTE) VISIBLE ,
"LOC" VARCHAR2(13 BYTE) VISIBLE
);
INSERT INTO "SCOTT"."DEPT" VALUES ('50', 'TEST', 'WASHINGTON');
INSERT INTO "SCOTT"."DEPT" VALUES ('10', 'ACCOUNTING', 'NEW YORK');
INSERT INTO "SCOTT"."DEPT" VALUES ('20', 'RESEARCH', 'DALLAS');
INSERT INTO "SCOTT"."DEPT" VALUES ('30', 'SALES', 'CHICAGO');
INSERT INTO "SCOTT"."DEPT" VALUES ('40', 'OPERATIONS', 'BOSTON');
-- ----------------------------
-- Primary Key structure for table DEPT
-- ----------------------------
ALTER TABLE "SCOTT"."DEPT" ADD CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO");
EMP(雇员表)
记录了一个雇员的基本信息
编号 | 字段 | 类型 | 描述 |
---|---|---|---|
1 | EMPNO | NUMBER(4) | 雇员编号 |
2 | ENAME | VARCHAR2(10) | 表示雇员姓名 |
3 | JOB | VARCHAR2(9) | 表示工作职位 |
4 | MGR | NUMBER(4) | 表示一个雇员的领导编号 |
5 | HIREDATE | DATE | 表示雇佣日期 |
6 | SAL | NUMBER(7,2) | 表示月薪,工资 |
7 | COMM | NUMBER(7,2) | 表示奖金或佣金 |
8 | DEPTNO | NUMBER(2) | 表示部门编号 |
数据
职位解释:
CLERK :普通职员
SALESMAN :销售员
MANAGER :主管/经理
PRESIDENT :总裁/boss
ANALYST :分析师
SQL
DROP TABLE "SCOTT"."EMP";
CREATE TABLE "SCOTT"."EMP" (
"EMPNO" NUMBER(4) VISIBLE NOT NULL ,
"ENAME" VARCHAR2(10 BYTE) VISIBLE ,
"JOB" VARCHAR2(9 BYTE) VISIBLE ,
"MGR" NUMBER(4) VISIBLE ,
"HIREDATE" DATE VISIBLE ,
"SAL" NUMBER(7,2) VISIBLE ,
"COMM" NUMBER(7,2) VISIBLE ,
"DEPTNO" NUMBER(2) VISIBLE
);
INSERT INTO "SCOTT"."EMP" VALUES ('7935', 'SSSS', 'SALESMAN', '7782', TO_DATE('2022-01-18 17:06:37', 'SYYYY-MM-DD HH24:MI:SS'), '4100', NULL, NULL);
INSERT INTO "SCOTT"."EMP" VALUES ('7369', 'SMITH', 'CL%ERK', '7902', TO_DATE('1980-12-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '800', NULL, '20');
INSERT INTO "SCOTT"."EMP" VALUES ('7499', 'ALLEN', 'SALESMAN', '7698', TO_DATE('1981-02-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1600', '300', '30');
INSERT INTO "SCOTT"."EMP" VALUES ('7521', 'WARD', 'SALESMAN', '7698', TO_DATE('1981-02-22 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1250', '500', '30');
INSERT INTO "SCOTT"."EMP" VALUES ('7566', 'JONES', 'MANAGER', '7839', TO_DATE('1981-04-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '2975', NULL, '20');
INSERT INTO "SCOTT"."EMP" VALUES ('7654', 'MARTIN', 'SALESMAN', '7698', TO_DATE('1981-09-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1250', '1400', '30');
INSERT INTO "SCOTT"."EMP" VALUES ('7698', 'BLAKE', 'MANAGER', '7839', TO_DATE('1981-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '2850', NULL, '30');
INSERT INTO "SCOTT"."EMP" VALUES ('7782', 'CLARK', 'MANAGER', '7839', TO_DATE('1981-06-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '2450', NULL, '10');
INSERT INTO "SCOTT"."EMP" VALUES ('7839', 'KING', 'PRESIDENT', NULL, TO_DATE('1981-11-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '5000', NULL, '10');
INSERT INTO "SCOTT"."EMP" VALUES ('7844', 'TURNER', 'SALESMAN', '7698', TO_DATE('1981-09-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1500', '0', '30');
INSERT INTO "SCOTT"."EMP" VALUES ('7900', 'JAMES', 'CLERK', '7698', TO_DATE('1981-12-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '950', NULL, '30');
INSERT INTO "SCOTT"."EMP" VALUES ('7902', 'FORD', 'ANALYST', '7566', TO_DATE('1981-12-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '3000', NULL, '20');
INSERT INTO "SCOTT"."EMP" VALUES ('7934', 'MILLER', 'CLERK', '7782', TO_DATE('1982-01-23 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1300', NULL, '10');
-- ----------------------------
-- Primary Key structure for table EMP
-- ----------------------------
ALTER TABLE "SCOTT"."EMP" ADD CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO");
-- ----------------------------
-- Foreign Keys structure for table EMP
-- ----------------------------
ALTER TABLE "SCOTT"."EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO") REFERENCES "SCOTT"."DEPT" ("DEPTNO") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
BONUS(奖金表)
示一个雇员的工资及奖金。
编号 | 字段 | 类型 | 描述 |
---|---|---|---|
1 | ENAME | VARCHAR2(10) | 雇员姓名 |
2 | JOB | VARCHAR2(9) | 雇员工作 |
3 | SAL | NUMBER | 雇员工资 |
4 | COMM | NUMBER | 雇员奖金 |
无数据
SQL
DROP TABLE "SCOTT"."BONUS";
CREATE TABLE "SCOTT"."BONUS" (
"ENAME" VARCHAR2(10 BYTE) VISIBLE ,
"JOB" VARCHAR2(9 BYTE) VISIBLE ,
"SAL" NUMBER VISIBLE ,
"COMM" NUMBER VISIBLE
);
SALGRADE(工资等级表)
公司员工工资等级分类
号 | 字段 | 类型 | 描述 |
---|---|---|---|
1 | GRADE | NUMBER | 等级名称 |
2 | LOSAL | NUMBER | 此等级的最低工资 |
3 | HISAL | NUMBER | 等级的最高工资 |
数据
SQL
DROP TABLE "SCOTT"."SALGRADE";
CREATE TABLE "SCOTT"."SALGRADE" (
"GRADE" NUMBER VISIBLE ,
"LOSAL" NUMBER VISIBLE ,
"HISAL" NUMBER VISIBLE
);
-- ----------------------------
-- Records of SALGRADE
-- ----------------------------
INSERT INTO "SCOTT"."SALGRADE" VALUES ('1', '700', '1200');
INSERT INTO "SCOTT"."SALGRADE" VALUES ('2', '1201', '1400');
INSERT INTO "SCOTT"."SALGRADE" VALUES ('3', '1401', '2000');
INSERT INTO "SCOTT"."SALGRADE" VALUES ('4', '2001', '3000');
INSERT INTO "SCOTT"."SALGRADE" VALUES ('5', '3001', '9999');