Oracle復(fù)習(xí)

山交Oracle復(fù)習(xí)資料

10個(gè)填寫,8個(gè)大題

第1章 數(shù)據(jù)庫的基本概念與Oracle環(huán)境

1.1.2 數(shù)據(jù)模型

oracle是關(guān)系型數(shù)據(jù)庫

數(shù)據(jù)模型分為:層次模型、網(wǎng)狀模型、關(guān)系模型

  • 層次模型:以樹形層次結(jié)構(gòu)組織數(shù)據(jù)
  • 網(wǎng)狀模型:每一個(gè)數(shù)據(jù)用一個(gè)節(jié)點(diǎn)表示,每個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)都有聯(lián)系,這樣,數(shù)據(jù)庫中的所有數(shù)據(jù)節(jié)點(diǎn)就構(gòu)成了一個(gè)復(fù)雜的網(wǎng)絡(luò)。
  • 關(guān)系模型:以二維表格(關(guān)系表)的形式組織數(shù)據(jù)庫中的數(shù)據(jù)。從用戶觀點(diǎn)看,關(guān)系模型由一組關(guān)系組成,每個(gè)關(guān)系的數(shù)據(jù)結(jié)構(gòu)是一個(gè)規(guī)范化的二維表。

1.1.3 關(guān)系型數(shù)據(jù)庫語言 (分類)

  1. 數(shù)據(jù)定義語言(DDL)
  2. 數(shù)據(jù)操作語言(DML)
  3. 數(shù)據(jù)控制語言(DCL)
  4. 數(shù)據(jù)查詢語言(DQL)

1.1.4 數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)從哪些方面設(shè)計(jì):

  1. 概念結(jié)構(gòu)設(shè)計(jì)
  2. 邏輯結(jié)構(gòu)設(shè)計(jì)
  3. 物理結(jié)構(gòu)設(shè)計(jì)

E-R模型:將實(shí)體集及實(shí)體集之間聯(lián)系的圖稱為E-R模型

E-R模型的表示方法為:

  • 實(shí)體集用矩形框表示,矩形框內(nèi)標(biāo)注實(shí)體名
  • 實(shí)體集的屬性用橢圓框表示,框內(nèi)標(biāo)注屬性名,并用無向邊與其實(shí)體集相連
  • 實(shí)體集間的聯(lián)系用菱形框表示,聯(lián)系以適當(dāng)?shù)暮x命名,名字寫在菱形框中,用無向邊將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類型,即1—1、1—n或m—n
  • 如果一個(gè)聯(lián)系有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來

兩個(gè)實(shí)體集之間的聯(lián)系可能是以下三種情況之一:

  1. 一對(duì)一的聯(lián)系(1∶1)
  2. 一對(duì)多的聯(lián)系(1∶n)
  3. 多對(duì)多的聯(lián)系(m∶n)

1.3.4 SQL*Plus工具

用于數(shù)據(jù)庫交互的命令會(huì)命令工具為SQLPlus

create table xsb();

Describe xsb;

INSERT INTO KCB VALUES('101', '計(jì)算機(jī)基礎(chǔ)', 1, 80, 5);

SELECT * FROM KCB;

第2章 數(shù)據(jù)庫創(chuàng)建

第2章-1 數(shù)據(jù)庫體系結(jié)構(gòu)

2.1 Oracle體系結(jié)構(gòu)

  1. Oracle是一個(gè)基于B/S模式關(guān)系型數(shù)據(jù)庫管理系統(tǒng)
  2. Oracle系統(tǒng)體系結(jié)構(gòu)由三部分組成:邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和實(shí)例

2.1.2 外部結(jié)構(gòu)

  1. 數(shù)據(jù)文件(DATAFILE)
  2. 重做日志文件(REDO LOG FILES)
  3. 控制文件(CONTROL FILES)
  4. 參數(shù)文件(CONTROL FILES)

第2章-2 oracle數(shù)據(jù)庫管理工具

Oracle的服務(wù)啟動(dòng)

  • net start oracleserviceoracle ----啟動(dòng)oracleserviceoracle服務(wù)
  • net start oraclevsswriteroracle ----啟動(dòng)oraclevsswriteroracle服務(wù)
  • lsnrctl start ----啟動(dòng)OracleOraDB12Home1TNSListener監(jiān)聽程序。

Oracle的服務(wù)關(guān)閉

  • net stop oracleserviceoracle ----啟動(dòng)oracleserviceoracle服務(wù)
  • net stop oraclevsswriteroracle ----啟動(dòng)oraclevsswriteroracle服務(wù)
  • lsnrctl stop ----啟動(dòng)OracleOraDB12Home1TNSListener監(jiān)聽程序

Web OEM控制臺(tái)

默認(rèn)端口:5500

網(wǎng)址:https://localhost:5500/em

OracleSQL Plus-啟動(dòng)

SQLPLUS <用戶名>/<口令>@<數(shù)據(jù)庫實(shí)例名> AS <身份類型>
例如:
C:>SQLPLUS SYS/lj0414@eBuy AS SYSDBA

第2章-3 oracle數(shù)據(jù)庫的創(chuàng)建和管理

創(chuàng)建數(shù)據(jù)庫的方式

通過界面創(chuàng)建、通過命令行創(chuàng)建

2.3.1 創(chuàng)建數(shù)據(jù)庫

  1. 設(shè)定實(shí)例標(biāo)識(shí)符 SET ORACLE_SID=mydb
  2. 設(shè)定數(shù)據(jù)庫管理員的驗(yàn)證方法 orapwd file=D:\oracle\oradata\DATABASE\PWDmydb.ora Password=123456 entries=5
  3. 創(chuàng)建初始化參數(shù)
  4. 啟動(dòng)SQL*Plus并以SYSDBA連接到Oracle實(shí)例 sqlplus /nolog connect system/123456 as sysdba
  5. 啟動(dòng)實(shí)例 STARTUP NOMOUNT pfile="D:\app\tao\mydb\pfile\initmydb.ora"
  6. 啟動(dòng)實(shí)例

使用CREATE DATABASE語句創(chuàng)建數(shù)據(jù)庫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 修改數(shù)據(jù)庫

使用ALTER DATABASE語句來修改數(shù)據(jù)庫的某些設(shè)置

創(chuàng)建新的數(shù)據(jù)文件以代替原來的數(shù)據(jù)文件

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 刪除數(shù)據(jù)庫

刪除數(shù)據(jù)庫mydb

DROP DATABASE mydb;

第3章 表與表數(shù)據(jù)操作

3.2 創(chuàng)建和管理表空間

查看表空間:

SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;

Spool:

該命令將sql*plus屏幕上的內(nèi)容輸出到指定文件中去

spool d:\b.sql;
select * from emp;
spool off;

創(chuàng)建大小為50MB的表空間TEST,禁止自動(dòng)擴(kuò)展數(shù)據(jù)文件:

CREATE TABLESPACE TEST
        LOGGING 
        DATAFILE 'D:\app\tao\oradata\XSCJ\TEST01.DBF' SIZE 50M 
        REUSE AUTOEXTEND OFF;

創(chuàng)建表空間DATA,允許自動(dòng)擴(kuò)展數(shù)據(jù)文件:

CREATE TABLESPACE DATA
        LOGGING
        DATAFILE 'D:\app\tao\oradata\XSCJ\DATA01.DBF' SIZE 50M 
        REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M

通過ALTER TABLESPACE命令把一個(gè)新的數(shù)據(jù)文件添加到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 創(chuàng)建表

利用CREATE TABLE命令為XSCJ數(shù)據(jù)庫建立表KCB,指定表的存儲(chǔ)參數(shù):

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

創(chuàng)建XSB表中計(jì)算機(jī)專業(yè)學(xué)生的記錄備份:

CREATE TABLE XS_JSJ
    AS SELECT * 
        FROM XSB
        WHERE ZY= '計(jì)算機(jī)' ;

3.4.2 修改表

使用ALTER TABLE語句修改XSCJ數(shù)據(jù)庫中的表。
(1)在表XSB中增加兩列:JXJ(獎(jiǎng)學(xué)金等級(jí))、DJSM(獎(jiǎng)學(xué)金等級(jí)說明)

ALTER TABLE XSB
    ADD ( JXJ number(1),
    DJSM varchar2(40) DEFAULT '獎(jiǎng)金1000元');

(2)在表XSB中修改名為DJSM的列的默認(rèn)值

ALTER TABLE XSB
    MODIFY ( DJSM DEFAULT '獎(jiǎng)金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 命令方式操作表數(shù)據(jù)

  1. INSERT語句INSERT INTO table_name[(column_list)] VALUES(constant1,constant2,…) COMMIT;

  2. MERGE語句

     USING table_name ON (join_condition)
     WHEN MATCHED THEN { UPDATE SET…| DELETE…}
     WHEN NOT MATCHED THEN INSERT(…) VALUES(…)```
    

3.6.2 刪除記錄

  1. 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章 數(shù)據(jù)庫的查詢和視圖

4.2.1 選擇列

  1. 消除結(jié)果集中的重復(fù)行 SELECT DISTINCT column_name [ , column_name…]
  2. 范圍比較 expression [ NOT ] BETWEEN expression1 AND expression2
  3. IN expression IN ( expression [,…n])

查詢CP表中庫存量為“200”“300”和“500”的情況

SELECT *
    FROM CP
    WHERE KCL IN (200,300,500);

在XSCJ數(shù)據(jù)庫中查找選修了課程號(hào)為101的課程的學(xué)生的情況

SELECT * 
    FROM XSB
    WHERE XH IN
        ( SELECT XH FROM CJB WHERE KCH = '101' );

查找比所有計(jì)算機(jī)系學(xué)生年齡都大的學(xué)生

SELECT * 
    FROM XSB
    WHERE  CSSJ <ALL
            ( SELECT CSSJ
                    FROM XSB
                    WHERE ZY= '計(jì)算機(jī)'
            );

查找選修206號(hào)課程的學(xué)生姓名

SELECT XM
    FROM XSB
    WHERE EXISTS
        ( SELECT *
            FROM CJB
            WHERE XH=XSB.XH AND KCH= '206' 
        );

4.2.4 連接

  1. 內(nèi)連接 內(nèi)連接按照ON所指定的連接條件合并兩個(gè)表,返回滿足條件的行

查找不同課程成績相同的學(xué)生的學(xué)號(hào)、課程號(hào)和成績

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;
  1. 外連接 外連接的結(jié)果表不但包含滿足連接條件的行,還包括相應(yīng)表中的所有行
  • 左外連接(LEFT OUTER JOIN):結(jié)果表中除了包括滿足連接條件的行外,還包括左表的所有行;
  • 右外連接(RIGHT OUTER JOIN):結(jié)果表中除了包括滿足連接條件的行外,還包括右表的所有行;
  • 完全外連接(FULL OUTER JOIN):結(jié)果表中除了包括滿足連接條件的行外,還包括兩個(gè)表的所有行。

查找被選修了的課程的選修情況和所有開設(shè)的課程名

SELECT CJB.* , KCM
    FROM CJB RIGHT JOIN KCB ON CJB.KCH= KCB.KCH;

4.2.5 匯總

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容