第一章 简介
SQL Plus 行编辑命令及功能
A[PPEND]text  将文本text的内容附加在当前行的末尾
C[HRNGE]/old/new  将旧文本old替换新文本new的内容
C[HANGE]/text  删除当前行中text指定的内容
CL[EAR]BUFF[ER]  删除SQL缓冲区中的所有命令
DEL      删除当前行
DEL n  删除n指定的行
DEL m n      删除由m行到n行之间的所有命令
I[NPUT]  在当前行后插入任意数量的命令行
I[NPUT] text  在当前行后插入一行text指定的命令行
L[IST]  列出SQL缓冲区所有的行
L[IST] n  SQL指定的第n
第二章 数据库和表的创建
Oracle是一种关系数据库管理系统(RDBMS)。
关系数据库是按照二维表结构方式组织的数据集合,每个表体现了集合理论中定义的数学概念——关系。
数据库的内部结构有:1、表空间(①system表空间②sysaux表空间③undo表空间④users表空间⑤temporary表空间);2、表;3、约束条件(①主键②默认约束条件③检查约束条件④唯一性约束条件⑤外键约束条件);4、分区;5、索引;6、用户;7、方案;8、同义词;9、权限及角;10、段、盘区和数据块。
SYSTEM    表空间自动生成,并且必须要有。
undo表空间是存储撤销信息的表空间。
表空间可以分为几个段,段划分为几个数据区间
段是表空间的下一级逻辑存储单位,一个段只能存储同一种模式对象。
根据段中存储逻辑对象不同可以分为:数据段、索引段、临时段、回退段。
数据库>数据表空间>数据段>盘区>数据块。
数据库外部结构:
1、数据文件(一个表空间可以有多个数据文件,而一个数据文件只能属于一个表空间)。
2、重做日志文件(当数据库中的数据遭破坏时可以用这些日志来恢复数据库)
3、控制文件
包括:(1)数据库名称与建立时间;
    (2)数据文件与重置日志文件名称及其所在位置。
    (3)日志记录序列码(log sequence number)
数据库实例也称作服务器,数据库拥有自己的系统全局区和相关数据文件的oracle服务器进程集,它是存储和控制数据库的软件机制。
数据类型:char 固定长度字符域,最大2000B;yarchar2 可变字符域,最大长度4000字符;date 日期;number 可变长度数值列,允许0,正负。
创建表的实质是定义表结构及约束条件等属性。
第三章 数据库的操作
1插入记录;
INSERT INTO XS(XH,XM,ZYM,XB,CSSJ,ZXF) VALUES(‘061101’,‘王林’,‘计算机’,‘男’,TO_DATE(‘19891120’ .’YYYYMMDD’),50);
2建立表test
CREATE TABLE test
(    xm char(20)NOT NULL,
    Zy varchar(30) DEFAULT(‘计算机’),
    Nj number NOT NULL
);
3修改表记录
UPDATE XS
    SET BZ=‘三好学生’
    WHERE XH=‘061110’;
索引是一种供服务器在表中快速查一个行的数据库结构。作用:
1快速存取数据;
2即可以改善数据库性能,又可以保证列的值的唯一性;
3实现表与表之间的参照完整性;
4在使用order by、group by子句进行数据检索时,利用索引可以减少排序和分组时间。
创建索引需要保存,保持Row ID和每一行索引值结合起来。
1kc表的课程名列创建索引
Create index kc_name_idx
    On xs (xm)
    Tablespacce “indx”;
2xs表的姓名列创建索引,指定索引的物理和存储特征值,数据库中的行以升序保存
Create index xs_xm_idx
    On xs (xm)
    Tablespace “indx”
    Initrans 2
    Maxtrans 255
    Nosort;
3修改索引kc_name_idx
Alter index admin.xs_name_index
    Initrans 2
    Maxtrans 128;
4重命名索引kc_name_idx
Alter index kc_name_idx
    Rename to kc_idx;
5删除索引kc_name_idx
Drop index kc_name_idx;
同义词是可以指向的对象有表、视图、过程、函数、包和序列的别名;
最大的好处是:安全方便;使用时不必指出实际访问对象所属的模式及名称;简化用户操作;对数据库有一定的安全保护作用。
数据完整性的分类:域完整性;(又称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值)实体完整性(行完整性,要求每个表中的每一行有一个唯一的标识符,这个标识符就是主关键字);参照完整性(保证主表中的数据与从表(被参照表)中数据的一致性)。
第四章 数据库的查询与视图
1、查询XSH数据库CP表中产品名含有“冰箱”的产品情况
Select *
    From cp
    Where cpmc like ‘%冰箱%’;
2、查询xscj数据库xs表中姓“王”且单名的学生情况
Select *
    From xs
    Where xm like ‘王_’;
3、查询xsh数据库cp表中库存量为“200”、“300”和“500”的情况
Select *
    From cp
    Where kcl in(200,300,500);
或者select *
        From cp
        Where kcl=200 or kcl=300 or kcl=500;
4、在xscj数据库中有描述课程情况的kc表和描述学生成绩表的xs_kc表。查选修了课程号为101的课程的学生的情况;
Select *
    From xs
    Where xh in
    (select xh from xs_kc where kch=‘101’);
5、查询未选修离散数学的学生的情况
Select XH,XM,ZYM,ZXF
    FROM XS
    WHERE XH NOT IN
    (SELECT XH
        FROM XS_KC
        WHERE KCH IN
        (SELECT KCH
            FROM KC
            WHERE KCM= ‘离散数学’
        )
    );
6、查比所有计算机系学生年龄都大的学生
Select *
    From xs
    Where cssj<all
    (select cssj
        From xs
        Where zym= ‘计算机’
    );
7、查课程号206的成绩不低于课程号101的最低成绩的学生的学号。
SELECT XH
    FROM XS_KC
    WHERE KCH =‘206’ AND CJ>=ANY
    (SELECT CJ
        FROM XS_KC
oracle游标的使用        WHERE KCH= ‘101’
    );
8、查选修206号课程的学生姓名
Select xm
    From xs
    Where exists
    (select *
        From xs_kc
        Where xh=xs.xh and kch=‘206’
    );
9、查选修了全部课程的学生的姓名
Select xm
    FROM XS
    WHERE NOT EXISTS
    (SELECT *
        FROM KC
        WHERE NOT EXISTS
        (SELECT *
            FROM XS_KC
            WHERE XH=XS.XH AND KCH=KC.KCH
        )
    );
10、查xscj数据库每个学生的情况以及选修的课程情况
Select xs.*,XS_KC.*
    FROM XS,XS_KC
    WHERE XS.XH=XS_KC.XH;
11、自然连接查询
SELECT XS.*,XS_KC.KC.KCH,XS_KC.CJ
    FROM XS,XS_KC
    WHERE XS.XH=XS_KC.XH;
Wherehaving的不同:1位置不一样;2控制范围不一样;3同时存在先做where;
Where必须跟在from后面同from子句指定的基本表或视图中出满足条件的记录;
Having子句是在GROUP by 子句进行分组后对分组数据进一步的筛选;
1、查xscj数据库中平均成绩在85分以上的学生的学号和平均成绩
SELECT XH AS 学号,AVG(CJ) AS 平均成绩
    FROM XS_KC
    GROUP BY XH
    HAVING AVG(CJ)>=85;
2、查选修课程超过两门且成绩都在80分以上的学生的学号
SELSCT XH AS 学号
    FROM XS_KC
    WHERE CJ>=80
    GROUP BY XH
    HAVING GOUP(*)>2;
3、查通讯工程学院专业平均成绩在85分以上的学生的学号和平均成绩
SELECT XH AS学号,AVG(CJ) AS 平均成绩
    FROM XS_KC
    WHERE XH IN
    (SELECT XH
        FROM XS
        WHERE ZYM= ‘通讯工程’
    )
GROUP BY XH
HAVING AVG(CJ)>=85;
视图的作用:1安全性(可以限制用户访问表的权限);2方便性(利用图来封装复杂语句);3一致性(用户查询视图可以到统一的格式);通过视图也能够修改基本表
创建CS_KC视图,包括计算机专业个学生的学号、其选修的课程号及成绩。
Create OR REPLACE VIEW CS_KC
AS
SELECT XS.XH,KCH,CJ
    FROM XS,XS_KC
    WHERE XS.XH=XS_CK.XH AND ZYM= ‘计算机’
    WITH CHECK OPTION;
创建计算机学生的平均成绩视图CS_KC_AVG,包括学号(num)和平均成绩(score_avg)。
CREATE OR REPLACE VIEW CS_KC_AVG(num,score_avg)
AS
SELECT XH,AVG(CJ)
    FROM XS_KC
    GROUP BU XH;
查询视图查计算机专业的学生学号和选秀的课程号
SELECT XH,KCH
    FROM CS_KC
更新视图
CREATE OR REPLACE VIEW CS_XSJ
AS
SELECT *
    FROM XS

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。