山交Oracle复习资料
10个填写,8个大题
第1章 数据库的基本概念与Oracle环境
1.1.2 数据模型
oracle是关系型数据库
数据模型分为:层次模型、网状模型、关系模型
- 层次模型:以树形层次结构组织数据
- 网状模型:每一个数据用一个节点表示,每个节点与其他节点都有联系,这样,数据库中的所有数据节点就构成了一个复杂的网络。
- 关系模型:以二维表格(关系表)的形式组织数据库中的数据。从用户观点看,关系模型由一组关系组成,每个关系的数据结构是一个规范化的二维表。
1.1.3 关系型数据库语言 (分类)
- 数据定义语言(DDL)
- 数据操作语言(DML)
- 数据控制语言(DCL)
- 数据查询语言(DQL)
1.1.4 数据库设计
数据库设计从哪些方面设计:
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
E-R模型:将实体集及实体集之间联系的图称为E-R模型
E-R模型的表示方法为:
- 实体集用矩形框表示,矩形框内标注实体名
- 实体集的属性用椭圆框表示,框内标注属性名,并用无向边与其实体集相连
- 实体集间的联系用菱形框表示,联系以适当的含义命名,名字写在菱形框中,用无向边将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1—1、1—n或m—n
- 如果一个联系有属性,则这些属性也要用无向边与该联系连接起来
两个实体集之间的联系可能是以下三种情况之一:
- 一对一的联系(1∶1)
- 一对多的联系(1∶n)
- 多对多的联系(m∶n)
1.3.4 SQL*Plus工具
用于数据库交互的命令会命令工具为SQLPlus
create table xsb();
Describe xsb;
INSERT INTO KCB VALUES('101', '计算机基础', 1, 80, 5);
SELECT * FROM KCB;
第2章 数据库创建
第2章-1 数据库体系结构
2.1 Oracle体系结构

- Oracle是一个基于B/S模式的关系型数据库管理系统
- Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实例
2.1.2 外部结构
- 数据文件(DATAFILE)
- 重做日志文件(REDO LOG FILES)
- 控制文件(CONTROL FILES)
- 参数文件(CONTROL FILES)
第2章-2 oracle数据库管理工具
Oracle的服务启动
- net start oracleserviceoracle ----启动oracleserviceoracle服务
- net start oraclevsswriteroracle ----启动oraclevsswriteroracle服务
- lsnrctl start ----启动OracleOraDB12Home1TNSListener监听程序。
Oracle的服务关闭
- net stop oracleserviceoracle ----启动oracleserviceoracle服务
- net stop oraclevsswriteroracle ----启动oraclevsswriteroracle服务
- lsnrctl stop ----启动OracleOraDB12Home1TNSListener监听程序
Web OEM控制台
默认端口:5500
OracleSQL Plus-启动
SQLPLUS <用户名>/<口令>@<数据库实例名> AS <身份类型>
例如:
C:>SQLPLUS SYS/lj0414@eBuy AS SYSDBA
第2章-3 oracle数据库的创建和管理
创建数据库的方式
通过界面创建、通过命令行创建
2.3.1 创建数据库
- 设定实例标识符
SET ORACLE_SID=mydb
- 设定数据库管理员的验证方法
orapwd file=D:\oracle\oradata\DATABASE\PWDmydb.ora Password=123456 entries=5
- 创建初始化参数
- 启动SQL*Plus并以SYSDBA连接到Oracle实例
sqlplus /nolog connect system/123456 as sysdba
- 启动实例
STARTUP NOMOUNT pfile="D:\app\tao\mydb\pfile\initmydb.ora"
- 启动实例
使用CREATE DATABASE语句创建数据库mydb
CREATE DATABASE mydb
MAXINSTANCES 1
MAXDATAFILES 100
DATAFILE 'D:\app\tao\oradata\mydb\system01.dbf'
SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
UNDO TABLESPACE UNDOTBS DATAFILE
'D:\app\tao\oradata\mydb\undotbs01.dbf'
SIZE 150M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE 'D:\ app\tao\oradata\mydb\redo01.log' SIZE 100M,
'D:\ app\tao\oradata\mydb\redo02.log' SIZE 100M,
'D:\ app\tao\oradata\mydb\redo03.log' SIZE 100M
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
2.3.2 修改数据库
使用ALTER DATABASE语句来修改数据库的某些设置
创建新的数据文件以代替原来的数据文件
ALTER DATABASE mydb
CREATE DATAFILE 'users' AS 'D:\app\tao\oradata\mydb\users01.dbf'
SIZE 50M REUSE AUTOEXTEND ON NEXT 20M MAXSIZE 500M;
2.3.3 删除数据库
删除数据库mydb
DROP DATABASE mydb;
第3章 表与表数据操作
3.2 创建和管理表空间
查看表空间:
SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
Spool:
该命令将sql*plus屏幕上的内容输出到指定文件中去
spool d:\b.sql;
select * from emp;
spool off;
创建大小为50MB的表空间TEST,禁止自动扩展数据文件:
CREATE TABLESPACE TEST
LOGGING
DATAFILE 'D:\app\tao\oradata\XSCJ\TEST01.DBF' SIZE 50M
REUSE AUTOEXTEND OFF;
创建表空间DATA,允许自动扩展数据文件:
CREATE TABLESPACE DATA
LOGGING
DATAFILE 'D:\app\tao\oradata\XSCJ\DATA01.DBF' SIZE 50M
REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M
通过ALTER TABLESPACE命令把一个新的数据文件添加到DATA表空间,并指定了AUTOEXTEND ON和 MAXSIZE 300M:
ALTER TABLESPACE DATA
ADD DATAFILE 'D:\app\tao\oradata\XSCJ\DATA02.DBF' SIZE 50M
REUSE AUTOEXTEND ON NEXT 50M MAXSIZE 300M;
3.4.1 创建表
利用CREATE TABLE命令为XSCJ数据库建立表KCB,指定表的存储参数:
CREATE TABLE KCB
(
KCH char(3) NOT NULL PRIMARY KEY,
KCM char(16) NOT NULL,
KKXQ number(1) NULL,
XS number(2) NULL,
XF number(1) NOT NULL
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
STORAGE (INITIAL 64K MINEXTENTS 1 PCTINCREASE 40
FREELISTS 1 FREELIST GROUPS 1);
创建XSB表中计算机专业学生的记录备份:
CREATE TABLE XS_JSJ
AS SELECT *
FROM XSB
WHERE ZY= '计算机' ;
3.4.2 修改表
使用ALTER TABLE语句修改XSCJ数据库中的表。
(1)在表XSB中增加两列:JXJ(奖学金等级)、DJSM(奖学金等级说明)
ALTER TABLE XSB
ADD ( JXJ number(1),
DJSM varchar2(40) DEFAULT '奖金1000元');
(2)在表XSB中修改名为DJSM的列的默认值
ALTER TABLE XSB
MODIFY ( DJSM DEFAULT '奖金800元' );
(3)在表XSB中删除名为JXJ和DJSM的列
ALTER TABLE XSB
DROP COLUMN JXJ;
ALTER TABLE XSB
DROP COLUMN DJSM;
3.4.3 删除表
DROP TABLE XSB
3.6 命令方式操作表数据
-
INSERT语句
INSERT INTO table_name[(column_list)] VALUES(constant1,constant2,…) COMMIT;
-
MERGE语句
USING table_name ON (join_condition) WHEN MATCHED THEN { UPDATE SET…| DELETE…} WHEN NOT MATCHED THEN INSERT(…) VALUES(…)```
3.6.2 删除记录
-
DELETE语句
DELETE FROM table_name∣view_name [WHERE condition]
3.6.3 修改记录
UPDATE table_name∣view_name
SET column_name=expression,[…n]
[WHERE condition]
第4章 数据库的查询和视图
4.2.1 选择列
- 消除结果集中的重复行
SELECT DISTINCT column_name [ , column_name…]
- 范围比较
expression [ NOT ] BETWEEN expression1 AND expression2
- IN
expression IN ( expression [,…n])
查询CP表中库存量为“200”“300”和“500”的情况
SELECT *
FROM CP
WHERE KCL IN (200,300,500);
在XSCJ数据库中查找选修了课程号为101的课程的学生的情况
SELECT *
FROM XSB
WHERE XH IN
( SELECT XH FROM CJB WHERE KCH = '101' );
查找比所有计算机系学生年龄都大的学生
SELECT *
FROM XSB
WHERE CSSJ <ALL
( SELECT CSSJ
FROM XSB
WHERE ZY= '计算机'
);
查找选修206号课程的学生姓名
SELECT XM
FROM XSB
WHERE EXISTS
( SELECT *
FROM CJB
WHERE XH=XSB.XH AND KCH= '206'
);
4.2.4 连接
- 内连接 内连接按照ON所指定的连接条件合并两个表,返回满足条件的行
查找不同课程成绩相同的学生的学号、课程号和成绩
SELECT a.XH,a.KCH,b.KCH,a.CJ
FROM CJB a JOIN CJB b
ON a.CJ=b.CJ AND a.XH=b.XH AND a.KCH!=b.KCH;
- 外连接 外连接的结果表不但包含满足连接条件的行,还包括相应表中的所有行
- 左外连接(LEFT OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括左表的所有行;
- 右外连接(RIGHT OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括右表的所有行;
- 完全外连接(FULL OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括两个表的所有行。
查找被选修了的课程的选修情况和所有开设的课程名
SELECT CJB.* , KCM
FROM CJB RIGHT JOIN KCB ON CJB.KCH= KCB.KCH;
网友评论