根据提供的文件信息,我们可以归纳出一系列重要的SQL知识点与命令,这些命令涵盖了数据库管理、表操作、数据查询等多个方面。下面将对这些知识点进行详细的解析。 ### 数据库操作 #### 创建数据库 - **语法**: `CREATE DATABASE database-name;` - 用于创建一个新的数据库。 - 示例:`CREATE DATABASE myDatabase;` #### 删除数据库 - **语法**: `DROP DATABASE dbname;` - 用于删除已存在的数据库。 - 示例:`DROP DATABASE dbTest;` ### SQL Server特定操作 #### 添加备份设备 - **语法**: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 此命令用于在SQL Server中添加一个磁盘备份设备。 #### 执行备份 - **语法**: `BACKUP DATABASE pubs TO testBack;` - 该命令用于备份名为`pubs`的数据库到之前定义的备份设备`testBack`上。 ### 表操作 #### 创建表 - **基本语法**: ```sql CREATE TABLE tabname ( col1 type1 [NOT NULL] [PRIMARY KEY], col2 type2 [NOT NULL], ... ); ``` - 这条语句用于创建一个包含指定列的新表。 - 示例:`CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50));` - **复制表结构**: ```sql CREATE TABLE tab_new LIKE tab_old; ``` - 这个命令用于创建一个新表,并复制已有表的结构(不包括数据)。 - **基于查询结果创建表**: ```sql CREATE TABLE tab_new AS SELECT col1, col2 FROM tab_old; ``` - 使用此命令可以基于现有表的查询结果创建新表,并且新表会包含查询结果中的所有数据。 #### 删除表 - **语法**: `DROP TABLE tabname;` - 用于删除一个现有的表。 - 示例:`DROP TABLE users;` #### 修改表 - **添加列**: ```sql ALTER TABLE tabname ADD column coltype; ``` - 用于向现有表中添加新列。 - 示例:`ALTER TABLE users ADD age INT;` - **修改主键**: ```sql ALTER TABLE tabname ADD PRIMARY KEY (col); ALTER TABLE tabname DROP PRIMARY KEY (col); ``` - 第一条命令用于为表添加主键约束,第二条用于移除主键约束。 ### 查询与数据操作 #### 基本查询 - **选择数据**: ```sql SELECT * FROM table1 WHERE condition; ``` - 用于从指定表中选择数据。 - 示例:`SELECT * FROM users WHERE age > 30;` - **插入数据**: ```sql INSERT INTO table1 (field1, field2) VALUES (value1, value2); ``` - 用于向表中插入一行新的记录。 - 示例:`INSERT INTO users (name, age) VALUES ('John Doe', 25);` - **删除数据**: ```sql DELETE FROM table1 WHERE condition; ``` - 用于从表中删除符合条件的数据行。 - 示例:`DELETE FROM users WHERE age < 18;` - **更新数据**: ```sql UPDATE table1 SET field1 = value1 WHERE condition; ``` - 用于更新表中符合条件的数据行。 - 示例:`UPDATE users SET age = 30 WHERE name = 'John Doe';` - **模糊查询**: ```sql SELECT * FROM table1 WHERE field1 LIKE '%value1%'; ``` - 用于执行模糊匹配查询。 - 示例:`SELECT * FROM users WHERE name LIKE '%John%';` - **排序查询**: ```sql SELECT * FROM table1 ORDER BY field1, field2 [DESC]; ``` - 用于对查询结果进行排序。 - 示例:`SELECT * FROM users ORDER BY age DESC;` - **聚合函数** - **计数**: `COUNT(*)`用于计算行数。 - **求和**: `SUM(field)`用于计算字段总和。 - **平均值**: `AVG(field)`用于计算字段的平均值。 - **最大值**: `MAX(field)`用于找到字段的最大值。 - **最小值**: `MIN(field)`用于找到字段的最小值。 #### 多表查询 - **并集查询**: ```sql SELECT column FROM table1 UNION SELECT column FROM table2; SELECT column FROM table1 UNION ALL SELECT column FROM table2; ``` - `UNION`用于合并两个或多个`SELECT`语句的结果集,但会自动去除重复行。 - `UNION ALL`则不会去除重复行。 - **差集查询**: ```sql SELECT column FROM table1 EXCEPT SELECT column FROM table2; SELECT column FROM table1 EXCEPT ALL SELECT column FROM table2; ``` - `EXCEPT`用于返回第一个`SELECT`语句结果集中不在第二个`SELECT`语句结果集中的行。 - **交集查询**: ```sql SELECT column FROM table1 INTERSECT SELECT column FROM table2; SELECT column FROM table1 INTERSECT ALL SELECT column FROM table2; ``` - `INTERSECT`用于返回两个`SELECT`语句结果集的公共行。 ### 外连接查询 - **左外连接**: ```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; ``` - 左外连接会返回左表的所有记录和右表中满足连接条件的记录,如果右表没有匹配项,则返回NULL。 - **右外连接**: ```sql SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a RIGHT OUTER JOIN b ON a.a = b.c; ``` - 右外连接与左外连接相反,它返回右表的所有记录和左表中满足连接条件的记录。 - **全外连接**: ```sql SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a FULL OUTER JOIN b ON a.a = b.c; ``` - 全外连接返回两个表中的所有记录,对于没有匹配项的记录,使用NULL填充另一方的字段。 ### 分组与聚合 - **分组查询**: ```sql SELECT column, COUNT(*) FROM table GROUP BY column; ``` - `GROUP BY`用于对查询结果进行分组,通常与聚合函数一起使用。 ### 其他高级操作 - **分离与附加数据库** - **分离数据库**: `sp_detach_db` - **附加数据库**: `sp_attach_db` - 这两个存储过程用于分离和重新附加数据库,便于进行数据库维护或迁移。 - **重命名数据库** ```sql EXEC sp_renamedb 'old_name', 'new_name'; ``` - 用于更改现有数据库的名称。 以上总结了文件中提到的主要SQL命令及其用途,这些命令是进行数据库管理和数据分析的基础,掌握它们能够帮助开发者更高效地处理各种数据库任务。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助