### SQL语言大全知识点详解 #### 一、概述 SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。本文档提供了一系列全面的SQL语句及其功能介绍,覆盖了数据操作、数据定义、数据控制、事务控制及程序化SQL等多个方面。 #### 二、数据操作 - **SELECT**:用于从数据库表中检索数据行和列。 - 语法示例:`SELECT * FROM table_name WHERE column_name operator value;` - 示例:`SELECT * FROM stock_information WHERE stockid = str(nid) AND stockname LIKE '%findthis%';` - **INSERT**:用于向数据库表添加新数据行。 - 语法示例:`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);` - **DELETE**:用于从数据库表中删除数据行。 - 语法示例:`DELETE FROM table_name WHERE condition;` - **UPDATE**:用于更新数据库表中的数据。 - 语法示例:`UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;` #### 三、数据定义 - **CREATE TABLE**:用于创建一个数据库表。 - 语法示例:`CREATE TABLE table_name (column1 datatype, column2 datatype, ...);` - **DROP TABLE**:用于从数据库中删除表。 - 语法示例:`DROP TABLE table_name;` - **ALTER TABLE**:用于修改数据库表结构。 - 语法示例:`ALTER TABLE table_name ADD column_name datatype;` - **CREATE VIEW**:用于创建一个视图。 - 语法示例:`CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;` - **DROP VIEW**:用于从数据库中删除视图。 - 语法示例:`DROP VIEW view_name;` - **CREATE INDEX**:用于为数据库表创建一个索引。 - 语法示例:`CREATE INDEX index_name ON table_name (column_name);` - **DROP INDEX**:用于从数据库中删除索引。 - 语法示例:`DROP INDEX index_name;` - **CREATE PROCEDURE**:用于创建一个存储过程。 - 语法示例:`CREATE PROCEDURE procedure_name AS BEGIN SQL_statement END;` - **DROP PROCEDURE**:用于从数据库中删除存储过程。 - 语法示例:`DROP PROCEDURE procedure_name;` - **CREATE TRIGGER**:用于创建一个触发器。 - 语法示例:`CREATE TRIGGER trigger_name ON table_name AFTER INSERT AS BEGIN SQL_statement END;` - **DROP TRIGGER**:用于从数据库中删除触发器。 - 语法示例:`DROP TRIGGER trigger_name;` - **CREATE SCHEMA**:用于向数据库添加一个新模式。 - 语法示例:`CREATE SCHEMA schema_name;` - **DROP SCHEMA**:用于从数据库中删除一个模式。 - 语法示例:`DROP SCHEMA schema_name;` - **CREATE DOMAIN**:用于创建一个数据值域。 - 语法示例:`CREATE DOMAIN domain_name AS datatype;` - **ALTER DOMAIN**:用于改变域定义。 - 语法示例:`ALTER DOMAIN domain_name SET NOT NULL;` - **DROP DOMAIN**:用于从数据库中删除一个域。 - 语法示例:`DROP DOMAIN domain_name;` #### 四、数据控制 - **GRANT**:用于授予用户访问权限。 - 语法示例:`GRANT permission ON object TO user;` - **DENY**:用于拒绝用户访问。 - 语法示例:`DENY permission ON object TO user;` - **REVOKE**:用于解除用户访问权限。 - 语法示例:`REVOKE permission ON object FROM user;` #### 五、事务控制 - **COMMIT**:用于结束当前事务。 - 语法示例:`COMMIT;` - **ROLLBACK**:用于中止当前事务。 - 语法示例:`ROLLBACK;` - **SET TRANSACTION**:用于定义当前事务数据访问特征。 - 语法示例:`SET TRANSACTION ISOLATION LEVEL read committed;` #### 六、程序化SQL - **DECLARE**:用于为查询设定游标。 - 语法示例:`DECLARE cursor_name CURSOR FOR SELECT column_name FROM table_name WHERE condition;` - **EXPLAIN**:用于为查询描述数据访问计划。 - 语法示例:`EXPLAIN SELECT * FROM table_name;` - **OPEN**:用于检索查询结果打开一个游标。 - 语法示例:`OPEN cursor_name;` - **FETCH**:用于检索一行查询结果。 - 语法示例:`FETCH NEXT FROM cursor_name;` - **CLOSE**:用于关闭游标。 - 语法示例:`CLOSE cursor_name;` - **PREPARE**:用于为动态执行准备SQL语句。 - 语法示例:`PREPARE statement_name FROM 'SQL_statement';` - **EXECUTE**:用于动态地执行SQL语句。 - 语法示例:`EXECUTE statement_name;` - **DESCRIBE**:用于描述准备好的查询。 - 语法示例:`DESCRIBE prepared_statement;` #### 七、局部变量与全局变量 - **局部变量**:可以在SQL脚本或存储过程中声明和使用的变量。 - 语法示例:`DECLARE @id char(10);` - 示例:`SELECT @id = '10010001';` - **全局变量**:以 `@@` 开头的系统变量。 - 示例:`SELECT @@SERVERNAME;` #### 八、条件语句 - **IF ELSE** - 语法示例:`IF condition THEN statement ELSE statement;` - 示例: ```sql DECLARE @x int, @y int, @z int; SELECT @x = 1, @y = 2, @z = 3; IF @x > @y THEN PRINT 'x>y'; ELSEIF @y > @z THEN PRINT 'y>z'; ELSE PRINT 'z>y'; ``` - **CASE** - 语法示例:`CASE WHEN condition THEN result [WHEN condition THEN result]... [ELSE result] END;` - 示例: ```sql 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; ``` - **WHILE CONTINUE BREAK** - 语法示例:`WHILE condition DO BEGIN statement [CONTINUE | BREAK] END;` - 示例: ```sql DECLARE @x int, @y int, @c int; SELECT @x = 1, @y = 1; WHILE @x < 3 DO BEGIN PRINT @x; WHILE @y < 3 DO BEGIN SELECT @c = 100 * @x + @y; PRINT @c; SELECT @y = @y + 1; END SELECT @x = @x + 1; SELECT @y = 1; END ``` - **WAITFOR** - 语法示例:`WAITFOR DELAY 'HH:MM:SS';` 或 `WAITFOR TIME 'HH:MM:SS';` - 示例: ```sql -- 等待1小时2分钟3秒后执行SELECT语句 WAITFOR DELAY '01:02:03'; SELECT * FROM employee; -- 等到晚上11点8分后执行SELECT语句 WAITFOR TIME '23:08:00'; SELECT * FROM employee; ``` 以上内容详细介绍了SQL语言的主要组成部分及其使用方法,对于初学者和有经验的开发者来说都是非常宝贵的资源。通过这些基本的SQL语句,可以实现对数据库的强大控制和管理。
剩余30页未读,继续阅读
- mzautumn2013-02-01还不错哦,可以用
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 利用JNI来实现android与SO文件的交互中文最新版本
- 用VirtualBox安装Android-x864.0图文教程中文4.8MB最新版本
- 基于Android系统的手机地图应用软件开发中文3.78MB最新版本
- AndroidStudio环境下的jni调用(NDK)的方法中文最新版本
- Vue + UEditor + v-model 实体绑定.zip
- 最新版本ArcGISForAndroidEclipse环境配置中文最新版本
- VS Code 的 Vue 工具 .zip
- AndroidStudio快捷键中文最新版本
- TypeScript 和 Vue 的入门模板,带有详细的 README,描述了如何将两者结合使用 .zip
- The Net Ninja YouTube 频道上的 Vue.js 2 播放列表的课程文件.zip