ORACLE SQL概述(1)
SQL是一種面向資料庫的通用資料處理語言規範,能完成以下幾類功能:提取查詢資料,插入修改刪除資料,生成修改和刪除資料庫物件,資料庫安全控制,資料庫完整性及資料保護控制。
資料庫物件包括表、檢視、索引、同義詞、簇、觸發器、函式、過程、包、資料庫鏈、快照等(表空間、回滾段、角色、使用者)。資料庫透過對錶的操作來管理儲存在其中的資料。
1) SQL*PLUS介面:
登入:輸入SQLPLUS回車;輸入正確的ORACLE使用者名稱並回車;輸入使用者口令並回車,顯示提示符:SQL>
退出:輸入EXIT即可。
2)命令的編輯與執行:
l 在命令提示符後輸入SQL命令並執行,以分號結束輸入;以斜槓結束輸入;以空行結束輸入;
l 利用SQL緩衝區進行PL/SQL塊的編輯和執行;
l 利用命令檔案進行PL/SQL塊的編輯和執行。
2、 資料庫查詢
1) 用SELECT語句從表中提取查詢資料。語法為
SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC];
說明:SELECT子句用於指定檢索資料庫的中哪些列,FROM子句用於指定從哪一個表或檢視中檢索資料。
2) SELECT中的運算子及多表查詢WHERE子句。(LIKE,IS,…)
WHERE子句中的條件可以是一個包含等號或不等號的條件表示式,也可以是一個含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比較運算子的條件式,還可以是由單一的條件表達透過邏輯運算子組合成複合條件。
3) ORDER BY 子句
ORDER BY 子句使得SQL在顯示查詢結果時將各返回行按順序排列,返回行的排列順序由ORDER BY 子句指定的表示式的值確定。
4) 連線查詢
利用SELECT語句進行資料庫查詢時,可以把多個表、檢視的資料結合起來,使得查詢結果的每一行中包含來自多個表示式或檢視的資料,這種操作被稱為連線查詢。
連線查詢的方法是在SELECT命令的FROM子句中指定兩個或多個將被連線查詢的表或檢視,並且在WHERE子句告訴ORACLE如何把多個表的資料進行合併。根據WHERE子句中的條件表示式是等還是不等式,可以把連線查詢分為等式連線和不等式連線。
5) 子查詢
如果某一個SELECT命令(查詢1)出現在另一個SQL命令(查詢2)的一個子句中,則稱查詢1是查詢2的子查詢。
3、 基本資料型別(NUMBER,VARCHAR2,DATE) O
RACEL支援下列內部資料型別:
l VARCHAR2 變長字串,最長為2000字元。
l NUMBER 數值型。
l LONG 變長字元資料,最長為2G位元組。
l DATE 日期型。
l RAW 二進位制資料,最長為255位元組。
l LONG RAW 變長二進位制資料,最長為2G位元組。
l ROWID 二六進位制串,表示表的行的唯一地址。
l CHAR 定長字元資料,最長為255。
4、 常用函式用法:
一個函式類似於一個算符,它運算元據項,返回一個結果。函式在格式上不同於算符,它個具有變元,可操作0個、一個、二個或多個變元,形式為:
函式名(變元,變元,…)
函式具有下列一般類形:
l 單行函式
l 分組函式
1) 單行函式對查詢的表或檢視的每一行返回一個結果行。它有數值函式,字元函式,日期函式,轉換函式等。
2) 分組函式返回的結果是基於行組而不是單行,所以分組函式不同於單行函式。在許多分組函式中可有下列選項:
l DISTRNCT 該選項使分組函式只考慮變元表示式中的不同值。
l ALL該選項使分組函式考慮全部值,包含全部重複。
全部分組函式(除COUNT(*)外)忽略空值。如果具有分組函式的查詢,沒有返回行或只有空值(分組函式的變元取值的行),則分組函式返回空值。
5、 資料操縱語言命令:
資料庫操縱語言(DML)命令用於查詢和操縱模式物件中的資料,它不隱式地提交當前事務。它包含UPDATE、INSERT、DELETE、EXPLAIN PLAN、SELECT和LOCK TABLE 等命令。下面簡單介紹一下:
1) UPDATE tablename SET {column1=expression1,column2=expression2,…} WHERE {conditions};
例如:S QL>UPDATE EMP
SET JOB =’MANAGER’
WHERE ENAME=’MAPTIN’;
SQL >SELECT * FROM EMP;
UPDATE子句指明瞭要修改的資料庫是EMP,並用WHERE子句限制了只對名字(ENAME)為’MARTIN’的職工的資料進行修改,SET子句則說明修改的方式,即把’MARTION’的工作名稱(JOB)改為’MARAGER’.
2) INSERT INTO tablename {column1,column2,…} VALUES {expression1,expression2,…};
例如:SQL>SELECT INTO DEPT(DNAME, DEPTNO)
VALUES (‘ACCOUNTING’,10)
3) DELETE FROM tablename WHERE {conditions};
例如:SQL>DELETE FROM EMP
WHERE EMPNO = 7654;
DELETE命令刪除一條記錄,而且DELETE命令只能刪除整行,而不能刪除某行中的部分資料.
4) 事務控制命令
提交命令(COMMIT):可以使資料庫的修改永久化.設定AUTOCOMMIT為允許狀態:SQL >SET AUTOCOMMIT ON;
回滾命令(ROLLBACK):消除上一個COMMIT命令後的所做的全部修改,使得資料庫的內容恢復到上一個COMMIT執行後的狀態.使用方法是:
SQL>ROLLBACK;
5、 建立表、檢視、索引、同義詞、使用者。
1) 、表是儲存使用者資料的基本結構。
建立表主要指定義下列資訊:
l 列定義
l 完整性約束
l 表所在表空間
l 儲存特性
l 可選擇的聚集
l 從一查詢獲得資料
語法如下:CREATE TABLE tablename
(column1 datatype [DEFAULT expression] [constraint],
column1 datatype [DEFAULT expression] [constraint],
……)
[STORAGE子句]
[其他子句…];
例如:
SQL>CREATE TABLE NEW_DEPT
(DPTNO NUMBER(2),
DNAME CHAR(6),
LOC CHAR(13);
更改表作用:
l 增加列
l 增加完整性約束
l 重新定義列(資料型別、長度、預設值)
l 修改儲存引數或其它引數
l 使能、使不能或刪除一完整性約束或觸發器
l 顯式地分配一個範圍
2)、檢視
檢視是一個邏輯表,它允許操作者從其它表或檢視存取資料,檢視本身不包含資料。檢視所基於的表稱為基表。
引入檢視有下列作用:
l 提供附加的表安全級,限制存取基表的行或/和列集合。
l 隱藏資料複雜性。
l 為資料提供另一種觀點。
l 促使ORACLE的某些操作在包含檢視的資料庫上執行,而不在另一個資料庫上執行。
3)、索引
索引是種資料庫物件。對於在表或聚集的索引列上的每一值將包含一項,為行提供直接的快速存取。在下列情況ORACLE可利用索引改進效能:
l 按指定的索引列的值查詢行。
l 按索引列的順序存取表。
建立索引: CREATE [UNIQUE] INDEX indexname ON tablename(column ,。。。);
例如:SQL>CREAT INDEX IC_EMP
ON CLUSTER EMPLOYEE
4)、同義詞
同義詞:為表、檢視、序列、儲存函式、包、快照或其它同義詞的另一個名字。使用同義詞為了安全和方便。對一物件建立同義詞可有下列好處:
l 引用物件不需指出物件的持有者。
l 引用物件不需指出它所位於的資料庫。
l 為物件提供另一個名字。
建立同義詞:
CREATE SYNONYM symnon_name FOR [username.]tablename;
例如:CREAT PUBLIC SYNONYM EMP
FOR SCOTT.EMP @SALES
5)、使用者
CREATE USER username IDENTIFIED BY password;
例如:SQL>CREATE USER SIDNEY
IDENTIFIED BY CARTON ;[@more@]
資料庫物件包括表、檢視、索引、同義詞、簇、觸發器、函式、過程、包、資料庫鏈、快照等(表空間、回滾段、角色、使用者)。資料庫透過對錶的操作來管理儲存在其中的資料。
1) SQL*PLUS介面:
登入:輸入SQLPLUS回車;輸入正確的ORACLE使用者名稱並回車;輸入使用者口令並回車,顯示提示符:SQL>
退出:輸入EXIT即可。
2)命令的編輯與執行:
l 在命令提示符後輸入SQL命令並執行,以分號結束輸入;以斜槓結束輸入;以空行結束輸入;
l 利用SQL緩衝區進行PL/SQL塊的編輯和執行;
l 利用命令檔案進行PL/SQL塊的編輯和執行。
2、 資料庫查詢
1) 用SELECT語句從表中提取查詢資料。語法為
SELECT [DISTINCT] {column1,column2,…} FROM tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC];
說明:SELECT子句用於指定檢索資料庫的中哪些列,FROM子句用於指定從哪一個表或檢視中檢索資料。
2) SELECT中的運算子及多表查詢WHERE子句。(LIKE,IS,…)
WHERE子句中的條件可以是一個包含等號或不等號的條件表示式,也可以是一個含有IN、NOT IN、BETWEEN、LIKE、IS NOT NULL等比較運算子的條件式,還可以是由單一的條件表達透過邏輯運算子組合成複合條件。
3) ORDER BY 子句
ORDER BY 子句使得SQL在顯示查詢結果時將各返回行按順序排列,返回行的排列順序由ORDER BY 子句指定的表示式的值確定。
4) 連線查詢
利用SELECT語句進行資料庫查詢時,可以把多個表、檢視的資料結合起來,使得查詢結果的每一行中包含來自多個表示式或檢視的資料,這種操作被稱為連線查詢。
連線查詢的方法是在SELECT命令的FROM子句中指定兩個或多個將被連線查詢的表或檢視,並且在WHERE子句告訴ORACLE如何把多個表的資料進行合併。根據WHERE子句中的條件表示式是等還是不等式,可以把連線查詢分為等式連線和不等式連線。
5) 子查詢
如果某一個SELECT命令(查詢1)出現在另一個SQL命令(查詢2)的一個子句中,則稱查詢1是查詢2的子查詢。
3、 基本資料型別(NUMBER,VARCHAR2,DATE) O
RACEL支援下列內部資料型別:
l VARCHAR2 變長字串,最長為2000字元。
l NUMBER 數值型。
l LONG 變長字元資料,最長為2G位元組。
l DATE 日期型。
l RAW 二進位制資料,最長為255位元組。
l LONG RAW 變長二進位制資料,最長為2G位元組。
l ROWID 二六進位制串,表示表的行的唯一地址。
l CHAR 定長字元資料,最長為255。
4、 常用函式用法:
一個函式類似於一個算符,它運算元據項,返回一個結果。函式在格式上不同於算符,它個具有變元,可操作0個、一個、二個或多個變元,形式為:
函式名(變元,變元,…)
函式具有下列一般類形:
l 單行函式
l 分組函式
1) 單行函式對查詢的表或檢視的每一行返回一個結果行。它有數值函式,字元函式,日期函式,轉換函式等。
2) 分組函式返回的結果是基於行組而不是單行,所以分組函式不同於單行函式。在許多分組函式中可有下列選項:
l DISTRNCT 該選項使分組函式只考慮變元表示式中的不同值。
l ALL該選項使分組函式考慮全部值,包含全部重複。
全部分組函式(除COUNT(*)外)忽略空值。如果具有分組函式的查詢,沒有返回行或只有空值(分組函式的變元取值的行),則分組函式返回空值。
5、 資料操縱語言命令:
資料庫操縱語言(DML)命令用於查詢和操縱模式物件中的資料,它不隱式地提交當前事務。它包含UPDATE、INSERT、DELETE、EXPLAIN PLAN、SELECT和LOCK TABLE 等命令。下面簡單介紹一下:
1) UPDATE tablename SET {column1=expression1,column2=expression2,…} WHERE {conditions};
例如:S QL>UPDATE EMP
SET JOB =’MANAGER’
WHERE ENAME=’MAPTIN’;
SQL >SELECT * FROM EMP;
UPDATE子句指明瞭要修改的資料庫是EMP,並用WHERE子句限制了只對名字(ENAME)為’MARTIN’的職工的資料進行修改,SET子句則說明修改的方式,即把’MARTION’的工作名稱(JOB)改為’MARAGER’.
2) INSERT INTO tablename {column1,column2,…} VALUES {expression1,expression2,…};
例如:SQL>SELECT INTO DEPT(DNAME, DEPTNO)
VALUES (‘ACCOUNTING’,10)
3) DELETE FROM tablename WHERE {conditions};
例如:SQL>DELETE FROM EMP
WHERE EMPNO = 7654;
DELETE命令刪除一條記錄,而且DELETE命令只能刪除整行,而不能刪除某行中的部分資料.
4) 事務控制命令
提交命令(COMMIT):可以使資料庫的修改永久化.設定AUTOCOMMIT為允許狀態:SQL >SET AUTOCOMMIT ON;
回滾命令(ROLLBACK):消除上一個COMMIT命令後的所做的全部修改,使得資料庫的內容恢復到上一個COMMIT執行後的狀態.使用方法是:
SQL>ROLLBACK;
5、 建立表、檢視、索引、同義詞、使用者。
1) 、表是儲存使用者資料的基本結構。
建立表主要指定義下列資訊:
l 列定義
l 完整性約束
l 表所在表空間
l 儲存特性
l 可選擇的聚集
l 從一查詢獲得資料
語法如下:CREATE TABLE tablename
(column1 datatype [DEFAULT expression] [constraint],
column1 datatype [DEFAULT expression] [constraint],
……)
[STORAGE子句]
[其他子句…];
例如:
SQL>CREATE TABLE NEW_DEPT
(DPTNO NUMBER(2),
DNAME CHAR(6),
LOC CHAR(13);
更改表作用:
l 增加列
l 增加完整性約束
l 重新定義列(資料型別、長度、預設值)
l 修改儲存引數或其它引數
l 使能、使不能或刪除一完整性約束或觸發器
l 顯式地分配一個範圍
2)、檢視
檢視是一個邏輯表,它允許操作者從其它表或檢視存取資料,檢視本身不包含資料。檢視所基於的表稱為基表。
引入檢視有下列作用:
l 提供附加的表安全級,限制存取基表的行或/和列集合。
l 隱藏資料複雜性。
l 為資料提供另一種觀點。
l 促使ORACLE的某些操作在包含檢視的資料庫上執行,而不在另一個資料庫上執行。
3)、索引
索引是種資料庫物件。對於在表或聚集的索引列上的每一值將包含一項,為行提供直接的快速存取。在下列情況ORACLE可利用索引改進效能:
l 按指定的索引列的值查詢行。
l 按索引列的順序存取表。
建立索引: CREATE [UNIQUE] INDEX indexname ON tablename(column ,。。。);
例如:SQL>CREAT INDEX IC_EMP
ON CLUSTER EMPLOYEE
4)、同義詞
同義詞:為表、檢視、序列、儲存函式、包、快照或其它同義詞的另一個名字。使用同義詞為了安全和方便。對一物件建立同義詞可有下列好處:
l 引用物件不需指出物件的持有者。
l 引用物件不需指出它所位於的資料庫。
l 為物件提供另一個名字。
建立同義詞:
CREATE SYNONYM symnon_name FOR [username.]tablename;
例如:CREAT PUBLIC SYNONYM EMP
FOR SCOTT.EMP @SALES
5)、使用者
CREATE USER username IDENTIFIED BY password;
例如:SQL>CREATE USER SIDNEY
IDENTIFIED BY CARTON ;[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1016781/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle Stream(1)--Streams概述Oracle
- #資料庫3-1_SQL概述資料庫SQL
- Oracle體系結構概述與SQL解析剖析OracleSQL
- (1)概述
- HTML概述1HTML
- Sql Server系列:Transact-SQL概述SQLServer
- ORACLE索引概述Oracle索引
- Oracle Scheduler概述Oracle
- 【1】爬蟲概述爬蟲
- 1.Qt概述QT
- 4.1.1 Oracle Restart概述OracleREST
- oracle之hint概述Oracle
- Oracle Resource Manager概述Oracle
- Docker入門(1):概述Docker
- Kafka入門(1):概述Kafka
- IOS Widget(1):概述iOS
- 【Java集合】1 集合概述Java
- 列表元件抽象(1):概述元件抽象
- SQL SERVER——高可用技術概述SQLServer
- ORACLE系統概述(轉)Oracle
- Oracle Stream概述與配置Oracle
- oracle資料塊概述Oracle
- Oracle clusterware組成概述Oracle
- ORACLE系統概述(5)Oracle
- ORACLE系統概述(4)Oracle
- ORACLE系統概述(3)Oracle
- ORACLE系統概述(2)Oracle
- ORACLE事務管理概述Oracle
- ORACLE表空間概述Oracle
- Oracle 效能調優 概述Oracle
- 基於Oracle的sql最佳化(1)OracleSQL
- Oracle SQLT 診斷SQL語句效能(1)OracleSQL
- 網路協議 1 - 概述協議
- Docker筆記1-概述Docker筆記
- ASH(Active Session History)——概述(1)!Session
- 計網筆記(1)——概述筆記
- 1 Java NIO概述-翻譯Java
- raid 0 1 5 概述AI