sql server常用语句大全

admin 12 0

### 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