技术博客
惊喜好礼享不停
技术博客
SQL Server 2019入门教程:从创建数据库到建表详解

SQL Server 2019入门教程:从创建数据库到建表详解

作者: 万维易源
2024-12-14
SQL Server初学者数据库建表S-T模式

摘要

本文旨在为初学者提供一个关于SQL Server 2019的详细使用教程。我们将以《数据库系统概论(第5版)》的第79页至第80页为参考,逐步介绍如何操作SQL Server 2019,包括启动服务、创建数据库以及建立数据表。特别地,我们将以“学生-课程”模式(S-T)为例,详细讲解如何建立数据库和课程表。本教程内容简明易懂,适合初学者快速上手SQL Server。

关键词

SQL Server, 初学者, 数据库, 建表, S-T模式

一、SQL Server 2019概述与安装

1.1 SQL Server 2019简介

SQL Server 2019 是微软公司推出的一款关系型数据库管理系统,它不仅继承了前几代产品的强大功能,还引入了许多新的特性和优化,使其在性能、安全性和可扩展性方面有了显著提升。对于初学者来说,SQL Server 2019 提供了一个友好且强大的平台,可以帮助他们快速掌握数据库管理的基本技能。无论是用于个人项目还是企业应用,SQL Server 2019 都是一个值得信赖的选择。

1.2 SQL Server 2019安装步骤

安装 SQL Server 2019 的过程相对简单,但需要仔细遵循每一步骤以确保顺利安装。以下是详细的安装步骤:

  1. 下载安装包:首先,访问微软官方网站,下载 SQL Server 2019 的安装包。根据您的操作系统选择合适的版本。
  2. 运行安装向导:双击下载的安装文件,启动 SQL Server 安装向导。在安装向导的欢迎界面,点击“下一步”继续。
  3. 选择安装类型:在安装类型选择界面,选择“新 SQL Server 独立安装或向现有 SQL Server 添加功能”。点击“下一步”。
  4. 产品密钥:如果您有产品密钥,请输入。如果没有,可以选择免费的开发版或评估版。
  5. 许可条款:阅读并接受许可条款,然后点击“下一步”。
  6. 功能选择:选择您需要安装的功能。对于初学者,建议选择“默认实例”和“数据库引擎服务”。
  7. 实例配置:选择实例名称,默认情况下为“MSSQLSERVER”。如果需要自定义实例名称,可以在此处进行设置。
  8. 服务账户:选择服务账户。建议使用内置的“NT AUTHORITY\SYSTEM”账户。
  9. 数据库引擎配置:设置 SQL Server 的身份验证模式。推荐选择“混合模式”,即同时支持 Windows 身份验证和 SQL Server 身份验证。
  10. 安装路径:选择安装路径,默认路径为 C:\Program Files\Microsoft SQL Server
  11. 准备安装:检查所有配置,确认无误后点击“安装”按钮开始安装过程。
  12. 安装完成:安装完成后,点击“关闭”按钮退出安装向导。

1.3 SQL Server Management Studio的使用

SQL Server Management Studio (SSMS) 是一个强大的集成环境,用于访问、配置、管理和开发 SQL Server 的所有组件。以下是如何使用 SSMS 的基本步骤:

  1. 启动 SSMS:在安装完成后,可以在开始菜单中找到 SQL Server Management Studio 并启动它。
  2. 连接到服务器:在“连接到服务器”对话框中,选择“数据库引擎”作为服务器类型,输入服务器名称(例如 localhost.\SQLEXPRESS),选择身份验证模式(推荐使用“Windows 身份验证”),然后点击“连接”按钮。
  3. 新建查询:连接成功后,右键点击“数据库”节点,选择“新建数据库”来创建一个新的数据库。在弹出的窗口中,输入数据库名称(例如 StudentCourseDB),然后点击“确定”。
  4. 编写和执行查询:在 SSMS 中,可以编写和执行 SQL 查询。例如,创建一个课程表的 SQL 语句如下:
    CREATE TABLE Courses (
        Cno INT PRIMARY KEY,
        Cname NVARCHAR(50),
        Cpno INT,
        Credit INT
    );
    
    将上述代码粘贴到查询编辑器中,然后点击“执行”按钮运行查询。

1.4 确认SQL Server服务运行

确保 SQL Server 服务正在运行是使用 SQL Server 的前提条件。以下是检查和启动 SQL Server 服务的方法:

  1. 打开服务管理器:在 Windows 搜索栏中输入“服务”并打开服务管理器。
  2. 查找 SQL Server 服务:在服务列表中,找到名为“SQL Server (MSSQLSERVER)”的服务。
  3. 检查服务状态:确保该服务的状态为“正在运行”。如果服务未运行,右键点击该服务,选择“启动”。
  4. 设置启动类型:为了确保 SQL Server 服务在系统启动时自动运行,可以将启动类型设置为“自动”。右键点击服务,选择“属性”,在“常规”选项卡中,将“启动类型”设置为“自动”,然后点击“应用”和“确定”。

通过以上步骤,您可以确保 SQL Server 服务正常运行,从而顺利进行数据库操作。希望这些步骤对初学者有所帮助,祝您在 SQL Server 2019 的学习之旅中取得成功!

二、创建数据库与S-T模式

2.1 数据库概念介绍

在深入探讨如何使用 SQL Server 2019 创建和管理数据库之前,我们先来了解一下数据库的基本概念。数据库是一种组织和存储数据的方式,它允许用户高效地访问、管理和更新数据。关系型数据库管理系统(RDBMS)是目前最常用的一种数据库类型,它通过表格的形式来组织数据,每个表格由行和列组成。SQL Server 2019 就是一个典型的关系型数据库管理系统,它提供了丰富的功能和工具,帮助用户轻松管理和操作数据库。

2.2 创建新的数据库

在 SQL Server 2019 中创建新的数据库是一项基础而重要的任务。通过 SQL Server Management Studio (SSMS),我们可以轻松地完成这一操作。以下是创建新数据库的详细步骤:

  1. 启动 SSMS:在安装完成后,可以在开始菜单中找到 SQL Server Management Studio 并启动它。
  2. 连接到服务器:在“连接到服务器”对话框中,选择“数据库引擎”作为服务器类型,输入服务器名称(例如 localhost.\SQLEXPRESS),选择身份验证模式(推荐使用“Windows 身份验证”),然后点击“连接”按钮。
  3. 新建数据库:连接成功后,右键点击“数据库”节点,选择“新建数据库”来创建一个新的数据库。在弹出的窗口中,输入数据库名称(例如 StudentCourseDB),然后点击“确定”。
  4. 确认创建:在 SSMS 的对象资源管理器中,展开“数据库”节点,可以看到刚刚创建的 StudentCourseDB 数据库。这标志着数据库创建成功。

2.3 S-T模式的应用背景

“学生-课程”模式(S-T模式)是数据库设计中的一个经典案例,广泛应用于教育和培训领域。这种模式通过两个主要的实体——学生和课程——来描述学生选修课程的情况。在实际应用中,S-T模式不仅可以帮助学校和培训机构有效地管理学生信息和课程安排,还可以为数据分析和决策提供有力支持。通过合理的设计和实现,S-T模式能够提高数据的准确性和一致性,简化数据管理流程。

2.4 S-T模式数据库设计

在 SQL Server 2019 中实现 S-T模式的数据库设计,需要创建两个主要的表:学生表(Students)和课程表(Courses)。此外,还需要创建一个关联表(Enrollments)来记录学生的选课情况。以下是具体的表结构和创建语句:

  1. 创建学生表
    CREATE TABLE Students (
        Sno INT PRIMARY KEY,
        Sname NVARCHAR(50),
        Ssex CHAR(1),
        Sage INT,
        Sdept NVARCHAR(50)
    );
    
  2. 创建课程表
    CREATE TABLE Courses (
        Cno INT PRIMARY KEY,
        Cname NVARCHAR(50),
        Cpno INT,
        Credit INT
    );
    
  3. 创建选课表
    CREATE TABLE Enrollments (
        Sno INT,
        Cno INT,
        Grade INT,
        PRIMARY KEY (Sno, Cno),
        FOREIGN KEY (Sno) REFERENCES Students(Sno),
        FOREIGN KEY (Cno) REFERENCES Courses(Cno)
    );
    

通过上述步骤,我们成功地在 SQL Server 2019 中实现了 S-T模式的数据库设计。这些表结构清晰地展示了学生、课程和选课之间的关系,为后续的数据操作和分析奠定了坚实的基础。希望这些内容能够帮助初学者更好地理解和应用 S-T模式,为他们的数据库学习之旅增添更多的信心和动力。

三、建立数据表

3.1 表的概念及其重要性

在关系型数据库管理系统(RDBMS)中,表是数据存储的基本单位。表由行和列组成,每一行代表一条记录,每一列代表一个字段。表的概念在数据库设计中至关重要,因为它不仅决定了数据的组织方式,还影响着数据的查询和管理效率。在 SQL Server 2019 中,表的设计和管理是数据库操作的核心内容之一。通过合理设计表结构,可以确保数据的一致性和完整性,提高数据处理的效率。

3.2 创建数据表的基本步骤

创建数据表是数据库管理的基础操作之一。在 SQL Server 2019 中,可以通过 SQL 语句或 SQL Server Management Studio (SSMS) 来创建数据表。以下是使用 SQL 语句创建数据表的基本步骤:

  1. 打开 SSMS:启动 SQL Server Management Studio 并连接到您的 SQL Server 实例。
  2. 新建查询:在 SSMS 中,右键点击“数据库”节点,选择“新建查询”来打开查询编辑器。
  3. 编写创建表的 SQL 语句:在查询编辑器中,编写创建表的 SQL 语句。例如,创建一个课程表的 SQL 语句如下:
    CREATE TABLE Courses (
        Cno INT PRIMARY KEY,
        Cname NVARCHAR(50),
        Cpno INT,
        Credit INT
    );
    
  4. 执行查询:将上述 SQL 语句粘贴到查询编辑器中,然后点击“执行”按钮运行查询。如果一切顺利,您将在对象资源管理器中看到新创建的表。

3.3 课程表字段的设置

在创建课程表时,需要仔细考虑每个字段的设置。课程表包含四个字段:课程号(Cno)、课程名(Cname)、先行课(Cpno)和学分(Credit)。每个字段的设置如下:

  1. 课程号(Cno):这是一个整数类型的字段,用于唯一标识每门课程。设置为主键(PRIMARY KEY),确保每门课程的编号唯一。
  2. 课程名(Cname):这是一个字符串类型的字段,用于存储课程的名称。使用 NVARCHAR(50) 类型,表示最多可以存储 50 个字符。
  3. 先行课(Cpno):这也是一个整数类型的字段,用于表示某门课程的先行课程。如果某门课程没有先行课程,该字段可以为空(NULL)。
  4. 学分(Credit):这是一个整数类型的字段,用于表示课程的学分。

3.4 数据类型与约束的使用

在 SQL Server 2019 中,数据类型和约束是确保数据完整性和一致性的关键工具。合理使用数据类型可以提高数据存储的效率,而约束则可以防止数据的错误输入。以下是一些常见的数据类型和约束:

  1. 数据类型
    • INT:用于存储整数。
    • NVARCHAR(n):用于存储可变长度的 Unicode 字符串,其中 n 表示最大字符数。
    • CHAR(n):用于存储固定长度的非 Unicode 字符串,其中 n 表示字符数。
    • DATE:用于存储日期值。
    • FLOAT:用于存储浮点数。
  2. 约束
    • 主键(PRIMARY KEY):用于唯一标识表中的每一行记录。一个表只能有一个主键,且主键字段不能包含重复值或空值。
    • 外键(FOREIGN KEY):用于建立表之间的关联关系。外键字段的值必须存在于另一个表的主键字段中。
    • 唯一约束(UNIQUE):用于确保某个字段或字段组合中的值是唯一的。
    • 检查约束(CHECK):用于限制字段的取值范围。例如,可以设置年龄字段的值必须大于 0。
    • 默认值(DEFAULT):用于在插入新记录时,如果未指定某个字段的值,则使用默认值。

通过合理设置数据类型和约束,可以确保数据的准确性和一致性,提高数据库的可靠性和性能。希望这些内容能够帮助初学者更好地理解和应用 SQL Server 2019 中的数据类型和约束。

四、课程表建表示例

4.1 确定课程表结构

在创建课程表之前,我们需要明确表的结构和各个字段的含义。课程表(Courses)是“学生-课程”模式(S-T模式)中的一个重要组成部分,它记录了每门课程的基本信息。根据《数据库系统概论(第5版)》第79页至第80页的描述,课程表包含以下字段:

  • 课程号(Cno):这是一个整数类型的字段,用于唯一标识每门课程。设置为主键(PRIMARY KEY),确保每门课程的编号唯一。
  • 课程名(Cname):这是一个字符串类型的字段,用于存储课程的名称。使用 NVARCHAR(50) 类型,表示最多可以存储 50 个字符。
  • 先行课(Cpno):这也是一个整数类型的字段,用于表示某门课程的先行课程。如果某门课程没有先行课程,该字段可以为空(NULL)。
  • 学分(Credit):这是一个整数类型的字段,用于表示课程的学分。

确定了这些字段之后,我们就可以开始编写创建课程表的 SQL 语句了。

4.2 创建课程表SQL语句解析

创建课程表的 SQL 语句如下所示:

CREATE TABLE Courses (
    Cno INT PRIMARY KEY,
    Cname NVARCHAR(50),
    Cpno INT,
    Credit INT
);

让我们逐行解析这条 SQL 语句:

  • CREATE TABLE Courses:这行代码表示我们要创建一个名为 Courses 的表。
  • Cno INT PRIMARY KEY:这行代码定义了一个名为 Cno 的字段,其数据类型为整数(INT),并且设置为主键(PRIMARY KEY)。主键的作用是确保每条记录的唯一性,不允许重复和空值。
  • Cname NVARCHAR(50):这行代码定义了一个名为 Cname 的字段,其数据类型为可变长度的 Unicode 字符串(NVARCHAR),最大长度为 50 个字符。
  • Cpno INT:这行代码定义了一个名为 Cpno 的字段,其数据类型为整数(INT)。这个字段用于表示某门课程的先行课程,可以为空(NULL)。
  • Credit INT:这行代码定义了一个名为 Credit 的字段,其数据类型为整数(INT),用于表示课程的学分。

通过这条 SQL 语句,我们可以创建一个结构清晰、功能完善的课程表。

4.3 执行SQL语句创建课程表

接下来,我们需要在 SQL Server Management Studio (SSMS) 中执行这条 SQL 语句,以创建课程表。具体步骤如下:

  1. 启动 SSMS:在开始菜单中找到 SQL Server Management Studio 并启动它。
  2. 连接到服务器:在“连接到服务器”对话框中,选择“数据库引擎”作为服务器类型,输入服务器名称(例如 localhost.\SQLEXPRESS),选择身份验证模式(推荐使用“Windows 身份验证”),然后点击“连接”按钮。
  3. 新建查询:在 SSMS 中,右键点击“数据库”节点,选择“新建查询”来打开查询编辑器。
  4. 编写并执行 SQL 语句:将前面编写的创建课程表的 SQL 语句粘贴到查询编辑器中,然后点击“执行”按钮运行查询。如果一切顺利,您将在对象资源管理器中看到新创建的 Courses 表。

4.4 课程表数据录入与查询

创建好课程表之后,我们可以通过 SQL 语句向表中插入数据,并进行查询操作。以下是一些示例:

插入数据

INSERT INTO Courses (Cno, Cname, Cpno, Credit)
VALUES (101, N'数据库原理', NULL, 4);

INSERT INTO Courses (Cno, Cname, Cpno, Credit)
VALUES (102, N'数据结构', NULL, 4);

INSERT INTO Courses (Cno, Cname, Cpno, Credit)
VALUES (103, N'操作系统', 101, 4);

这些 SQL 语句分别向 Courses 表中插入了三条记录。第一条记录表示课程号为 101 的“数据库原理”课程,没有先行课,学分为 4。第二条记录表示课程号为 102 的“数据结构”课程,也没有先行课,学分为 4。第三条记录表示课程号为 103 的“操作系统”课程,其先行课为 101,学分为 4。

查询数据

SELECT * FROM Courses;

这条 SQL 语句用于查询 Courses 表中的所有记录。执行后,您将看到表中所有的课程信息。

通过这些操作,您可以轻松地管理和查询课程表中的数据,为后续的数据库操作打下坚实的基础。希望这些内容能够帮助初学者更好地理解和应用 SQL Server 2019 中的数据操作。

五、S-T模式数据库的维护与管理

5.1 数据表维护的基本操作

在 SQL Server 2019 中,数据表的维护是确保数据库健康运行的重要环节。数据表维护包括数据的更新、删除、修改等操作,这些操作不仅能够保持数据的准确性,还能提高数据库的性能。以下是一些基本的数据表维护操作:

  1. 更新数据
    更新数据是数据库管理中最常见的操作之一。通过 UPDATE 语句,可以修改表中的特定记录。例如,如果我们需要更新课程表中某门课程的学分,可以使用以下 SQL 语句:
    UPDATE Courses
    SET Credit = 5
    WHERE Cno = 101;
    

    这条语句将课程号为 101 的课程学分从 4 修改为 5。
  2. 删除数据
    删除数据是另一种常见的操作,用于移除不再需要的记录。通过 DELETE 语句,可以删除表中的特定记录。例如,如果我们需要删除课程号为 102 的课程,可以使用以下 SQL 语句:
    DELETE FROM Courses
    WHERE Cno = 102;
    

    这条语句将删除课程号为 102 的课程记录。
  3. 插入数据
    插入数据是向表中添加新记录的操作。通过 INSERT 语句,可以向表中添加新的记录。例如,如果我们需要添加一门新的课程,可以使用以下 SQL 语句:
    INSERT INTO Courses (Cno, Cname, Cpno, Credit)
    VALUES (104, N'计算机网络', NULL, 4);
    

    这条语句将添加一门新的课程,课程号为 104,课程名为“计算机网络”,没有先行课,学分为 4。
  4. 查询数据
    查询数据是获取表中特定记录的操作。通过 SELECT 语句,可以查询表中的数据。例如,如果我们需要查询所有学分为 4 的课程,可以使用以下 SQL 语句:
    SELECT * FROM Courses
    WHERE Credit = 4;
    

    这条语句将返回所有学分为 4 的课程记录。

通过这些基本的数据表维护操作,我们可以确保数据库中的数据始终保持最新和准确,从而提高数据的可用性和可靠性。

5.2 数据备份与恢复

数据备份与恢复是数据库管理中不可或缺的一部分,它们能够保护数据免受意外损失,确保数据的安全性和完整性。在 SQL Server 2019 中,数据备份与恢复操作相对简单,但需要谨慎执行。以下是一些基本的数据备份与恢复方法:

  1. 数据备份
    数据备份是将数据库中的数据复制到另一个位置,以便在数据丢失或损坏时进行恢复。通过 SQL Server Management Studio (SSMS),可以轻松地进行数据备份。具体步骤如下:
    • 启动 SSMS:在开始菜单中找到 SQL Server Management Studio 并启动它。
    • 连接到服务器:在“连接到服务器”对话框中,选择“数据库引擎”作为服务器类型,输入服务器名称(例如 localhost.\SQLEXPRESS),选择身份验证模式(推荐使用“Windows 身份验证”),然后点击“连接”按钮。
    • 选择数据库:在对象资源管理器中,展开“数据库”节点,右键点击需要备份的数据库(例如 StudentCourseDB),选择“任务” -> “备份”。
    • 设置备份选项:在“备份数据库”对话框中,选择备份类型(例如“完整”、“差异”或“事务日志”),设置备份文件的保存位置和文件名,然后点击“确定”按钮开始备份。
  2. 数据恢复
    数据恢复是在数据丢失或损坏时,将备份的数据恢复到数据库中的操作。通过 SSMS,可以轻松地进行数据恢复。具体步骤如下:
    • 启动 SSMS:在开始菜单中找到 SQL Server Management Studio 并启动它。
    • 连接到服务器:在“连接到服务器”对话框中,选择“数据库引擎”作为服务器类型,输入服务器名称(例如 localhost.\SQLEXPRESS),选择身份验证模式(推荐使用“Windows 身份验证”),然后点击“连接”按钮。
    • 选择数据库:在对象资源管理器中,展开“数据库”节点,右键点击需要恢复的数据库(例如 StudentCourseDB),选择“任务” -> “还原” -> “数据库”。
    • 设置恢复选项:在“还原数据库”对话框中,选择备份文件的位置,设置恢复选项(例如“覆盖现有数据库”),然后点击“确定”按钮开始恢复。

通过定期进行数据备份和及时的数据恢复,可以有效保护数据库中的数据,确保业务的连续性和稳定性。

5.3 性能优化

性能优化是提高数据库运行效率的关键步骤。在 SQL Server 2019 中,性能优化可以通过多种方式进行,包括索引优化、查询优化和硬件优化。以下是一些常见的性能优化方法:

  1. 索引优化
    索引是提高查询性能的有效手段。通过在经常用于查询的字段上创建索引,可以显著加快查询速度。例如,如果我们经常查询课程表中的课程名,可以在 Cname 字段上创建索引:
    CREATE INDEX idx_Cname ON Courses (Cname);
    

    这条语句将在 Cname 字段上创建一个索引,从而提高查询性能。
  2. 查询优化
    查询优化是通过改进 SQL 语句的编写方式来提高查询性能。例如,避免使用 SELECT * 语句,而是只选择需要的字段,可以减少数据传输量,提高查询速度。另外,使用适当的连接类型(如内连接、外连接)也可以提高查询性能。
  3. 硬件优化
    硬件优化是通过升级硬件设备来提高数据库的性能。例如,增加内存、使用更快的硬盘和更强大的处理器,都可以显著提高数据库的运行效率。

通过这些性能优化方法,可以确保 SQL Server 2019 在处理大量数据时依然保持高效的性能,满足业务需求。

5.4 安全性与权限设置

安全性与权限设置是保护数据库免受未授权访问和恶意攻击的重要措施。在 SQL Server 2019 中,可以通过多种方式来确保数据库的安全性。以下是一些常见的安全性与权限设置方法:

  1. 用户管理
    用户管理是确保数据库安全的基础。通过创建不同的用户账户,并为每个用户分配适当的权限,可以控制用户对数据库的访问。例如,可以创建一个只读用户,用于查询数据,而不能修改数据:
    CREATE LOGIN readonly_user WITH PASSWORD = 'password';
    CREATE USER readonly_user FOR LOGIN readonly_user;
    GRANT SELECT ON Courses TO readonly_user;
    

    这些语句创建了一个名为 readonly_user 的用户,并授予其对 Courses 表的查询权限。
  2. 角色管理
    角色管理是通过创建角色并将权限分配给角色,来简化用户权限管理。例如,可以创建一个管理员角色,并授予其对所有表的完全控制权限:
    CREATE ROLE db_admin;
    GRANT CONTROL ON DATABASE::StudentCourseDB TO db_admin;
    EXEC sp_addrolemember 'db_admin', 'admin_user';
    

    这些语句创建了一个名为 db_admin 的角色,并将其分配给用户 admin_user
  3. 加密
    加密是保护敏感数据的重要手段。通过启用透明数据加密(TDE),可以对整个数据库进行加密,确保数据在存储和传输过程中不被窃取:
    USE master;
    CREATE CERTIFICATE TDE_Certificate WITH SUBJECT = 'TDE Certificate';
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_128
    ENCRYPTION BY SERVER CERTIFICATE TDE_Certificate;
    ALTER DATABASE StudentCourseDB
    SET ENCRYPTION ON;
    

    这些语句创建了一个证书和数据库加密密钥,并启用对 StudentCourseDB 数据库的加密。

通过这些安全性与权限设置方法,可以确保 SQL Server 2019 中的数据安全,防止未授权访问和数据泄露。希望这些内容能够帮助初学者更好地理解和应用 SQL Server 2019 中的安全性与权限设置。

六、总结

本文详细介绍了如何使用 SQL Server 2019 进行数据库操作,包括安装、创建数据库、建立数据表以及维护和管理数据库。通过《数据库系统概论(第5版)》第79页至第80页的内容,我们以“学生-课程”模式(S-T模式)为例,逐步讲解了如何创建和管理课程表。文章涵盖了从安装 SQL Server 2019 到数据备份与恢复的全过程,旨在为初学者提供一个全面且实用的教程。通过合理设置数据类型和约束,以及进行性能优化和安全性设置,读者可以更好地理解和应用 SQL Server 2019,为数据库管理打下坚实的基础。希望这些内容能够帮助初学者快速上手 SQL Server 2019,提升数据库操作技能。