SQL命令是指令,它用於與資料庫通訊互動。 它還用於執行特定任務,功能和資料查詢。
SQL可以執行各種任務,如建立表,向表中新增資料,刪除表,修改表,為使用者設定許可權等。
SQL命令的型別,如下圖所示 :
以下是DDL下的一些命令:
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;
DML命令用於修改資料庫,它負責資料庫中的所有形式的更改。
DML的命令不是自動提交的,這意味著它無法永久儲存資料庫中的所有更改。也可以回滾。
以下是DML下的一些命令:
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_yiibai (Author, Subject) VALUES ("Maxsu", "DBMS");
UPDATE: 此命令用於更新或修改表中列的值。
語法:
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
範例
UPDATE students
SET User_Name = 'Yiibai'
WHERE Student_Id = '3'
DELETE: 用於從表中刪除一行或多行。
語法:
DELETE FROM table_name [WHERE condition];
範例
DELETE FROM tb_yiibai
WHERE Author="Maxsu";
DCL命令用於授予和恢復任何資料庫使用者的許可權。
以下是DCL下的一些命令:
Grant: 用於授予使用者對資料庫的存取許可權。
範例
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;
Revoke: 它用於從使用者收回許可權。
範例
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;
TCL命令只能用於INSERT
,DELETE
和UPDATE
等DML命令。
這些操作會自動在資料庫中提交,這就是建立表或刪除表時無法使用它們的原因。
以下是TCL下的一些命令:
Commit: Commit
命令用於將所有事務儲存到資料庫。
語法
COMMIT;
範例
DELETE FROM CUSTOMERS
WHERE AGE = 25;
COMMIT;
Rollback: 回滾命令用於撤消尚未儲存到資料庫的事務。
語法:
ROLLBACK;
範例
DELETE FROM CUSTOMERS
WHERE AGE = 25;
ROLLBACK;
SAVEPOINT: 用於將事務回滾到某個點而不回滾整個事務。
語法:
SAVEPOINT SAVEPOINT_NAME;
DQL用於從資料庫中獲取資料。
它只使用一個命令:
SELECT: 這與關係代數的投影操作相同。它用於根據WHERE
子句描述的條件選擇屬性。
語法
SELECT expressions
FROM TABLES
WHERE conditions;
範例
SELECT emp_name
FROM employee
WHERE age > 20;