### 常用经典SQL语句大全 #### SQL语句概览 本文档提供了一套全面的SQL语句集合,涵盖了数据库操作的基础到高级技术。SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库的标准编程语言,广泛应用于各种数据库管理系统中,如Microsoft SQL Server、MySQL、Oracle等。 #### SQL语言分类 SQL语句可以分为以下几类: - **DDL(Data Definition Language,数据定义语言)**:这类语句用于定义数据库的结构,包括创建、修改和删除数据库对象(如表、视图、存储过程等)。 - `CREATE`:创建新的数据库对象。 - `ALTER`:修改现有数据库对象的结构。 - `DROP`:删除现有的数据库对象。 - `DECLARE`:通常用于声明变量,但在某些上下文中也可以用于定义数据库对象。 - **DML(Data Manipulation Language,数据操作语言)**:这类语句用于处理数据库中的数据,如检索、插入、更新和删除数据。 - `SELECT`:从数据库中检索数据。 - `INSERT`:向数据库中插入新数据。 - `UPDATE`:更新数据库中的现有数据。 - `DELETE`:从数据库中删除数据。 - **DCL(Data Control Language,数据控制语言)**:这类语句用于管理用户对数据库的访问权限。 - `GRANT`:授予用户特定的操作权限。 - `REVOKE`:撤销用户的权限。 - `COMMIT`:提交事务,使其永久生效。 - `ROLLBACK`:回滚事务,撤销未提交的数据更改。 #### SQL基础语句详解 1. **创建数据库** ```sql CREATE DATABASE database-name; ``` 这条语句用于创建一个新的数据库实例。 2. **删除数据库** ```sql DROP DATABASE dbname; ``` 用于删除指定名称的数据库。 3. **备份SQL Server** - 创建备份设备: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 执行备份: ```sql BACKUP DATABASE pubs TO testBack; ``` 4. **创建新表** ```sql CREATE TABLE tabname (col1 type1 [NOT NULL] [PRIMARY KEY], col2 type2 [NOT NULL], ...); ``` 使用`LIKE`关键字或`AS SELECT`子句可以根据已有的表结构快速创建新表。 5. **删除表** ```sql DROP TABLE tabname; ``` 6. **增加列** ```sql ALTER TABLE tabname ADD COLUMN col type; ``` 注意:一旦增加了列之后,该列就无法直接删除,只能通过重建表的方式来实现。在DB2中,增加了列之后,其数据类型也无法直接更改,除非增加的是`VARCHAR`类型,可以通过增加长度的方式进行扩展。 7. **添加/删除主键** ```sql ALTER TABLE tabname ADD PRIMARY KEY (col); ALTER TABLE tabname DROP PRIMARY KEY (col); ``` 主键约束用于确保表中的记录具有唯一性。 8. **创建/删除索引** ```sql CREATE [UNIQUE] INDEX idxname ON tabname (col...); DROP INDEX idxname; ``` 索引提高了数据检索的速度,一旦创建便不可更改,如果需要调整,则需要先删除再重建。 9. **创建/删除视图** ```sql CREATE VIEW viewname AS SELECT statement; DROP VIEW viewname; ``` 视图提供了对数据的一种逻辑抽象,可以帮助简化复杂的查询。 10. **基本SQL语句** - 选择数据: ```sql SELECT * FROM table1 WHERE 范围; ``` - 插入数据: ```sql INSERT INTO table1 (field1, field2) VALUES (value1, value2); ``` - 删除数据: ```sql DELETE FROM table1 WHERE 范围; ``` - 更新数据: ```sql UPDATE table1 SET field1 = value1 WHERE 范围; ``` - 查找数据: ```sql SELECT * FROM table1 WHERE field1 LIKE '%value1%'; ``` - 排序数据: ```sql SELECT * FROM table1 ORDER BY field1, field2 [DESC]; ``` - 统计总数: ```sql SELECT COUNT(*) AS totalcount FROM table1; ``` - 求和: ```sql SELECT SUM(field1) AS sumvalue FROM table1; ``` - 平均值: ```sql SELECT AVG(field1) AS avgvalue FROM table1; ``` - 最大值: ```sql SELECT MAX(field1) AS maxvalue FROM table1; ``` - 最小值: ```sql SELECT MIN(field1) AS minvalue FROM table1; ``` 11. **高级查询运算词** - **UNION运算符**:结合两个结果集,并自动去除重复的行。若使用`UNION ALL`则保留所有行,包括重复的。 ```sql SELECT * FROM table1 UNION SELECT * FROM table2; ``` - **EXCEPT运算符**:返回第一个结果集中存在但第二个结果集中不存在的行。 ```sql SELECT * FROM table1 EXCEPT SELECT * FROM table2; ``` - **INTERSECT运算符**:返回两个结果集的交集,即同时存在于两个结果集中的行。 ```sql SELECT * FROM table1 INTERSECT SELECT * FROM table2; ``` 12. **使用外连接** - **LEFT OUTER JOIN**(左外连接):结果集包括左表的所有行以及右表中匹配的行;如果右表中没有匹配的行,则使用NULL填充。 ```sql SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a LEFT OUTER JOIN b ON a.a = b.c; ``` - **RIGHT OUTER JOIN**(右外连接):结果集包括右表的所有行以及左表中匹配的行;如果左表中没有匹配的行,则使用NULL填充。 以上列举了常用的SQL语句及其应用示例,这些语句是进行数据库操作的基础,熟练掌握它们对于数据库管理员和开发人员来说至关重要。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2024.6 杭电本科生毕业设计 基于DenseNet的双线性网络模型代码
- 一个python语言的个人日程管理系统
- kafka的介绍,原理,使用,代码
- com.qk354fdsceq.qk354fdsceq.MainApplication.apk.1
- (POI数据)七大主要城市数据-2023全国及各城市POI数据(最新整理)
- kafka的原理及使用
- FortiGate for Xen platform Version 6.4.15
- 基于vue3实现的纯静态登录+分页搜索演示代码,供学习
- HengCe-18900-2024-2030全球与中国半导体用超高纯氢气市场现状及未来发展趋势-样本.docx
- HTML5婚礼网站模板.zip