数据库第一次试验:数据库的建立与维护

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

1、熟练掌握和使用 SQL 语言、SQL Server 企业管理器创建数据库、表、索引和修改表结构。
2、熟练掌握使用 SQL 语言和 SQL Server 企业管理器向数据库输入数据、修改数据和删除数据等操作。

二、实验要求

1、创建数据库和查看数据库属性。
2、创建表、确定表的主码、外码和约束条件。
3、通过 SQL Server 企业管理器向数据库表输入数据。
4、对数据库表中的数据进行数据插入、删除和修改等操作。
5、查看和修改表结构,维护修改结构后的数据库表的数据。

三、实验原理

1、基本操作实验
建立学生课程数据库,在 SQL Server 企业管理器中实现。库中表结构为:
学生(学号,姓名,年龄,性别,所在系);
课程(课程号,课程名,先行课);
选课(学号,课程号,成绩)
(1) 建立数据库
启动 SQL Server,选择开始菜单中的 Microsoft SQL Server 下的“SQL Server Management Studio”,启动 SQL Server,如图 1.1 所示。
在这里插入图片描述

图 1.1

出现“连接到服务器”界面。如图 1.2 所示,如果以 Windows 身份登录,点击“连接”按钮,进入 SQL Server Management Studio 主界面,如图 12, 1.3 所示。
在这里插入图片描述

图 1.2

在这里插入图片描述

图 1.3

点击左边“对象资源管理器”树状控制栏的+/-号可以打开和关闭 SQL Server 组中的本地服务项目,在选中“数据库”后,单击鼠标右键,出现数据库的菜单,如图 1.4 所示。
在这里插入图片描述

图 1.4

点击“新建数据库”,出现新建数据库窗口,如图 1.5 所示。输入数据库名称:ST,点击“确定”按钮。
在这里插入图片描述

图 1.5

如图 1.6、1.7 所示,刷新后,可看见新建的用户数据库 ST。
在这里插入图片描述

图 1.6

在这里插入图片描述

图 1.7

(2)建立表
点击数据库 ST 前面的+号,打开数据库的各种属性,如图 1.8 所示。
在这里插入图片描述

图 1.8

选中用户数据库 ST 下的“表”,单击鼠标右键,出现表的菜单,如图 1.9 所示。
在这里插入图片描述

图 1.9

点击“新建表”,出现新建表窗口,定义列,如图 1.10 所示。
在这里插入图片描述

图 1.10

输入列名,数据类型,长度等信息之后,按键Ctrl+S,出现选择表名窗口。如图 1.11
所示,输入表名,点击“确定”按钮,将新建的表存盘。
在这里插入图片描述

图 1.11

选中表 Student,单击鼠标右键,选择“设计”,可以重新打开 Student 表的结构窗口,如图 1.12 所示。
在这里插入图片描述

图 1.12

如图 1.10 所示,在 Student 表的结构窗口中,设定属性“Sno”为主码,点击
图标后退出 Student 表的结构窗口。
步骤同上,分别按建立 Course 表和 SC 表,设定属性“Cno”为 Course 表的主码,属性“Sno,Cno”为 SC 表的主码,同时设定 Sno,Cno 为外码如图 1.13、1.14 所示。
在这里插入图片描述

图 1.13

在这里插入图片描述

图 1.14

(3) 录入数据
在每个表中录入 10 条以上数据(参考教材上的数据库),录入数据时注意数据的录入顺序,先在被参照关系中录入数据,再在参照关系中录入数据。录入、修改数据时,选中服务器,展开数据库文件夹,进一步展开指定的数据库。单击表文件夹,找到需要更新数据的基本表。
1)选中表 Student,单击鼠标右键,选择“编辑前 200 行”,进入 Student 表的数据录入窗口。在该对话框中,数据以表格形式组织,每个字段就是表中的一列,每条记录是表中的一行。需要数据插入时,就在最后一条记录后输入一条记录。当鼠标点击其他行时,输入的记录会自动保存在表中。如图 1.15,1.16 所示。
在这里插入图片描述

图 1.15

在这里插入图片描述

图 1.16

2)需要修改记录时,直接对表中已有记录的数据进行改动,用新值替换原来值。
3)需要删除记录时,先用鼠标单击要删除行的左边灰色方块,使该记录成为当前行,然后按键。为了防止误操作,SQL Server 将弹出一个警告框,要求用户确认删除操作,单击“确认”按钮即可删除记录。也可通过先选中一行或多行记录,然后再按键的方法一次删除多条记录。
4)在表中单击鼠标右键时,会弹出一菜单,选择菜单项可执行相应的操作,如剪切、复制等操作。
5) 采用同样的方法录入 Course 表和 SC 表中的数据。
(3) 修改数据库
在 Course 表中添加一个授课教师列,列名为 Tname,类型为 varchar(8)
录入数据后,将表关闭。在 Microsoft SQL Server Management Studio 左侧的“对象资源管理器”下找到表 Course,单击鼠标右键,选择“设计”。在打开的窗口中添加列名为Tname,类型为 varchar(8)授课教师列,允许 Null 值,并点击保存。修改完成后的表Course如图 1.17 所示。
在这里插入图片描述

图 1.17

2、提高操作实验
(1)建立图书数据库,在 SQL Server 企业管理器中实现。库中表结构为:
图书(书号,类别,出版社,作者,书名,定价);
读者(编号,姓名,单位,性别,电话);
借阅(书号,读者编号,借阅日期)
要求:1)建库、建表和建立表间联系。
2)选择合适的数据类型。
3)定义必要的索引、列级约束和表级约束。
4) 通过企业管理器实现对图书数据库的数据增加、数据删除和数据修改操作。
要求每个表中各有 10 条以上的记录。
(2)将自设计的数据库、库中的表、索引和约束用 SQL 语句表达,并通过企业管理器或查询分析器实现建库、建表、建立表间联系和建立必要的索引、列级约束和表级约束的操作。

四、实验仪器

(1)硬件条件:个人计算机。
(2)软件条件:Windows; MS SQL Server。

五、实验步骤

(1)先按照实验方法中的要求,在老师指导下完成基本操作实验,即建立学生课程数
据库并修改。
(2)然后按照实验方法中的要求,独立完成提高操作实验。
实验一第一部分操作步骤如实验原理部分所示(已将图片更改为自己实验步骤的截图)
实验一第二部分:
1.建立librarydb
在这里插入图片描述

2.新建表Book,Reader和BORROW,并分别对其进行设计
在这里插入图片描述

Book
在这里插入图片描述

Reader
在这里插入图片描述

BORROW
3.在表BORROW建立外键,操作结果如下图所示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)

USE [master]
GO
/****** Object:  Database [ST]    Script Date: 2021-03-27 10:25:06 ******/
CREATE DATABASE [ST]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'ST', FILENAME = N'E:\SQL\SQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\ST.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'ST_log', FILENAME = N'E:\SQL\SQL\MSSQL15.MSSQLSERVER\MSSQL\DATA\ST_log.ldf' , SIZE = 4224KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
 WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO
ALTER DATABASE [ST] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [ST].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [ST] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [ST] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [ST] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [ST] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [ST] SET ARITHABORT OFF 
GO
ALTER DATABASE [ST] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [ST] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [ST] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [ST] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [ST] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [ST] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [ST] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [ST] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [ST] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [ST] SET  DISABLE_BROKER 
GO
ALTER DATABASE [ST] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [ST] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [ST] SET TRUSTWORTHY OFF 
GO
ALTER DATABASE [ST] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO
ALTER DATABASE [ST] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [ST] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [ST] SET HONOR_BROKER_PRIORITY OFF 
GO
ALTER DATABASE [ST] SET RECOVERY SIMPLE 
GO
ALTER DATABASE [ST] SET  MULTI_USER 
GO
ALTER DATABASE [ST] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [ST] SET DB_CHAINING OFF 
GO
ALTER DATABASE [ST] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO
ALTER DATABASE [ST] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
ALTER DATABASE [ST] SET DELAYED_DURABILITY = DISABLED 
GO
EXEC sys.sp_db_vardecimal_storage_format N'ST', N'ON'
GO
ALTER DATABASE [ST] SET QUERY_STORE = OFF
GO
USE [ST]
GO
/****** Object:  Table [dbo].[Course]    Script Date: 2021-03-27 10:25:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Course](
	[Cno] [nchar](10) NOT NULL,
	[Cname] [nchar](40) NULL,
	[Cpno] [nchar](10) NULL,
	[Ccredit] [smallint] NULL,
	[Tname] [varchar](8) 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, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SC]    Script Date: 2021-03-27 10:25:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SC](
	[Sno] [nchar](10) NOT NULL,
	[Cno] [nchar](10) NOT NULL,
	[Grade] [float] NULL,
 CONSTRAINT [PK_SC] PRIMARY KEY CLUSTERED 
(
	[Sno] ASC,
	[Cno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Student]    Script Date: 2021-03-27 10:25:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Student](
	[Sno] [nchar](10) NOT NULL,
	[Sname] [nchar](20) NULL,
	[Ssex] [nchar](10) NULL,
	[Sage] [smallint] NULL,
	[Sdep] [nchar](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, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'001       ', N'Math                                    ', NULL, 3, N'Mike')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'002       ', N'English                                 ', NULL, 3, N'Alpha')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'005       ', N'DiscreteMath                            ', N'001       ', 2, N'Beta')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'006       ', N'Probabilitytheory                       ', N'001       ', 1, N'Charlie')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'120       ', N'C                                       ', NULL, 3, N'Delta')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'121       ', N'C++                                     ', N'120       ', 4, N'Alpha')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'123       ', N'OS                                      ', N'121       ', 4, N'Bravo')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'124       ', N'DataStructure                           ', N'121       ', 5, N'Charlie')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'126       ', N'DB                                      ', N'124       ', 3, N'Detla')
INSERT [dbo].[Course] ([Cno], [Cname], [Cpno], [Ccredit], [Tname]) VALUES (N'127       ', N'Linux                                   ', N'124       ', 2, N'Beta')
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'001       ', N'001       ', 90)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'001       ', N'120       ', 97)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'002       ', N'001       ', 95)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15121     ', N'120       ', 70)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15121     ', N'121       ', 80)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15121     ', N'123       ', 90)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15121     ', N'124       ', 95)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15121     ', N'126       ', 90)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15122     ', N'120       ', 85)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15122     ', N'121       ', 80)
INSERT [dbo].[SC] ([Sno], [Cno], [Grade]) VALUES (N'15122     ', N'123       ', 95)
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'001       ', N'王明                  ', N'男         ', 19, N'IS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'002       ', N'张三                  ', N'男         ', 19, N'CS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15121     ', N'李勇                  ', N'男         ', 20, N'CS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15122     ', N'刘晨                  ', N'女         ', 19, N'CS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15123     ', N'张敏                  ', N'女         ', 18, N'MA                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15125     ', N'张立                  ', N'男         ', 18, N'IS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15126     ', N'王晶晶                 ', N'女         ', 17, N'MA                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15127     ', N'欧阳海                 ', N'男         ', 18, N'IS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15128     ', N'欧阳夏丹                ', N'女         ', 20, N'CS                  ')
INSERT [dbo].[Student] ([Sno], [Sname], [Ssex], [Sage], [Sdep]) VALUES (N'15129     ', N'王力                  ', N'男         ', 19, N'CS                  ')
ALTER TABLE [dbo].[SC]  WITH CHECK ADD  CONSTRAINT [FK_SC_Course] FOREIGN KEY([Cno])
REFERENCES [dbo].[Course] ([Cno])
GO
ALTER TABLE [dbo].[SC] CHECK CONSTRAINT [FK_SC_Course]
GO
ALTER TABLE [dbo].[SC]  WITH CHECK ADD  CONSTRAINT [FK_SC_Student] FOREIGN KEY([Sno])
REFERENCES [dbo].[Student] ([Sno])
GO
ALTER TABLE [dbo].[SC] CHECK CONSTRAINT [FK_SC_Student]
GO
USE [master]
GO
ALTER DATABASE [ST] SET  READ_WRITE 
GO

六、实验内容

实验内容同实验步骤截图

七、实验数据

实验一第一部分的数据输入结果:
在这里插入图片描述

Student
在这里插入图片描述

Course
在这里插入图片描述

SC
实验一第二部分的数据部分如下所示:
在这里插入图片描述

Book
在这里插入图片描述

Reader
在这里插入图片描述

BORROW

八、实验总结

1、用 SQL 语言表示图书读者数据库建库和建表(建索引)操作。
(1)创建一个数据库名为“librarydb”

Create database librarydb
Go

(2)打开数据库librarydb

Use librarydb
Go

(3)建立Reader表

CREATE TABLE [dbo].[Reader](
	  [Rno] [int] NOT NULL,
	  [Rname] [nchar](20) NULL,
	  [Rdep] [nchar](20) NULL,
	  [Rgen] [nchar](4) NULL,
	  [Rtel] [nchar](18) NULL,
   CONSTRAINT [PK_Reader] PRIMARY KEY CLUSTERED 
(
	  [Rno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

2、指出图书读者数据库的主码、外码和数据约束。
Book主码:Bno
Reader主码:Rno
BORROW主码:Bno和Rno 外码:Bno和Rno
数据约束:输入的Bno和Rno必须要在Book表Bno和Reader表Rno的数据范围内
三表的数据须按照数据类型的要求(int、nchar(10)、date等)进行输入

  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在Kafka Eagle第一次安装后,需要运行以下命令来初始化数据库创建所需的: ``` sh /path/to/kafka-eagle/bin/ke.sh "db migrate" ``` 其中,`/path/to/kafka-eagle`应替换为Kafka Eagle的实际安装路径。 运行此命令后,Kafka Eagle将自动创建所需的,并在数据库中存储所需的数据。完成后,您可以重新启动Kafka Eagle并尝试登录。 ### 回答2: Kafka Eagle 是一个开源的 Kafka 监控系统,用于实时监控和管理 Kafka 集群。当第一次安装 Kafka Eagle 时,可能会遇到没有在数据库中建的情况。 导致这种情况发生的原因可能是安装过程中某些步骤没有正确执行,或者数据库连接配置有误。为了解决这个问题,可以按照以下步骤进行操作: 1. 首先确认 Kafka Eagle 的配置文件中数据库连接配置是否正确,包括数据库类型、地址、端口、用户名和密码等信息。可以修改配置文件中的相关字段。 2. 如果已经确认配置文件没有问题,可以尝试重新安装 Kafka Eagle。在重新安装之前,最好先删除之前未成功建的相关数据。 3. 删除未成功建的数据可以通过进入到数据库中执行 SQL 命令来实现。首先登录到数据库,然后找到 Kafka Eagle 所使用的数据库,并执行删除命令,例如使用 MySQL 数据库,可以使用 "DROP TABLE table_name;" 命令来删除相关的数据。 4. 完成删除操作后,重新安装 Kafka Eagle,确保在安装过程中所有步骤都正确执行。安装完成后,系统会自动创建所需的数据,并建立相应的索引。 总之,确保正确配置数据库连接信息和重新安装 Kafka Eagle 可以解决第一次安装没有在数据库中建的问题。同时,及时参考官方文档或向社区求助也是解决问题的好方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight_V_Schumacher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值