SQL SERVER专题实验1 SSMS使用基础及实验数据准备

任务描述

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

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

系统数据库

用户成功安装SQL Server数据库后,打开该数据库时会发现系统会自动建立master、msdb、tempdb、model4个数据库,这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数据库属于哪一种数据库

   A、层次数据库

   B、网络数据库

√ C、关系数据库

   D、非关系数据库

2.SQL Server数据库是由哪家公司创建的

A、Microsoft

   B、Oracle

   C、Google

   D、Facebook

3.tempdb数据库的作用

   A、保存登入账户等系统信息

√ B、存储临时对象

   C、作为模板数据库供系统使用

   D、用于代理服务

4.是否可以在tempdb中创建应用系统所需的用户表

   A、可以,因为tempdb数据库下是可以创建表的。

√ B、不可以,因为系统重启后tempdb数据库的数据会被清空。

5.如果你有多个数据库需要创建,它们都有若干相同的数据表和用户定义数据类型。下面哪些做法是可行的?

√ A、在系统数据库model中创建这些相同的数据表和用户定义数据类型

√ B、在第一个用户数据库建成后,其他用户数据库复制这些表和用户定义数据类型

√ C、在每一个数据库中重复这些基本表和用户定义数据类型的创建操作

√ D、上面几种方法都可以

 

本关任务

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

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 Server2012(11.x)及更高版本

指定应更改当前使用的数据库。

MODIFY NAME =new_database_name:使用指定的名称

new_database_name 重命名数据库。

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

实训任务

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

学生表: Student 

caf375459a7d491c8cbd9569ff466c81.png

课程表:Course 

e25599f75eb349b5a7de0f9e64243140.png

教师表:Teacher 

486f8e9aabee4e70bda9a4c54996602e.png

选课表:SC 

56ca02d96c2c433b809c1d1b4e805ecd.png

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

学生表数据 

88617588f54a4087a9a06d6d130c9046.png

课程表数据 

7a4c0f64f53a43c8be35e9c6b73c1e1d.png

教师表数据 

2e33a9fc4c65422cb8bd2457ca0f6021.png

选课表数据

b5325f5d3ef24aecbcd053751544d257.png

3.基于SSMS向导方式导出脚本文件JX.sql

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

特别提醒!!!

1.数据库名、基本表名和数据一定要和要求全部一致;

2.评测之前,请检查确保CREATE DATABASE JX和USE JX;

3.若“评测”结果异常,确定是中文字符乱码,请修改创建表T-SQL语句为: ``CREATE DATABASE JX COLLATE Chinese_PRC_CI_AS

测试说明

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

    9974f5a906f04ad7a4ce5d6112857b06.png

 

SET NOCOUNT ON
GO
DROP DATABASE IF EXISTS JX
GO
CREATE DATABASE JX COLLATE Chinese_PRC_CI_AS
GO
---------BEGIN---------
USE [JX]
GO
/****** Object:  Table [dbo].[Teacher]    Script Date: 03/30/2023 17:28:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Teacher](
    [Tno] [int] NOT NULL,
    [Tname] [char](10) NULL,
    [Tsex] [char](2) NULL,
    [Tphone] [nvarchar](12) NULL,
    [Tdept] [varchar](20) NULL,
    [Taddr] [varchar](30) NULL,
    [Tprof] [varchar](10) NULL,
    [Tpay] [decimal](8, 2) NULL,
    [Tweight] [smallint] NULL,
 CONSTRAINT [PK_Teacher] PRIMARY KEY CLUSTERED 
(
    [Tno] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
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)
/****** Object:  Table [dbo].[Student]    Script Date: 03/30/2023 17:28:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING 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,
 CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED 
(
    [Sno] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21001', N'张睿智', N'男', CAST(0x91800000 AS SmallDateTime), N'计算机', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21002', N'李强', N'男', CAST(0x8F480000 AS SmallDateTime), N'计算机', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21003', N'王士文', N'男', CAST(0x90340000 AS SmallDateTime), N'外国语', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21004', N'欧阳开元', N'男', CAST(0x92D20000 AS SmallDateTime), N'电子工程', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21005', N'张明明', N'女', CAST(0x91330000 AS SmallDateTime), N'电子工程', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21006', N'陈东升', N'男', CAST(0x8EAA0000 AS SmallDateTime), N'计算机', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21007', N'胡晓明', N'女', CAST(0x931C0000 AS SmallDateTime), N'电子工程', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21008', N'乔羽', N'女', CAST(0x8DD60000 AS SmallDateTime), N'外国语', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21009', N'刘文红', N'女', CAST(0x92F50000 AS SmallDateTime), N'外国语', NULL)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sbirth], [Sdept], [Sparent]) VALUES (N'21010', N'高叔阳', N'男', CAST(0x8EED0000 AS SmallDateTime), N'计算机', NULL)
/****** Object:  Table [dbo].[SC]    Script Date: 03/30/2023 17:28:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SC](
    [Sno] [char](5) NULL,
    [Cno] [char](3) NULL,
    [Tno] [char](5) NULL,
    [Grade] [decimal](5, 1) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
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)))
/****** Object:  Table [dbo].[Course]    Script Date: 03/30/2023 17:28:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Course](
    [Cno] [char](3) NOT NULL,
    [Cname] [varchar](20) NULL,
    [Cpno] [varchar](3) NULL,
    [Credit] [decimal](3, 1) NULL,
 CONSTRAINT [PK_Course] PRIMARY KEY CLUSTERED 
(
    [Cno] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Credit]) VALUES (N'1  ', N'数据库', N'5', CAST(4.0 AS Decimal(3, 1)))
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)))
---------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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值