SQL命令
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_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";
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;