### SQL Server常用语句大全
在数据库管理和开发中,SQL Server 是一种广泛使用的关系型数据库管理系统,掌握 SQL Server 的常用语句对于数据库管理员和开发人员来说至关重要,本文将详细介绍 SQL Server 中最常用的语句,包括数据定义语言(DDL)、数据操纵语言(DML)、数据查询语言(DQL)以及数据控制语言(DCL)等。
#### 一、数据定义语言(DDL)
DDL 主要用于定义或修改数据库的结构,包括创建、修改和删除数据库、表、索引等对象。
- **创建数据库**:`CREATE DATABASE 数据库名;`
- 例如,创建一个名为 `StudentDB` 的数据库:`CREATE DATABASE StudentDB;`
- **修改数据库**:`ALTER DATABASE 数据库名;`
- 例如,修改 `StudentDB` 数据库的文件大小:`ALTER DATABASE StudentDB MODIFY FILE ( NAME = N'StudentDB_Data', SIZE = 10MB );`
- **删除数据库**:`DROP DATABASE 数据库名;`
- 例如,删除 `StudentDB` 数据库:`DROP DATABASE StudentDB;`
- **创建表**:`CREATE TABLE 表名 (列名 数据类型 约束, ...);`
- 例如,创建一个学生表 `Students`:
CREATE TABLE Students ( ID int PRIMARY KEY, Name varchar(50) NOT NULL, Age int, Class varchar(50) );
- **修改表**:`ALTER TABLE 表名;`
- 例如,给 `Students` 表添加一个新列 `Email`:`ALTER TABLE Students ADD Email varchar(100);`
- **删除表**:`DROP TABLE 表名;`
- 例如,删除 `Students` 表:`DROP TABLE Students;`
- **创建索引**:`CREATE INDEX 索引名 ON 表名 (列名);`
- 例如,在 `Students` 表的 `Name` 列上创建索引:`CREATE INDEX idx_name ON Students (Name);`
#### 二、数据操纵语言(DML)
DML 主要用于对数据库中的数据进行插入、更新和删除操作。
- **插入数据**:`INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);`
- 例如,向 `Students` 表插入一条记录:
INSERT INTO Students (ID, Name, Age, Class) VALUES (1, '张三', 20, '计算机系');
- **更新数据**:`UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;`
- 例如,更新 `Students` 表中 `ID` 为 1 的学生的年龄:
UPDATE Students SET Age = 21 WHERE ID = 1;
- **删除数据**:`DELETE FROM 表名 WHERE 条件;`
- 例如,删除 `Students` 表中 `ID` 为 1 的学生记录:
DELETE FROM Students WHERE ID = 1;
#### 三、数据查询语言(DQL)
DQL 主要用于从数据库中检索数据,最常用的语句是 SELECT。
- **基本查询**:`SELECT 列名 FROM 表名 WHERE 条件;`
- 例如,查询 `Students` 表中所有学生的姓名和年龄:
SELECT Name, Age FROM Students;
- **条件查询**:使用 WHERE 子句添加查询条件。
- 例如,查询 `Students` 表中年龄大于 20 的学生:
SELECT * FROM Students WHERE Age > 20;
- **聚合查询**:使用聚合函数(如 COUNT, SUM, AVG 等)进行统计。
- 例如,查询每个班级的学生人数:
SELECT Class, COUNT(*) AS StudentCount FROM Students GROUP BY Class;
- **排序查询**:使用 ORDER BY 子句对查询结果进行排序。
- 例如,按年龄升序查询 `Students` 表中的学生:
SELECT * FROM Students ORDER BY Age ASC;
#### 四、数据控制语言(DCL)
DCL 主要用于控制数据库的访问权限和安全级别。
- **授予权限**:`GRANT 权限 ON 对象 TO 用户;`
- 例如,授予用户 `user1` 对 `Students` 表的 SELECT 权限:
GRANT SELECT ON Students TO user1;
- **收回权限**:`REVOKE 权限 ON