### SQL语句大全知识点解析 #### 数据操作 - **SELECT**:用于从数据库表中检索数据行和列。这是SQL中最基本的操作之一。 - 语法示例:`SELECT * FROM table_name WHERE column_name operator value;` - 示例扩展: - `SELECT * FROM stock_information WHERE stockid = 'nid' AND stockname = 'str_name';` - 使用LIKE进行模糊查询:`SELECT * FROM stock_information WHERE stockname LIKE '%findthis%';` - 指定范围内的字符匹配:`SELECT * FROM stock_information WHERE stockname LIKE '[a-zA-Z]%;'` - 排除特定范围内的字符:`SELECT * FROM stock_information WHERE stockname LIKE '[^F-M]%';` - 多条件查询:`SELECT * FROM stock_information WHERE stockpath = 'stock_path' OR stocknumber < 1000 AND stockindex = 24;` - 使用NOT进行否定查询:`SELECT * FROM stock_information WHERE NOT stock*** = 'man';` - BETWEEN进行区间查询:`SELECT * FROM stock_information WHERE stocknumber BETWEEN 20 AND 100;` - IN进行集合查询:`SELECT * FROM stock_information WHERE stocknumber IN (10, 20, 30);` - ORDER BY进行排序:`SELECT * FROM stock_information ORDER BY stocknumber DESC;` - **INSERT**:用于向数据库表添加新数据行。 - 语法示例:`INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);` - **DELETE**:用于从数据库表中删除数据行。 - 语法示例:`DELETE FROM table_name WHERE condition;` - **UPDATE**:用于更新数据库表中的数据。 - 语法示例:`UPDATE table_name SET column_name = new_value WHERE condition;` - 示例扩展:`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;` #### 数据定义 - **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 (column1, column2,...);` - **DROP INDEX**:用于从数据库中删除索引。 - 语法示例:`DROP INDEX index_name ON table_name;` - **CREATE PROCEDURE**:用于创建一个存储过程。 - 语法示例:`CREATE PROCEDURE procedure_name (parameters) AS SQL_statement;` - **DROP PROCEDURE**:用于从数据库中删除存储过程。 - 语法示例:`DROP PROCEDURE procedure_name;` - **CREATE TRIGGER**:用于创建一个触发器。 - 语法示例:`CREATE TRIGGER trigger_name AFTER INSERT ON table_name FOR EACH ROW SQL_statement;` - **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 CONSTRAINT constraint_name CHECK (condition);` - **ALTER DOMAIN**:用于改变域定义。 - 语法示例:`ALTER DOMAIN domain_name SET NOT NULL;` - **DROP DOMAIN**:用于从数据库中删除一个域。 - 语法示例:`DROP DOMAIN domain_name;` #### 数据控制 - **GRANT**:用于授予用户访问权限。 - 语法示例:`GRANT SELECT, INSERT ON table_name TO username;` - **DENY**:用于拒绝用户访问。 - 语法示例:`DENY SELECT ON table_name TO username;` - **REVOKE**:用于解除用户访问权限。 - 语法示例:`REVOKE SELECT ON table_name FROM username;` #### 事务控制 - **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 'SELECT * FROM table_name';` - **EXECUTE**:用于动态地执行SQL语句。 - 语法示例:`EXECUTE statement_name;` - **DESCRIBE**:用于描述准备好的查询。 - 语法示例:`DESCRIBE statement_name;` #### 局部变量与全局变量 - **局部变量**:可以在声明后使用,不需要以特殊前缀开始。 - 语法示例:`DECLARE @id char(10); SELECT @id = '10010001';` - **全局变量**:必须以`@@`开头。 - 语法示例:`SELECT @@SERVERNAME;` #### 条件语句与循环 - **IF...ELSE**:用于基于条件执行不同的代码块。 - 语法示例: ```sql DECLARE @x int, @y int, @z int; SELECT @x = 1, @y = 2, @z = 3; IF @x > @y PRINT 'x>y'; ELSE IF @y > @z PRINT 'y>z'; ELSE PRINT 'z>y'; ``` - **CASE**:用于根据多个条件执行不同的代码块。 - 语法示例: ```sql USE pangu; 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**:用于重复执行一段代码直到满足特定条件。 - 语法示例: ```sql DECLARE @x int, @y int, @c int; SELECT @x = 1, @y = 1; WHILE @x < 3 BEGIN PRINT @x; WHILE @y < 3 BEGIN SELECT @c = 100 * @x + @y; PRINT @c; SELECT @y = @y + 1; END SELECT @x = @x + 1; SELECT @y = 1; END ``` - **WAITFOR**:用于延迟执行或等待特定时间后执行。 - 语法示例: - 延迟执行:`WAITFOR DELAY '01:02:03'; SELECT * FROM employee;` - 等待特定时间后执行:`WAITFOR TIME '23:08:00'; SELECT * FROM employee;` 以上是SQL语言中常用的一些命令和操作的详细介绍,涵盖了数据操作、数据定义、数据控制、事务控制、程序化SQL以及变量使用等多个方面。这些知识对于理解和运用SQL语言进行数据库管理和数据处理具有重要的意义。
















- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 专用短程通信DSRC技术.doc
- nest-zhiyeguihua-毕业设计资源
- 网络营销课程.pptx
- mumicm_dlut-美赛资源
- 多策略增强型蛇优化算法的Matlab实现及其在复杂优化问题中的应用 v2.5
- 专题讲座资料(2021-2022年)大学生毕业设计计算机网络专业.docx
- 基于密码的云计算虚拟化网络安全研究.docx
- 基于AUTOSAR架构的BMS电池管理控制策略开发及其在量产车型中的应用
- 无人驾驶车辆MPC轨迹跟踪控制:基于CarSim的多速度稳定控制策略与误差分析 · 无人驾驶
- LLC谐振变换器的Simulink仿真研究:电压电流双环竞争控制策略及其增益曲线分析
- CSDN_ASSEMBLY_IMAGES-汇编语言资源
- mica-mqtt-Java资源
- Aestate-Python资源
- 以裂缝为界:钻孔周围水力割缝引起的瓦斯卸压状况分析
- 基于PMU测量的电力系统状态估计:Matlab实现与IEEE系统仿真验证
- 电力电子领域全桥LLC谐振变换器变频-移相混合控制仿真及其应用


