### 数据库实验知识点详解
#### 实验一:通过SQL Server Management Studio创建及管理数据库
**实验目的**
1. **熟悉SQL Server Management Studio:** SQL Server Management Studio (SSMS) 是一款由微软提供的集成环境,用于配置、管理和开发SQL Server的所有组件。通过本实验,能够熟练操作SSMS的各项功能,包括查询编辑器、对象资源管理器等。
2. **掌握通过SQL Server Management Studio管理数据库的方法:** 包括创建、修改、分离、附加数据库等操作。
3. **掌握数据库及其物理文件的结构关系:** 数据库是由多个物理文件组成,包括数据文件(.mdf或.ndf)和日志文件(.ldf)。理解这些文件的作用和相互之间的关联对于数据库的管理和维护至关重要。
4. **掌握通过SQL Server Management Studio管理数据表的方法:** 包括创建、修改表结构以及向表中添加、修改和删除数据。
**实验内容详解**
1. **创建数据库**
- **步骤概述:**
1. 打开SQL Server Management Studio。
2. 在“对象资源管理器”中选择目标服务器。
3. 右键点击“数据库”,选择“新建数据库”。
4. 在弹出的对话框中输入数据库的名称和其他参数。
5. 点击“确定”完成创建。
- **具体参数:**
- **数据库名称:** Student_info
- **数据库逻辑文件名称:** Student_info_data
- **数据物理文件名称:** Student_info_data.mdf
- **数据文件初始大小:** 20MB
- **数据文件大小最大值:** 300MB
- **数据文件增长增量:** 5MB
- **日志逻辑文件名称:** Student_info_log
- **日志物理文件名称:** Student_info_log.ldf
- **日志文件初始大小:** 5MB
- **日志文件大小最大值:** 50MB
- **日志文件增长增量:** 1MB
2. **查看、验证创建的数据库**
- **方法1:执行sp_helpdb系统存储过程查看Student_info数据库的信息。**
- 使用T-SQL命令`EXEC sp_helpdb 'Student_info';`
- **方法2:在企业管理器中查看**
- 打开SSMS,找到已创建的数据库Student_info,右键选择“属性”进行查看。
3. **修改数据库的属性**
- 通过SQL Server Management Studio,找到Student_info数据库,右键选择“属性”。在属性页面中修改数据文件的初始大小为30MB,最大值改为500MB,数据增长改为5%,日志文件的初始大小改为20MB,最大值改为60MB,数据增长改为6%。
4. **数据库的分离及附加**
- **分离数据库**
- 右键选择Student_info数据库,选择“任务”->“分离”。
- 在弹出的对话框中确认分离操作。
- **附加数据库**
- 在“对象资源管理器”中找到“数据库”节点,右键选择“附加”。
- 在附加数据库对话框中添加之前分离的数据库文件,点击“确定”。
5. **创建表**
- **Student表**
- **列名称:** Sno, Sname, Sex, Birth, Classno, Entrance_date, Home_addr
- **类型:** char(8), varchar(8), char(2), smalldatetime, char(3), smalldatetime, varchar(40)
- **约束:** 主键为Sno,Sex字段不允许为空且默认值为“男”
- **Course表**
- **列名称:** Cno, Cname, Total_period, Credit
- **类型:** char(3), varchar(20), smallint, tinyint
- **约束:** 主键为Cno,Total_period和Credit都大于0且Credit小于等于6
- **SC表**
- **列名称:** Sno, Cno, Grade
- **类型:** char(8), char(3), tinyint
- **约束:** 主键为(Sno, Cno),Grade大于等于0且小于等于100
6. **管理表结构**
- **添加和删除列**
- **添加身高(Stature)列:** 使用ALTER TABLE命令添加Stature列,类型为numeric(4,2),并设置CHECK约束以确保身高值小于3.0米。
```sql
ALTER TABLE Student ADD Stature numeric(4, 2) NULL CHECK (Stature < 3.0);
```
- **添加所在系(Sdept)列:** 类型为char(2),不允许为空值。
```sql
ALTER TABLE Student ADD Sdept char(2) NOT NULL;
```
- **添加邮政编码(Postcode)列:** 类型为char(6),允许为空值,并设置CHECK约束以确保值只能是数字。
```sql
ALTER TABLE Student ADD Postcode char(6) NULL CHECK (Postcode LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]' OR Postcode IS NULL);
```
- **删除身高(Stature)列:**
```sql
ALTER TABLE Student DROP COLUMN Stature;
```
- **添加和删除约束**
- **添加入学时间(Entrance_date)必须在出生年月(Birth)之后的约束:**
```sql
ALTER TABLE Student ADD CONSTRAINT CHK_EntranceDate AFTER BIRTH CHECK (Entrance_date > Birth);
```
- **给SC表的成绩(Grade)列增加默认值约束,默认值为0:**
```sql
ALTER TABLE SC ADD CONSTRAINT DF_Grade DEFAULT 0 FOR Grade;
```
- **删除Grade列的默认值约束:**
```sql
ALTER TABLE SC DROP CONSTRAINT DF_Grade;
```
7. **对表添加、修改、删除数据**
- **插入数据**
- 向Student表、Course表中插入数据,需要注意符合表结构定义中的约束条件。
- 示例:
```sql
INSERT INTO Student (Sno, Sname, Sex, Birth, Classno, Entrance_date, Home_addr)
VALUES ('00000001', '张三', '男', '1995-01-01', '001', '2015-09-01', '北京市海淀区');
INSERT INTO Course (Cno, Cname, Total_period, Credit)
VALUES ('001', '数据库原理', 64, 4);
```
以上就是关于数据库实验的具体内容,通过这一系列的操作,可以帮助学习者全面掌握SQL Server Management Studio的基本使用方法,以及如何利用它来创建、管理数据库和数据表。这对于从事数据库管理工作的人来说是非常重要的技能。