資料庫DDL、DML、DCL、DQL、DPL、CCL的全稱和使用
簡介:
SQL (Structure Query Language):結構化查詢語言,一種特殊目的的程式設計語言,一種資料庫查詢和程式設計語言,用于存取資料以及查詢、更新和管理關系資料庫系統。結構化查詢語言是進階的非過程化程式設計語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者了解具體的資料存放方式,是以具有完全不同底層結構的不同資料庫系統, 可以使用相同的結構化查詢語言作為資料輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
DDL (Data Definition Language):資料定義語言
- create語句:可以建立資料庫和資料庫的一些對象。
建立資料庫:
CREATE DATABASE [database_name];
建立資料庫表:
CREATE TABLE [table_name]
(
id datatype,
column_name2 datatype,
column_name3 datatype,
...,
PRIMARY KEY (`id`)
);
- drop語句:可以删除資料表、索引、觸發程式、條件限制以及資料表的權限等。
删除資料庫:
DROP DATABASE [database_name];
删除資料庫中的表:
DROP TABLE [table_name];
删除資料庫表的索引:
-- mysql
ALTER TABLE [table_name] DROP INDEX [index_name];
-- DB2 和 Oracle
DROP INDEX [index_name];
- alter語句:修改資料表定義及屬性。
在已經存在的表中添加字段:
ALTER TABLE [table_name] ADD [column_name] [datatype];
-- 房間表添加業态
ALTER TABLE `room_info` ADD COLUMN business_type tinyint(4) DEFAULT '1' COMMENT "業态" AFTER new_room_id;
删除表中已經存在的字段:
ALTER TABLE [table_name] DROP COLUMN [column_name];
修改表中已經存在的字段的類型:
-- 将 table_name表 中的字段 column_name 修改為新的資料類型
ALTER TABLE [table_name] ALTER COLUMN [column_name] 新資料類型;
ALTER TABLE [table_name] MODIFY COLUMN [column_name] 新資料類型;
修改表中字段名為新的字段:
-- 将 table_name 的 column_name 字段修改為 datatype 類型的 new_column_name字段
ALTER TABLE [table_name] CHANGE COLUMN [column_name] [new_column_name] [datatype] COMMENT "描述";
-- 實際操作
ALTER TABLE bs_area CHANGE COLUMN `data_states` `data_state` int(11) COMMENT "狀态";
DML (Data Manipulation Language):資料操作語言
- insert 語句:向資料表中插入記錄。
-- 将table_name表中的每一個字段都插入值
INSERT INTO [table_name] VALUES (value1,value2,...);
-- 将table_name表中的特定字段插入值
INSERT INTO [table_name](column_name1, column_name2,...) VALUES (value1, value2,...);
- delete 語句:删除資料表中的一條或多條記錄,也可以删除資料表中的所有記錄。
DELETE FROM [table_name] WHERE [column_name] = [value];
- update 語句:用于修改已存在表中的記錄的内容。
UPDATE [table_name] SET [column_name1] = [value1] WHERE [column_name2] = [value2];
- truncate 語句:清除表中所有資料。
-- 對比drop的操作,僅清除表中的資料
TRUNCATE TABLE [table_name]
DCL (Data Control Language):資料控制語言
- grant 語句:允許對象的建立者給某使用者或某組或所有使用者(PUBLIC)某些特定的權限。
-- 向 資料庫使用者 授權 資料庫對象(表、視圖、字段)的 權限(select,insert,update,delete)
GRANT <權限> ON <資料對象> FROM <資料庫使用者>
- revoke 語句:可以廢除某使用者或某組或所有使用者通路權限。
-- 回收 資料庫使用者 在 資料庫對象(表、視圖、字段)的 權限(select,insert,update,delete)
REVOKE <權限> ON <資料對象> FROM <資料庫使用者名>
DQL (Data Query Language):資料查詢語言
- select 語句:資料檢索語句,用于從表中擷取資料。
SELECT [column_name1] FROM [table_name] WHERE [column_name2] = [value2];
- select 語句中所有關鍵字書寫順序
①SELECT [DISTINCT]
②FROM
③JOIN
④ON
⑤WHERE
⑥GROUP BY
⑦HAVING
⑧UNION
⑨ORDER BY
⑩LIMIT
- 執行順序
①FROM:将資料從硬碟加載到資料緩沖區,友善對接下來的資料進行操作。
②WHERE:從基表或視圖中選擇滿足條件的元組。(不能使用聚合函數)
③JOIN:(如right left 右連接配接-------從右邊表中讀取某個元組,并且找到該元組在左邊表中對應的元組或元組集)
④ON:join on實作多表連接配接查詢,推薦該種方式進行多表查詢,不使用子查詢。
⑤GROUP BY:分組,一般和聚合函數一起使用。
⑥HAVING:在元組的基礎上進行篩選,選出符合條件的元組。(一般與GROUP BY進行連用)
⑦SELECT:查詢到得所有元組需要羅列的哪些列。
⑧DISTINCT:去重的功能。
⑨UNION:将多個查詢結果合并(預設去掉重複的記錄)。
⑩ORDER BY:進行相應的排序。
⑪LIMIT 1:顯示輸出一條資料記錄(元組)
DPL (Data Processing Language):事務處理語言
- 事務處理語句能確定被DML語句影響的表的所有行及時得以更新DPL語句包括BEGIN TRANSACTION、COMMIT和ROLLBACK
-- 實際使用示例
-- 開啟事務t1 BEGIN {TRAN | TRANSACTION} [transaction_name]
begin tran t1;
-- 事務中的多個操作 insert/update/delete
update ...;
insert into ...;
update ...;
delete ...;
-- 事務commit或者rollback
commit;
CCL (Cursor Control Language):指針控制語言
- DECLARE CURSOR、FETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作