### 经典MSSQL语句大全及其应用详解 #### 一、数据库定义语言(DDL) **1. 创建数据库** 创建数据库是管理数据库系统的基本操作之一。通过`CREATE DATABASE`命令,可以创建一个新的数据库。 ```sql CREATE DATABASE db1; ``` 其中`db1`为新创建的数据库名称。 **2. 删除数据库** 删除数据库则用于彻底移除一个已存在的数据库,需要注意的是,在删除数据库前应该备份重要数据。 ```sql DROP DATABASE db1; ``` 这里的`db1`即是要删除的数据库名称。 **3. 添加备份设备** 在SQL Server中,可以添加备份设备来确保数据的安全性。这一步骤通常用于备份和恢复数据库。 ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` 上述代码中,“testBack”为备份设备的名称,而`c:\mssql7backup\MyNwind_1.dat`则是存储备份文件的位置。 **4. 数据库备份** 数据库备份对于保护数据至关重要。使用`BACKUP DATABASE`命令可以将整个数据库的数据进行备份。 ```sql BACKUP DATABASE pubs TO testBack; ``` 这里的`pubs`是要备份的数据库名称,`testBack`是前面定义的备份设备名称。 #### 二、数据操纵语言(DML) **1. 创建表** 创建表是存储数据的基础。`CREATE TABLE`命令用于定义表结构。 ```sql CREATE TABLE tb1 (Id int NOT NULL PRIMARY KEY, name varchar(50)); ``` 此例中,`tb1`为表名,`Id`字段为主键且不可为空,`name`字段类型为`varchar`,长度为50。 **2. 插入数据** 插入数据到表中使用`INSERT INTO`命令。 ```sql INSERT INTO tb1 (Id, name) VALUES (1, '张三'); ``` 此例向`tb1`表中插入了一条记录。 **3. 更新数据** 更新表中的数据使用`UPDATE`命令。 ```sql UPDATE tb1 SET name = '李四' WHERE Id = 1; ``` 这里将`tb1`表中`Id`为1的记录的`name`字段更新为“李四”。 **4. 删除数据** 删除表中的数据使用`DELETE FROM`命令。 ```sql DELETE FROM tb1 WHERE Id = 1; ``` 此例删除了`tb1`表中`Id`为1的记录。 **5. 查询数据** 查询数据是最常见的操作之一。 - 查询所有列:`SELECT * FROM table_name` - 查询指定列:`SELECT column1, column2 FROM table_name` - 条件查询:`SELECT * FROM table_name WHERE condition` - 排序:`SELECT * FROM table_name ORDER BY column_name [ASC|DESC]` 例如: ```sql SELECT * FROM table1 WHERE Id = 1; ``` #### 三、数据控制语言(DCL) **1. 授予权限** 授予用户对特定对象的访问权限使用`GRANT`命令。 ```sql GRANT SELECT ON table_name TO user_name; ``` 此例授予用户`user_name`对`table_name`表的读取权限。 **2. 撤销权限** 撤销用户的访问权限使用`REVOKE`命令。 ```sql REVOKE SELECT ON table_name FROM user_name; ``` 此例撤销用户`user_name`对`table_name`表的读取权限。 **3. 提交事务** 提交事务使用`COMMIT`命令,表示当前事务中的所有更改被永久保存。 ```sql COMMIT; ``` **4. 回滚事务** 回滚事务使用`ROLLBACK`命令,用于取消当前事务中的所有更改。 ```sql ROLLBACK; ``` #### 四、索引管理 **1. 创建索引** 索引用于提高数据检索速度。 ```sql CREATE INDEX idx_name ON table_name (column); ``` 这里`idx_name`为索引名称,`table_name`为表名,`column`为索引列。 **2. 删除索引** 删除不再需要的索引使用`DROP INDEX`命令。 ```sql DROP INDEX idx_name ON table_name; ``` #### 五、视图管理 **1. 创建视图** 视图用于封装查询结果,简化复杂的查询操作。 ```sql CREATE VIEW view_name AS SELECT column1, column2 FROM table_name; ``` **2. 删除视图** 删除不再需要的视图使用`DROP VIEW`命令。 ```sql DROP VIEW view_name; ``` #### 六、数据聚合与筛选 **1. 计数** 统计表中的行数使用`COUNT`函数。 ```sql SELECT COUNT(*) FROM table_name; ``` **2. 求和** 计算某列的总和使用`SUM`函数。 ```sql SELECT SUM(column) FROM table_name; ``` **3. 平均值** 计算某列的平均值使用`AVG`函数。 ```sql SELECT AVG(column) FROM table_name; ``` **4. 最大值** 查找某列的最大值使用`MAX`函数。 ```sql SELECT MAX(column) FROM table_name; ``` **5. 最小值** 查找某列的最小值使用`MIN`函数。 ```sql SELECT MIN(column) FROM table_name; ``` #### 七、集合运算符 **1. UNION** `UNION`用于合并两个或多个`SELECT`语句的结果集,会自动去除重复的行。 ```sql SELECT column FROM table1 UNION SELECT column FROM table2; ``` **2. UNION ALL** `UNION ALL`同样用于合并结果集,但不会去除重复行。 ```sql SELECT column FROM table1 UNION ALL SELECT column FROM table2; ``` **3. EXCEPT** `EXCEPT`用于获取出现在第一个`SELECT`语句结果集中但不在第二个`SELECT`语句结果集中的行。 ```sql SELECT column FROM table1 EXCEPT SELECT column FROM table2; ``` **4. INTERSECT** `INTERSECT`用于获取同时出现在两个`SELECT`语句结果集中的行。 ```sql SELECT column FROM table1 INTERSECT SELECT column FROM table2; ``` #### 八、连接查询 **1. 左外连接(LEFT OUTER JOIN)** 左外连接返回左表的所有记录及右表中匹配的记录,如果右表中没有匹配,则结果为NULL。 ```sql SELECT a.*, b.* FROM table_a LEFT OUTER JOIN table_b ON a.key = b.key; ``` **2. 右外连接(RIGHT OUTER JOIN)** 右外连接返回右表的所有记录及左表中匹配的记录,如果左表中没有匹配,则结果为NULL。 ```sql SELECT a.*, b.* FROM table_a RIGHT OUTER JOIN table_b ON a.key = b.key; ``` **3. 全外连接(FULL OUTER JOIN)** 全外连接返回左右两个表中的所有记录,当左表和右表中都没有匹配时,结果为NULL。 ```sql SELECT a.*, b.* FROM table_a FULL OUTER JOIN table_b ON a.key = b.key; ``` 以上内容详细介绍了MSSQL中的基本语句及其用途,这些语句涵盖了数据库管理的主要方面,包括数据库的创建、表的定义与操作、数据的增删改查以及更高级的特性如索引、视图和集合运算等。掌握了这些语句,就可以有效地管理和操作SQL Server数据库。
经典MSSQL语句大全和常用SQL语句命令的作用
SQL分类:
DDL类型包括数据库、表的创建,修改,删除,声明―数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML类型包括数据表中记录的查询,删除,修改,插入―数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL类型包括数据库用户赋权,废除用户访问权限, 提交当前事务,中止当前事务―数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE db1(db1代表数据库表,可自命名)
2、说明:删除数据库
drop database db1(db1代表数据库表,可自命名)
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tb1(Id int not null primary key,name varchar,..)(tb1为数据表名,ID为字段,int为数据类型整型,not null为数据是否可为空,Primary Key为主键设置,其中not null,primary key为可选项,字段,数据类型自定义。)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:
删除新表:drop table tb1
6、说明:
增加一个列:Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:Alter table tabname add primary key(ID)(设置某字段为主键,ID可自由设置,主键数据不可重复)
说明:
剩余19页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python实现HTML压缩功能
- 完结26章Java主流分布式解决方案多场景设计与实战
- ECSHOP模板堂最新2017仿E宠物模板 整合ECTouch微分销商城
- Pear Admin 是 一 款 开 箱 即 用 的 前 端 开 发 模 板,提供便捷快速的开发方式,延续 Admin 的设计规范
- 51单片机仿真摇号抽奖机源程序12864液晶显示仿真+程序
- 家庭用具检测21-YOLO(v5至v11)、COCO、Paligemma、TFRecord、VOC数据集合集.rar
- Intel-633246-eASIC-PB-006-N5X-Product-Brief .pdf
- Avue.js是基于现有的element-plus库进行的二次封装,简化一些繁琐的操作,核心理念为数据驱动视图,主要的组件库针对table表格和form表单场景,同时衍生出更多企业常用的组件,达到高复
- STM32F401,使用ST-link时候,不能识别,显示ST-LINK USB communication error
- 快速排序算法Python实现:详解分治法原理与高效排序步骤