zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle19C入门到熟练006-SQL理论与数据准备

SQL数据入门 准备 理论 006 熟练 Oracle19c
2023-09-27 14:29:07 时间

学习要求

有一定关系型数据的操作功底,会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(部门表)

表示一个部门的具体信息

编号字段类型描述
1DEPTNONUMBER(2)部门编号
2DNAMEVARCHAR2(14)部门名称
3LOCVARCHAR2(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(雇员表)

记录了一个雇员的基本信息

编号字段类型描述
1EMPNONUMBER(4)雇员编号
2ENAMEVARCHAR2(10)表示雇员姓名
3JOBVARCHAR2(9)表示工作职位
4MGRNUMBER(4)表示一个雇员的领导编号
5HIREDATEDATE表示雇佣日期
6SALNUMBER(7,2)表示月薪,工资
7COMMNUMBER(7,2)表示奖金或佣金
8DEPTNONUMBER(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(奖金表)

示一个雇员的工资及奖金。

编号字段类型描述
1ENAMEVARCHAR2(10)雇员姓名
2JOBVARCHAR2(9)雇员工作
3SALNUMBER雇员工资
4COMMNUMBER雇员奖金

无数据

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(工资等级表)

公司员工工资等级分类

字段类型描述
1GRADENUMBER等级名称
2LOSALNUMBER此等级的最低工资
3HISALNUMBER等级的最高工资

数据 

 

 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');