SSMS使用基础及实验数据准备

第1关:初识关系数据库SQL Server 2019

任务描述

根据关系数据库SQL SERVER系统数据库和用户数据库的介绍,完成相关选择题。

SQL SERVER的系统数据库和用户数据库

系统数据库

用户成功安装 SQL Server数据库后,打开该数据库时会发现系统会自动建立 master 、 msdb 、 tempdb 、 model 4 个数据库,这 4 个数据库称为系统数据库,用来存储 SQL Server 系统运行时会用到的相关信息。

master

master 数据库是 SQL Server 中最重要的数据库,记录了 SQL Server 系统中的所有系统信息,包括登入账户、系统配置和设置、服务器中数据库的名称、相关信息和这些数据库文件的位置,以及 SQL Server 初始化信息等。

tempdb

tempdb 数据库是存在于 SQL Server 会话期间的一个临时性的数据库。一旦关闭 SQL Server ,tempdb 数据库保存的内容将自动消失。重新启动 SQL Server 时,系统将重新创建新的,且内容为空的 tempdb 数据库。

tempdb 数据保存的内容主要包括:显示创建临时对象,例如表、存储过程、表变量或游标;所有版本的更新记录; SQL Server 创建的内部工作表;创建或重新生成索引时,临时排序的结果。

model

model 系统数据库是一个模板数据库,可用作建立数据库的模板。它包含了建立新数据库时,所需的基本对象,如系统表、登录信息等。 model 系统数据库是 tempdb 数据库的基础,由于每次启动 SQL Server 时都会创建 tempdb 。因此 model 数据库必须始终存在于 SQL Server 系统中,用户不能删除该系统数据库。

model 数据库中的所有用户定义对象都会复制到所有新创建的数据库中。可以向 model 数据库中添加任何对象(例如表、视图、存储过程、数据类型等),以将这些对象包括到所有新建数据库中。

msdb

msdb 系统数据库用于提供 SQL Server 代理服务,如果不使用代理服务,就不会使用到该系统数据库。

SQL Server 代理服务是 SQL Server 中的一个 Windows 服务,作用是代理执行所有 SQL 的自动化任务,以及数据库事务性复制等无人值守任务。

用户数据库

用户数据库是指除系统数据库外,用户根据应用的需求自行创建的数据库。

测试说明

本关主要介绍的是概念性知识,因此测试以选择题的形式对本关介绍的知识进行测试。

开始你的任务吧,祝你成功!

  • 1、SQL Server数据库属于哪一种数据库(C)

    A、层次数据库        B、网络数据库
    C、关系数据库        D、非关系数据库
  • 2、SQL Server数据库是由哪家公司创建的(A)

    A、Microsoft           B、Oracle
    C、Google             D、Facebook
  • 3、tempdb数据库的作用(B)

    A、保存登入账户等系统信息
    B、存储临时对象
    C、作为模板数据库供系统使用
    D、用于代理服务
  • 4、是否可以在tempdb中创建应用系统所需的用户表?(B)

    A、可以,因为tempdb数据库下是可以创建表的。
    B、不可以,因为系统重启后tempdb数据库的数据会被清空。
  • 5、如果你有多个数据库需要创建,它们都有若干相同的数据表和用户定义数据类型,下面哪些做法是可行的?(ABCD)

    A、在系统数据库model中创建这些相同的数据表和用户定义数据类型
    B、在第一个用户数据库建成后,其它用户数据库复制这些表和用户定义数据类型
    C、在每一个数据库中重复这些基本表和用户定义数据类型的创建操作
    D、上面几种方法都可以

第2关:基于SSMS创建和修改用户数据库

本关任务

本地完数据库创建和数据录入后,在平台上评测学习效果

  1. 安装SQL SERVER数据库;
  2. 基于Server Management Studio(SSMS)的向导方式创建数据库及其基本表;
  3. 按要求基于SSMS向导方式录入基本表数据;
  4. 导出数据库架构及数据脚本文件。

安装SQL SERVER

安装SQL SERVER 2019

安装SQL Server Management Studio(SSMS)客户端

详细内容请参考: 1-2 SQL SERVER的安装

创建数据库的两种方法

方法1:基于SSMS的向导方法

请在你本地SQL SERVER服务器上执行该操作。 关于SSMS的详细使用方法请参考: 1-3 SSMS的初步使用和实验数据准备

方法2:使用T-SQL命令

  1. T-SQL是使用 Microsoft SQL 产品和服务的关键所在。 与 SQL 数据库通信的所有工具和应用程序均通过发送 T-SQL 命令使用这些产品和服务。
  2. 使用T-SQL的Microsoft 工具包含SQL Server Management Studio (SSMS)、Azure Data Studio、SQL Server Data Tools (SSDT)和sqlcmd。
  3. 在 SQL Server 中,该语句创建新数据库和使用的文件及其文件组。 它还可用于创建数据库快照,或附加数据库文件以从其他数据库的分离文件创建数据库。

语法如下:

 
  1. CREATE DATABASE database_name
  2. [ CONTAINMENT = { NONE | PARTIAL } ]
  3. [ ON
  4. [ PRIMARY ] <filespec> [ ,...n ]
  5. [ , <filegroup> [ ,...n ] ]
  6. [ LOG ON <filespec> [ ,...n ] ]
  7. ]
  8. [ COLLATE collation_name ]
  9. [ WITH <option> [,...n ] ]
  10. [;]

主要参数说明如下:

  • database_name :新数据库的名称。在SQL Server实例中必须唯一,并且必须符合标识符规则。
    • 若不需要指定数据文件名称,SQL Server会使用 database_name 同时作为 logical_file_name 和 os_file_name。 默认路径从注册表中获得。
    • 可以使用 Management Studio 中的“服务器属性”(“数据库设置”页)更改默认路径。 更改默认路径要求重新启动 SQL Server。
  • COLLATE collation_name:指定数据库的默认排序规则。
    • 排序规则名称既可以是 Windows 排序规则名称,也可以是 SQL 排序规则名称。 如果没有指定排序规则,则将 SQL Server 实例的默认排序规则分配为数据库的排序规则。 不能对数据库快照指定排序规则名称。
    • 若使用中文出现乱码,可通过创建数据库时指定排序规则或修改数据库的排序规则为Chinese_PRC_CI_AS解决。

修改数据库的两种方法

方法1:基于SSMS的向导方法

详见:【1-3 SSMS的初步使用和实验数据准备】

方法2:使用T-SQL语句

基本语法如下:

 
  1. ALTER DATABASE { database_name | CURRENT }
  2. {
  3. MODIFY NAME = new_database_name
  4. | COLLATE collation_name
  5. | <file_and_filegroup_options>
  6. | SET <option_spec> [ ,...n ] [ WITH <termination> ]
  7. }
  8. [;]
  • 适用于:SQL Server 2012 (11.x) 及更高版本。
  • 指定应更改当前使用的数据库。

  • MODIFY NAME =new_database_name:使用指定的名称 new_database_name 重命名数据库。

  • COLLATE collation_name:指定数据库的排序规则。

实训任务

  1. 基于本地SQL SERVER服务器的SSMS创建数据库"JX"及其4个数据表,结构分别如下:
    • 学生表: Student

    • 课程表:Course

    • 教师表:Teacher

    • 选课表:SC

  2. 基于SSMS向导方式,严格按照如下内容录入4个表的数据:
    • 学生表数据

    • 课程表数据

    • 教师表数据

    • 选课表数据

  3. 基于SSMS向导方式导出脚本文件JX.sql
  4. 复制脚本文件内容到step2.sql文件中的“------BEGIN--------”和“-----END----”之间(注意:不要修改其它内容),进行“评测”检查该关卡是否通过。

特别提醒 !!!

  1. 数据库名、基本表名和数据一定要和要求全部一致;
  2. 评测之前,请检查确保CREATE DATABASE JXUSE JX
  3. 若“评测”结果异常,确定是中文字符乱码,请修改创建表T-SQL语句为: ``CREATE DATABASE JX COLLATE Chinese_PRC_CI_AS

测试说明

  • 测试过程:

    • 平台将运行你补全的 step2.sql 文件,得到数据库基本表结构和数据;
    • 将结构和数据与答案比较,判断程序是否正确。
  • 如果操作正确,你将得到如下的结果:


开始你的任务吧,祝你成功!

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Student](
    [Sno] [char](5) NOT NULL,
    [Sname] [varchar](10) NULL,
    [Ssex] [char](2) NULL,
    [Sbirth] [smalldatetime] NULL,
    [Sdept] [varchar](20) NULL,
    [Sparent] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Teacher]    Script Date: 2023/2/23 13:47:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Teacher](
    [Tno] [int] NOT NULL,
    [Tname] [char](10) NULL,
    [Tsex] [char](2) NULL,
    [Tphone] [nchar](12) NULL,
    [Tdept] [nchar](20) NULL,
    [Taddr] [nchar](30) NULL,
    [Tprof] [nchar](10) NULL,
    [Tpay] [decimal](8, 2) NULL,
    [Tweight] [smallint] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'1  ', N'数据库                 ', N'5  ', 4.0)
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'2  ', N'数学                  ', NULL, CAST(2.0 AS Decimal(3, 1)))
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'3  ', N'信息系统               ', N'1  ', CAST(4.0 AS Decimal(3, 1)))
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'4  ', N'操作系统                ', N'6  ', CAST(3.0 AS Decimal(3, 1)))
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'5  ', N'数据结构                ', N'7  ', CAST(4.0 AS Decimal(3, 1)))
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'6  ', N'数据处理                ', NULL, CAST(2.0 AS Decimal(3, 1)))
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'7  ', N'PASCAL语言            ', N'6  ', CAST(4.0 AS Decimal(3, 1)))
GO
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21001', N'2  ', N'4  ', CAST(67.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21001', N'3  ', N'5  ', CAST(78.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21001', N'5  ', N'2  ', CAST(89.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21002', N'3  ', N'5  ', CAST(90.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21002', N'4  ', N'1  ', CAST(98.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21004', N'3  ', N'5  ', CAST(89.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21004', N'4  ', N'1  ', CAST(92.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21004', N'6  ', N'3  ', CAST(58.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21004', N'7  ', N'4  ', CAST(79.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21008', N'1  ', N'3  ', CAST(78.0 AS Decimal(5, 1)))
INSERT [dbo].[SC] ([Sno], [Cno], [Tno], [Grade]) VALUES (N'21009', N'1  ', N'3  ', CAST(70.0 AS Decimal(5, 1)))
GO
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21001', N'张睿智', N'男', CAST(N'2001-12-25T00:00:00' AS SmallDateTime), N'计算机', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21002', N'李强', N'男', CAST(N'2000-06-05T00:00:00' AS SmallDateTime), N'计算机', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21003', N'王士文', N'男', CAST(N'2001-01-27T00:00:00' AS SmallDateTime), N'外国语', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21004', N'欧阳开元', N'男', CAST(N'2002-11-28T00:00:00' AS SmallDateTime), N'电子工程', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21005', N'张明明', N'女', CAST(N'2001-10-09T00:00:00' AS SmallDateTime), N'电子工程', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21006', N'陈东升', N'男', CAST(N'1999-12-30T00:00:00' AS SmallDateTime), N'计算机', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21007', N'胡晓明', N'女', CAST(N'2003-02-10T00:00:00' AS SmallDateTime), N'电子工程', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21008', N'乔羽', N'女', CAST(N'1999-06-01T00:00:00' AS SmallDateTime), N'外国语', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21009', N'刘文红', N'女', CAST(N'2003-01-02T00:00:00' AS SmallDateTime), N'外国语', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21010', N'高叔阳', N'男', CAST(N'2000-03-06T00:00:00' AS SmallDateTime), N'计算机', NULL)
GO
INSERT [dbo].[Teacher] ([Tno], [Tname], [Tsex], [Tphone], [Tdept], [Taddr], [Tprof], [Tpay], [Tweight]) VALUES (1, N'刘天明      ', N'男', N'13678133567 ', N'计算机                 ', N'机场南四路留专楼7-2-9                 ', N'教授        ', CAST(8978.35 AS Decimal(8, 2)), NULL)
INSERT [dbo].[Teacher] ([Tno], [Tname], [Tsex], [Tphone], [Tdept], [Taddr], [Tprof], [Tpay], [Tweight]) VALUES (2, N'王芳      ', N'女', N'13980280236 ', N'计算机                 ', N'保利中心C-2-901                   ', N'副教授       ', CAST(6756.78 AS Decimal(8, 2)), NULL)
INSERT [dbo].[Teacher] ([Tno], [Tname], [Tsex], [Tphone], [Tdept], [Taddr], [Tprof], [Tpay], [Tweight]) VALUES (3, N'李庆国    ', N'男', N'13580284788 ', N'外国语                 ', N'洗面桥横街35-4-05                  ', N'讲师        ', CAST(5749.00 AS Decimal(8, 2)), NULL)
INSERT [dbo].[Teacher] ([Tno], [Tname], [Tsex], [Tphone], [Tdept], [Taddr], [Tprof], [Tpay], [Tweight]) VALUES (4, N'曾书智    ', N'男', N'13789008099 ', N'电子工程                ', N'浆洗街12-2-201                   ', N'副教授       ', CAST(6545.60 AS Decimal(8, 2)), NULL)
INSERT [dbo].[Teacher] ([Tno], [Tname], [Tsex], [Tphone], [Tdept], [Taddr], [Tprof], [Tpay], [Tweight]) VALUES (5, N'杨晓燕    ', N'女', N'17385336700 ', N'外国语                 ', N'成都市双楠街15号                     ', N'副教授       ', CAST(6786.33 AS Decimal(8, 2)), NULL)
INSERT [dbo].[Teacher] ([Tno], [Tname], [Tsex], [Tphone], [Tdept], [Taddr], [Tprof], [Tpay], [Tweight]) VALUES (6, N'刘晓刚    ', N'男', N'18980027366 ', N'电子工程                ', N'成都花园12-4-6                    ', N'教授        ', CAST(6989.56 AS Decimal(8, 2)), NULL)
GO
---------END-----------
GO
---*******下面为评测代码,请勿删除***********
SELECT NAME FROM sys.databases WHERE name = 'JX'
SELECT NAME FROM sys.objects WHERE type = 'U' ORDER BY NAME
SELECT * FROM Student
SELECT * FROM Course
SELECT * FROM Teacher
SELECT * FROM SC
GO

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值