根据提供的文件信息,我们可以归纳出一系列与SQL语句相关的知识点,包括常见的操作、查询、以及一些高级用法。下面将对这些知识点进行详细的解释和扩展。
### 1. 备份数据库
- **语法**: `BACKUP DATABASE <数据库名> TO <备份设备> WITH NOFORMAT, NOINIT, NAME = N'<备份名称>', SKIP, NOREWIND, NOUNLOAD, STATS = 10`
- 例如:`BACKUP DATABASE pubs TO testBack WITH NOFORMAT, NOINIT, NAME = N'MyNwind_1', SKIP, NOREWIND, NOUNLOAD, STATS = 10`
### 2. 创建表字段
- **添加新列**:
- `ALTER TABLE <表名> ADD <列名> <数据类型>`
- 示例:`ALTER TABLE tabname ADD column varchar(50)`
### 3. 添加主键
- **添加主键**:
- `ALTER TABLE <表名> ADD CONSTRAINT <约束名> PRIMARY KEY (<列名>)`
- 示例:`ALTER TABLE tabname ADD CONSTRAINT PK_tabname PRIMARY KEY (col)`
### 4. 删除主键
- **删除主键**:
- `ALTER TABLE <表名> DROP CONSTRAINT <约束名>`
- 示例:`ALTER TABLE tabname DROP CONSTRAINT PK_tabname`
### 5. 创建空表
- **创建空表**:
- `SELECT * INTO <目标表名> FROM <源表名> WHERE 1<>1`
- 示例:`SELECT * INTO b FROM a WHERE 1<>1`
### 6. 表间数据复制
- **复制表数据**:
- `INSERT INTO <目标表名> (<列名1>, <列名2>, ...) SELECT <源列名1>, <源列名2>, ... FROM <源表名>`
- 示例:`INSERT INTO b (a, b, c) SELECT d, e, f FROM a`
### 7. 使用连接查询
- **左连接查询**:
- `SELECT <列名列表> FROM <表1> LEFT OUTER JOIN <表2> ON <连接条件>`
- 示例:`SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a LEFT OUTER JOIN b ON a.a = b.c`
### 8. 子查询
- **子查询**:
- `SELECT <列名列表> FROM <表名1> WHERE <列名> IN (SELECT <列名> FROM <表名2>)`
- 示例:`SELECT a.title, a.username, b.adddate FROM tablea, (SELECT MAX(adddate) adddate FROM table WHERE table.title = a.title) b`
### 9. 分组查询
- **分组查询**:
- `SELECT <列名列表>, COUNT(<列名>) AS <别名> FROM <表名> GROUP BY <列名列表>`
- 示例:`SELECT type, COUNT(*) AS cnt FROM tablename GROUP BY type`
### 10. BETWEEN 运算符
- **BETWEEN 运算符**:
- `SELECT * FROM <表名> WHERE <列名> BETWEEN <值1> AND <值2>`
- 示例:`SELECT * FROM table1 WHERE time BETWEEN '2023-01-01 00:00:00' AND '2023-01-01 23:59:59'`
### 11. DATEDIFF 函数
- **DATEDIFF 函数**:
- `DATEDIFF(<日期部分>, <日期1>, <日期2>)`
- 示例:`SELECT * FROM 常规 WHERE DATEDIFF('MINUTE', 开始时间, GETDATE()) > 5`
### 12. TOP 子句
- **TOP 子句**:
- `SELECT TOP <数量> * FROM <表名> ORDER BY <列名>`
- 示例:`SELECT TOP 10 * FROM table1 ORDER BY id DESC`
### 13. DELETE 语句
- **DELETE 语句**:
- `DELETE FROM <表名> WHERE <条件>`
- 示例:`DELETE FROM tablename WHERE id NOT IN (SELECT MAX(id) FROM tablename GROUP BY col1, col2)`
### 14. 查询表结构
- **查询表结构**:
- `SELECT name FROM sysobjects WHERE type = 'U'`
- 示例:`SELECT name FROM sysobjects WHERE type = 'U'`
### 15. 查询表列
- **查询表列**:
- `SELECT name FROM syscolumns WHERE id = object_id('<表名>')`
- 示例:`SELECT name FROM syscolumns WHERE id = object_id('TableName')`
### 16. CASE WHEN 语句
- **CASE WHEN 语句**:
- `SELECT <列名列表>, SUM(CASE WHEN <条件> THEN <表达式> ELSE 0 END) AS <别名> FROM <表名> GROUP BY <列名列表>`
- 示例:`SELECT type, SUM(CASE WHEN vender = 'A' THEN pcs ELSE 0 END) AS A, SUM(CASE WHEN vender = 'C' THEN pcs ELSE 0 END) AS C, SUM(CASE WHEN vender = 'B' THEN pcs ELSE 0 END) AS B FROM tablename GROUP BY type`
### 17. NEWID() 函数
- **NEWID() 函数**:
- `SELECT NEWID()`
- 示例:`SELECT NEWID()`
### 18. 随机选择记录
- **随机选择记录**:
- `SELECT TOP <数量> * FROM <表名> ORDER BY NEWID()`
- 示例:`SELECT TOP 10 * FROM tablename ORDER BY NEWID()`
以上是根据给定文件内容整理出的一些关键SQL知识点及其示例。通过这些示例,你可以更好地理解如何在实际场景中应用SQL语句。需要注意的是,不同数据库系统(如SQL Server、MySQL等)可能存在语法差异,因此在具体使用时还需参照所使用的数据库系统的文档。