SQL中的DDL、DML、DCL、TCL

原文:https://itommy.iteye.com/blog/2278172

1.DDLData Definition Language數據庫定義語言statements are used to define the database structure or schema.

DDL是SQL語言的四大功能之一。
用於定義數據庫的三級結構,包括外模式、概念模式、內模式及其相互之間的映像,定義數據的完整性、安全控制等約束
DDL不需要commit.
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME

2.DMLData Manipulation Language數據操縱語言statements are used for managing data within schema objects.

由DBMS提供,用於讓用戶或程序員使用,實現對數據庫中數據的操作。
DML分成交互型DML和嵌入型DML兩類。
依據語言的級別,DML又可分成過程性DML和非過程性DML兩種。
需要commit.
SELECT
INSERT
UPDATE
DELETE
MERGE
CALL
EXPLAIN PLAN
LOCK TABLE

3.DCLData Control Language數據庫控制語言  授權,角色控制等
GRANT 授權
REVOKE 取消授權

4.TCLTransaction Control Language事務控制語言
SAVEPOINT 設置保存點
ROLLBACK  回滾
SET TRANSACTION

SQL主要分成四部分
(1)數據定義。(SQL DDL)用於定義SQL模式、基本表、視圖和索引的創建和撤消操作。
(2)數據操縱。(SQL DML)數據操縱分成數據查詢和數據更新兩類。數據更新又分成插入、刪除、和修改三種操作。
(3)數據控制。包括對基本表和視圖的授權,完整性規則的描述,事務控制等內容。
(4)嵌入式SQL的使用規定。涉及到SQL語句嵌入在宿主語言程序中使用的規則。

 

擴展DDL:

DDL—數據庫定義語言:直接提交的。
CREATE:用於創建數據庫對象。
DECLARE:除了是創建只在過程中使用的臨時表外,DECLARE語句和CREATE語句非常相似。唯一可以被聲明的對象是表。並且必須放入用戶臨時表空間。
DROP:可以刪除任何用CREATE(數據庫對象)和DECLARE(表)創建的對象。
ALTER:允許修改某些數據庫對象的信息。不能修改索引。 
下面主要基於對象介紹基本的語法:

1、數據庫:

創建數據庫:CREATE DATABASE database-name [USING CODESET codeset TERRITORY territory]
注:代碼頁的問題。
刪除數據庫:drop database dbname

2、表:

創建新表:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old
B:create table tab_new as select col1,col2… from tab_old definition only
修改表:
增加一個列:
Alter table tabname add column col type
注:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。添加主鍵:
Alter table tabname add primary key(col)
刪除主鍵:
Alter table tabname drop primary key(col)
刪除表:drop table tabname

3、表空間:

創建表空間:create tablespace tbsname pagesize 4k managed by database using (file ‘file’ size)
表空間加入容器:alter tablespace tablespace_name add(file 'filename' size)
注:該操作是不可逆的,加入容器後將不能將其刪除,因此在加入的時候注意。
刪除表空間:drop tablespace tbsname

4、索引:

創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
注:索引是不可更改的,想更改必須刪除重新建。

5、視圖:

創建視圖:create view viewname as select statement
刪除視圖:drop view viewname


注:視圖唯一能修改的是引用類型列,改變列的範圍。其他定義好了都不能修改。當視圖基於的基表drop後,視圖變爲無效。

 

http://www.cnblogs.com/henryhappier/archive/2010/07/05/1771295.html

http://www.cnblogs.com/dataadapter/articles/2934748.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章