### SQL命令大全详解 #### 数据操作 1. **SELECT**:用于从数据库表中检索数据行和列。例如,从`stock_information`表中选择所有字段:`SELECT * FROM stock_information WHERE stockid = str(nid)`。此外,还可以通过`LIKE`进行模糊匹配,如`stockname LIKE '%findthis%'`。 2. **INSERT**:用于向数据库表添加新数据行。例如,插入一条新的员工记录到`employees`表中。 3. **DELETE**:用于从数据库表中删除数据行。例如,删除`employees`表中特定条件下的记录。 4. **UPDATE**:用于更新数据库表中的数据。例如,根据不同的工作级别调整工资:`UPDATE employee SET e_wage = CASE WHEN job_level = '1' THEN e_wage * 1.08 WHEN job_level = '2' THEN e_wage * 1.07 WHEN job_level = '3' THEN e_wage * 1.06 ELSE e_wage * 1.05 END`. #### 数据定义 1. **CREATE TABLE**:用于创建一个新的数据库表。例如,创建一个名为`employees`的新表。 2. **DROP TABLE**:用于从数据库中删除表。例如,删除名为`employees`的表。 3. **ALTER TABLE**:用于修改数据库表的结构。例如,向现有表中添加或删除列。 4. **CREATE VIEW**:用于创建一个视图,可以将复杂的查询保存为一个命名的对象。例如,创建一个名为`view_employees`的视图,该视图包含特定的数据筛选结果。 5. **DROP VIEW**:用于从数据库中删除视图。 6. **CREATE INDEX**:用于为数据库表创建一个索引,提高数据检索的速度。例如,为`employees`表的`e_name`列创建索引。 7. **DROP INDEX**:用于从数据库中删除索引。 8. **CREATE PROCEDURE**:用于创建一个存储过程,这是一个预编译的SQL代码块。例如,创建一个名为`proc_get_employee`的过程来检索员工信息。 9. **DROP PROCEDURE**:用于从数据库中删除存储过程。 10. **CREATE TRIGGER**:用于创建一个触发器,当某些事件(如插入、更新或删除)发生时自动执行SQL代码。例如,当向`employees`表中添加新记录时,触发器可以自动更新另一个表中的统计数据。 11. **DROP TRIGGER**:用于从数据库中删除触发器。 12. **CREATE SCHEMA**:用于向数据库添加一个新模式。例如,创建一个名为`hr`的新模式。 13. **DROP SCHEMA**:用于从数据库中删除一个模式。 14. **CREATE DOMAIN**:用于创建一个数据值域,可以定义特定类型的约束。例如,定义一个名为`domain_name`的新域,并设置相应的约束条件。 15. **ALTER DOMAIN**:用于改变域定义。例如,更改已定义的域的默认值或约束条件。 16. **DROP DOMAIN**:用于从数据库中删除一个域。 #### 数据控制 1. **GRANT**:用于授予用户对数据库对象的访问权限。例如,授予用户`user1`对`employees`表的读写权限。 2. **DENY**:用于拒绝用户对数据库对象的访问权限。例如,拒绝用户`user1`对`employees`表的写权限。 3. **REVOKE**:用于撤销之前授予用户的权限。例如,撤销用户`user1`对`employees`表的所有权限。 #### 事务控制 1. **COMMIT**:用于结束当前事务,并将所有更改永久保存到数据库。 2. **ROLLBACK**:用于中止当前事务,并撤消在该事务中所做的所有更改。 3. **SET TRANSACTION**:用于定义当前事务的数据访问特性。例如,设置事务的隔离级别或只读属性。 #### 程序化SQL 1. **DECLARE**:用于声明变量或游标。例如,声明一个名为`@id`的字符型变量。 2. **EXPLAIN**:用于为查询描述数据访问计划。例如,分析查询优化器如何执行查询。 3. **OPEN**:用于检索查询结果并打开一个游标。例如,打开一个名为`cursor1`的游标。 4. **FETCH**:用于检索一行查询结果。例如,从游标中获取下一行。 5. **CLOSE**:用于关闭游标。例如,关闭名为`cursor1`的游标。 6. **PREPARE**:用于为动态执行准备SQL语句。例如,准备一个名为`stmt1`的SQL语句。 7. **EXECUTE**:用于动态地执行SQL语句。例如,执行名为`stmt1`的准备好的SQL语句。 8. **DESCRIBE**:用于描述准备好的查询。例如,获取关于名为`stmt1`的查询的信息。 #### 局部变量 局部变量是在一个过程或函数中定义的变量,其作用范围仅限于该过程或函数内部。例如: ```sql DECLARE @id char(10); SELECT @id = '10010001'; ``` 这行代码声明了一个名为`@id`的局部变量,并将其值设为`'10010001'`。 #### 全局变量 全局变量是系统级别的变量,其作用范围覆盖整个数据库会话。这些变量必须以`@@`开头。例如,使用`IF`和`ELSE`结构来比较两个整数: ```sql DECLARE @x int, @y int, @z int; SELECT @x = 1, @y = 2, @z = 3; IF @x > @y BEGIN PRINT 'x > y'; -- 打印字符串'x > y' END ELSE IF @y > @z BEGIN PRINT 'y > z'; END ELSE BEGIN PRINT 'z > y'; END ``` #### 控制流语句 1. **WHILE CONTINUE BREAK**:用于循环处理数据。例如,使用`WHILE`循环来打印一系列数字。 2. **WAITFOR**:用于延迟执行或等待特定时间后再继续执行。例如,等待1小时2分零3秒后执行`SELECT`语句。 SQL提供了丰富的命令集来实现数据操作、定义、控制以及程序化执行等功能。这些命令可以帮助开发者高效地管理数据库中的数据,并实现复杂的业务逻辑。
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助