Oracle數據庫(一)

Oracle數據庫

Oracle 是一個數據庫管理系統,是Oracle公司的核心產品。其在數據安全性與安整性控制方面的優越性能,以及跨操做系統、跨硬件平臺的數據操做能力。sql

基於「客戶端/服務器」(Client/Server)系統結構。數據庫

Oracle主要的特色:瀏覽器

  1.支持多用戶、大事務量的事務處理。安全

  2.在保持數據安全性和完整性方面性能優越。服務器

  3.支持分佈式數據處理。將公佈在不一樣物理位置的數據庫用通訊網絡鏈接起來,組成一個邏輯上統一的數據庫,完成網絡

  數據處理任務。oracle

  4.具備可移植性。Oracle能夠在Windows、Linux等多個操做系統平臺上使用。分佈式

Oracle的基本概念:函數

  1.數據庫。這裏的數據庫是磁盤上存儲數據的集合,在物理上表現爲數據文件、日誌文件和控制文件等。在邏輯上以表空工具

  間形式存在。必須首先建立數據庫,而後才能用Oracle。能夠在Database Configuation Assistant上建立。

  2.全局數據庫名。用於區分一個數據庫的標識。它由數據庫名稱和域名構成,相似網絡中的域名,使數據庫的命名在整個

  網絡環境中惟一。

  3.數據庫實例。每一個啓動的數據庫都對應一個數據庫實例,由這個實例來訪問數據庫中的數據。

  4.表空間。每一個數據庫都是由若干個表空間構成的,用戶在數據庫中創建的全部內容都被存儲到表空間中。一個表空間可

  以由多個數據文件組成,但一個數據文件只能屬於一個表空間。

  5.數據文件。擴展名是.dbf,是用於存儲數據庫數據的文件。一個數據文件中可能存儲不少個表的數據,而一個表的數據

  也能夠存放在多個數據文件中。數據文件和數據庫表不存在一對一的關係。

  6.控制文件。技展名.ctl,是一個二進制文件。控制文件是數據庫啓動及運行所必需的文件。存儲數據文件和日誌文件的

  名稱和位置。Oracle 11g默認包含三個控制文件。

  7.日誌文件。擴展名.log,它記錄了數據的全部更改信息,並提供了一種數據恢復機制,確保在系統崩潰或其餘意外出現

  後從新恢復數據庫。在工做過程當中,多個日誌文件組之間循環使用。

  8.模式和模式對象。模式是數據庫對象(表、索引等,也稱模式對象)的集合。

Windows下Oracle數據庫服務:

1.OracleServiceSID服務是Oracle數據庫服務。此服務對應名爲SID(系統標識符)的數據庫實例建立的。必須啓動。

2.OracleOraDb11g_homelTNSListener服務是監聽器服務。要遠程鏈接數據庫服務器,必須鏈接監聽進程,該服務只有

在數據庫須要遠程訪問時候才須要。(PL/SQL等第三方工具鏈接就至關於遠程鏈接)。

3.OracleDBConsoleSID服務是數據庫控制檯服務,是採用瀏覽器方式打開的,用於使用Oracle企業管理器的程序。如

果進入 基於Web形式的企業管理(EM)控制平臺,必需要啓動OracleDBConsoleSID服務。

鏈接數據庫:

Sys和System用戶都是Oracle的系統用戶,Scott用戶是Oracle數據庫的一個測試帳戶,裏男包含一些測試例表。每

個用戶下全部的對象稱爲模式對象。

  1.用SQL Plus工具登陸:

    1)cmd->sqlplus->用戶名:->密碼:

    2)直接打開程序SQL Plus->用戶名:->密碼

    3)在輸入用戶名處->用戶名/密碼@網絡服務名

    4)命令窗口:sqlplus /nolog 這樣就只是打開了sqlplus而並無鏈接數據庫,以後要鏈接數據庫得繼續敲:

    connect 用戶名/密碼@數據庫名;

  2.PL/SQL Developer工具

    1)用戶名:輸入System.

    2)口令:輸入對應密碼。

    3)數據庫:輸入已經配置好的網絡服務名,如orclDB。

    4)鏈接爲:Normal普通用戶;sysOper數據庫操做員;sysDBA數據庫管理員。

  3.Java鏈接Oracle:

    driver: oracle.jdbc.driver.OracleDriver

    url: jdbc:oracle:thin:@localhost:1521:數據庫名

DUAL僞表,在Oracle的查詢語句中select和from關鍵字必定有值,但在某些狀況下不須要from,如查詢常量或函數,爲

了知足要求,Oracle使用DUAL僞表來實現要求。

如: select sysdate from dual;--查詢出當前系統日期和時間

Oracle數據類型:

 

一、數值數據類型

  • 能夠存儲整數、
  • 浮點數和實數 最高精度爲 38 位,默認是18位
  • 範圍-1*10130——9.999…99*10125

 

二、日期時間型

日期時間數據類型存儲日期和時間值,包括年、月、日,小時、分鐘、秒

主要的日期時間類型有:

  • DATE - 存儲日期和時間部分,精確到整個的秒
  • TIMESTAMP - 存儲日期、時間和時區信息,秒值精確到小數點後6位

Select sysdate from dual;

Select systimestamp from dual;

三、大對象(LOB)

  • LOB 稱爲「大對象」數據類型,能夠存儲多達 4GB 的非結構化信息,例如聲音剪輯和視頻文件等
  • LOB 數據類型容許對數據進行高效、隨機、分段的訪問

1.CLOB(Character LOB,字符LOB)存儲大量字符數據。能夠存儲單字節字符數據和多字節字符數據,主要用於存儲非結

構化的XML多檔。如新聞、內容介紹等含大量文字內容的文檔。

2.BLOB(Binary LOB,二進制LOB)能夠存儲較大的二進制對象,如圖形、視頻剪輯和聲音剪輯等。

3.BFILE(Binary File,二進制文件)可以將二進制文件存儲在數據庫外部的操做系統文件中。BFILE列存儲一個BFILE

定位器,指向位於服務器文件系統上的二進制文件。最大4GB。

4.NCLOB數據類型用於存儲大的nchar字符數據。支持固定寬度字符和可變寬度字符(Unicode字符數據)。使用方法同

CLOB相似。

早期使用Long數據類型存儲大數據。

四、僞列

 

  • Oracle 中僞列就像一個表列,可是它並無存儲在表中
  • 僞列能夠從表中查詢,但不能插入、更新和刪除它們的值
  • 經常使用的僞列有ROWID和ROWNUM

ROWID 是表中行的存儲地址,該地址能夠惟一地標識數據庫中的一行,可使用 ROWID 僞列快速地定位表中的一行

ROWNUM 是查詢返回的結果集中行的序號,可使用它來限制查詢返回的行數

舉例:

select * from(

   select a.*,rownum rn from (  --這裏設置了rownum的列別名,這樣就能夠在外層查詢用between and語句了 

     select * from employee order by sal desc

   ) a

)

where rn between 5 and 9;

SQL語言的組成

  • DDL(數據定義語言):維護(定義、修改、刪除)SQL模式對象.  create建立、alter更改、truncate截斷、drop刪除
  • DML (數據操縱語言) :包括數據查詢和數據更新(增、刪、改,查).  insert插入、select選擇、delete刪除、update更新
  • DCL (數據控制語言) :對數據的訪問控制(授予權限、取消權限).  commit提交、savepoint保存點、rollback回滾
  • TCL (事務控制語言) :對事務的控制(提交、回滾、保存點)  grant授予、revoke回收

DDL – Create Table命令

建立表

語法:

  CREAT TABLE [模式名.]基本表名

  ( 列名1 類型1,

  列名2 類型2,

  ……

  完整性約束... )

  [tablespace 「表空間名」];

create table t_student
(
    SID  char(5) not null  primary key, --學號
    Sname varchar2(10) not null,  --姓名
     Ssex  char(1) not null,   --性別
    Sbirthday  date  null,  --出生日期
    Stel varchar2(13) null, --聯繫電話
    Sclass int null  --班級
);

DDL – Alter Table命令

修改表結構:

ALTER TABLE 基本表名 ADD/MODIFY/DROP (增長/修改/刪除) 列名 類型名(增長/修改時寫出)或增長/修改/刪除 約束

實例:

一、增長字段:ALTER TABLE   t_student   Add   f_address  char(50);

二、修改字段:ALTER TABLE   t_student   Modify   f_address  varchar2(50);

三、刪除字段:ALTER TABLE t_student Drop column f_address ;

四、添加約束: ALTER TABLE t_student Add constraint uk_Sname Unique(Sname);

DDL – 截斷及刪除命令

截斷:

Truncate TABLE 基本表名

TRUNCATE  TABLE   t_student;

注意:

一、截斷表是將表中全部記錄刪除,但保留表結構,而且不寫日誌

二、trancate table 是DDL語言,delete from table_name 是DML語言

刪除表:

DROP TABLE 基本表名

DROP  TABLE  t_student;

數據的完整性

可靠性+準確性=數據完整性

根據數據完整性機制所做用的數據庫對象和範圍不一樣,數據完整性可分爲如下四種類型

  • 實體完整性
  • 域完整性
  • 參照完整性(引用完整性)
  • 自定義完整性

一、實體完整性

約束方法:惟一約束、主鍵約束

二、域完整性

約束方法:限制數據類型、檢查約束、默認值、非空約束

三、引用完整性

約束方法:外鍵約束

四、自定義完整性

約束方法:規則、存儲過程

約束實現數據完整性

  • 數據存放在表中
  • 「數據完整性的問題大可能是因爲設計表引發的」
  • 建立表的時候,就應當保證之後數據輸入是正確的
  • 錯誤的數據、不符合要求的數據不容許輸入

建立表:保證數據的完整性 = 實施完整性約束

實體完整性:主鍵約束,惟一約束

域完整性:限制數據類型、檢查約束、默認值、非空約束

引用完整性:外鍵約束

自定義完整性:規則、存儲過程

實例:

建立表時

 

sex char(2) check (sex='' or sex='')

 

constraint ck_sex check (sex='' or sex='')

修改表時:

alter table student add constraint ck_sex check(sex='' or sex='')

 

數據操縱語言

數據操縱語言用於檢索、插入和修改數據

數據操縱語言是最多見的SQL命令

數據操縱語言命令包括:

  • INSERT
  • DELETE
  • UPDATE
  • SELECT

DML – INSERT 命令

一、INSERT 命令的基本語法:

  INSERT INTO 基本表名[(columns_list)]

  VALUES(values_list)

二、插入日期類型的值

  • 日期數據類型的默認格式爲「DD-MON-RR」
  • 使用日期的默認格式
  • 使用TO_DATE函數轉換
  • 修改當前會話的日期格式

舉例:

INSERT INTO t_student 
VALUES(‘10014’, ‘許文強’, ‘m’, ‘25-5月-88’, ‘13202010118',1);
INSERT INTO t_student(SID,Sname,Ssex,Sbirthday)
VALUES (‘10015’,‘馮程程','f',TO_DATE('1990-10-18', 'YYYY-MM-DD'));

三、插入來自其它表中的記錄

語法:

INSERT INTO <table_name> [(cloumn_list)]

SELECT column_names FROM <other_table_name>;

CREATE TABLE t_stutemp AS
     SELECT * FROM   t_student  WHERE 1=2;
INSERT INTO t_stutemp
     SELECT * FROM  t_student  WHERE  Sclass=3;
INSERT INTO t_stutemp(SID,Sname,Stel) 
     SELECT   SID,Sname,Stel  FROM   t_student
     WHERE  Sclass=2; 

DML – UPDATE命令

UPDATE命令的基本語法:

UPDATE <table_name> SET column_name = value [, column_name = value,……] [WHERE condition];

例:修改張三的出生日期爲 88年1月8號

Update  t_student
set   Sbirthday =08-1月-88where Sname = ‘張三’;

DML – DELETE 命令

DELETE命令的基本語法:

DELETE [FROM] <table_name> [WHERE condition];

例:刪除學號爲10014的學生信息

Delete t_student
where  SID =10014’;

事務控制語言

事務是最小的工做單元,做爲一個總體進行工做

保證事務的總體成功或失敗,稱爲事務控制

用於事務控制的語句有:

  • COMMIT - 提交併結束事務處理
  • ROLLBACK - 撤銷事務中已完成的工做
  • SAVEPOINT – 標記事務中能夠回滾的點

數據控制語言爲用戶提供權限控制命令

用於權限控制的命令有:

  • GRANT 授予權限
  • REVOKE 撤銷已授予的權限
GRANT SELECT ON  t_student 
     TO  user1  WITH  GRANT  OPTION;
REVOKE  SELECT, UPDATE ON  t_student
     FROM user1;

 數據控制語言

數據控制語言爲用戶提供權限控制命令

用於權限控制的命令有:

  • GRANT 授予權限
  • REVOKE 撤銷已授予的權限

實例:

GRANT SELECT ON  t_student 
     TO  user1  WITH  GRANT  OPTION;
REVOKE  SELECT, UPDATE ON  t_student
     FROM user1;

受權查詢

相關文章
相關標籤/搜索