SQL命令是指令,它用於與資料庫通信交互。 它還用於執行特定任務,功能和數據查詢。
SQL可以執行各種任務,如創建表,向表中添加數據,刪除表,修改表,為用戶設置許可權等。
SQL命令的類型,如下圖所示 :
1. 數據定義語言(DDL)
- DDL更改表的結構,如創建表,刪除表,更改表等。
- DDL的所有命令都是自動提交的,這意味著它會永久保存資料庫中的所有更改。
以下是DDL下的一些命令:
- CREATE
- ALTER
- DROP
- TRUNCATE
CREATE: 用於在資料庫中創建新表。
語法:
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);
示例
CREATE TABLE EMPLOYEE(
Name VARCHAR2(20),
Email VARCHAR2(100),
DOB DATE
);
DROP: 用於刪除表中存儲的結構和記錄。
語法:
DROP TABLE ;
示例
DROP TABLE EMPLOYEE;
ALTER: 它用於改變資料庫的結構。此更改可以是修改現有屬性,也可以是添加新屬性。
語法:
向表中添加新列 -
ALTER TABLE table_name ADD column_name COLUMN-definition;
要修改表中的現有列:
ALTER TABLE MODIFY(COLUMN DEFINITION....);
示例
ALTER TABLE STU_DETAILS ADD(ADDRESS VARCHAR2(20));
ALTER TABLE STU_DETAILS MODIFY (NAME VARCHAR2(20));
TRUNCATE: 用於刪除表中的所有行並釋放包含該表的空格。
語法:
TRUNCATE TABLE table_name;
示例:
TRUNCATE TABLE EMPLOYEE;
2.數據操作語言
DML命令用於修改資料庫,它負責資料庫中的所有形式的更改。
DML的命令不是自動提交的,這意味著它無法永久保存資料庫中的所有更改。也可以回滾。
以下是DML下的一些命令:
- INSERT
- UPDATE
- DELETE
INSERT: INSERT語句是SQL查詢,它用於將數據插入表的行。
語法:
INSERT INTO TABLE_NAME
(col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
或者,
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);
示例 -
INSERT INTO tb_zaixian (Author, Subject) VALUES ("Maxsu", "DBMS");
UPDATE: 此命令用於更新或修改表中列的值。
語法:
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
示例
UPDATE students
SET User_Name = 'zaixian'
WHERE Student_Id = '3'
DELETE: 用於從表中刪除一行或多行。
語法:
DELETE FROM table_name [WHERE condition];
示例
DELETE FROM tb_zaixian
WHERE Author="Maxsu";
3. 數據控制語言
DCL命令用於授予和恢復任何資料庫用戶的許可權。
以下是DCL下的一些命令:
- Grant
- Revoke
Grant: 用於授予用戶對數據庫的訪問許可權。
示例
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;
Revoke: 它用於從用戶收回許可權。
示例
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;
4. 事務控制語言
TCL命令只能用於INSERT
,DELETE
和UPDATE
等DML命令。
這些操作會自動在資料庫中提交,這就是創建表或刪除表時無法使用它們的原因。
以下是TCL下的一些命令:
- COMMIT
- ROLLBACK
- SAVEPOINT
Commit: Commit
命令用於將所有事務保存到資料庫。
語法
COMMIT;
示例
DELETE FROM CUSTOMERS
WHERE AGE = 25;
COMMIT;
Rollback: 回滾命令用於撤銷尚未保存到資料庫的事務。
語法:
ROLLBACK;
示例
DELETE FROM CUSTOMERS
WHERE AGE = 25;
ROLLBACK;
SAVEPOINT: 用於將事務回滾到某個點而不回滾整個事務。
語法:
SAVEPOINT SAVEPOINT_NAME;
5. 數據查詢語言
DQL用於從資料庫中獲取數據。
它只使用一個命令:
- SELECT
SELECT: 這與關係代數的投影操作相同。它用於根據WHERE
子句描述的條件選擇屬性。
語法
SELECT expressions
FROM TABLES
WHERE conditions;
示例
SELECT emp_name
FROM employee
WHERE age > 20;