Oracle是第一個商品化的數據庫管理系統,由甲骨文公司(Oracle)推出,其采用標準SQL,支持多種數據類型和平臺,功能強大。同類產品還有IBM的DB2,Sybase,微軟的SQL Server和現屬于Oracle公司的MySQL.
結構化查詢語言
SQL(Structured Query Language)結構化查詢語言,是在關系型數據庫中執行檢索及維護的標準語言,可以用來操作,定義和控制數據。
所有的數據庫都是用相同或者相似的語言,SQL可以分為以下幾類:
- 數據定義語言(DDL):Data Definition Language
- 數據操縱語言(DML):Data Manipulation Language
- 事務控制語言(TCL):Transaction Control Language
- 數據查詢語言(DQL):Data Query Language
- 數據控制語言(DCL):Data Control Language
DDL
用于建立,修改和刪除數據庫對象,此類語言的操作都和數據庫的結構掛鉤,所以凡是對表結構做出改動的都屬于DDL
- CREATE: 創建表或者其他對象的結構
CREATE TABLE emp (
id NUMBER(5),
name VARCHAR2(20),
gender VARCHAR2(1),
hiredate DATE
);
- ALERT: 修改表或其他對象的結構
ALERT TABLE emp ADD (
salary NUMBER(6,2)
);
ALERT TABLE emp MODIFY(
gender VARCHAR2(1) DEFAULT 'M'
);
- DROP: 刪除表或其他對象的結構
ALERT TABLE emp DROP(name);//刪除字段
DROP TABLE emp;//刪除表對象
- TRUNCATE: 刪除表數據,保留表結構
TRUNCATE TABLE emp;
DML
數據操縱語言,用于操作數據庫數據,例如增加,修改和刪除數據等,和事務相關,執行完畢后必須提交才能生效。這里解釋一下數據庫事務這個概念。事務是指作為數據庫工作過程當中的單個邏輯單元,要么完全的執行,要么完全的不執行。比方說一次銀行轉賬操作,與數據庫相關的操作包括檢查賬戶和密碼,賬戶余額,取款,轉賬,更新賬戶余額信息等。這一系列操作如果任意一個環節出錯都不允許對數據庫數據進行更改,賬戶信息必須還原到初始狀態,否則數據庫將會產生混亂,而事務則正是用來保證這一系列操作過程的穩定性和可預測性。
- INSERT:將數據插入到數據庫中
INSERT INTO emp
(id,name,gender)
VALUES
(10001,kevin,M);
- UPDATE 更新數據庫中已有的數據
UPDATE emp
SET name='zhangsan' WHERE id=10001;
- DELETE 刪除數據庫中數據
DELETE FROM emp WHERE name='zhangsan';
修改和刪除表中數據時都必須使用WHERE關鍵字做條件限定,若不指定,將修改和刪除表中所有數據。
DELETE,DROP和TRUNCATE關鍵字都有刪除的作用,這三者的區別是:
相同點
- TRUNCATE和不帶WHERE子句的DELETE,DROP都會刪除表中數據
- TRUNCATE和DROP都是DDL語句,執行后直接提交不可回退
- TRUNCATE和DELETE只會刪除表數據,不會刪除表結構。
** 不同點**
- 事務操作上 DELETE是事務操作語言,操作可以回退,其他兩者無法回退
- 執行效率上 DELETE每次刪除一行,逐行刪除,TRUNCATE針對整張表數據進行刪除,DROP針對整張表對象刪除,因此通常刪除效率上 DROP>TRUNCATE> DELETE