实验二 数据库和表的操作
内容一:数据库的设计与创建
数据库分析
1. 创建用于学生信息分析的数据库,名称为“学生信息”。
2. 主数据文件“学生信息_data”,物理存储路径为”e:\个人目录\学生信息_data.mdf”,初始大小为3mb,最大容量为10mb,递增量为1mb,文件组为primary 文件组。
3. 事物日志文件“学生信息_log” ,物理存储路径为”e:\个人目录\学生信息_log.ldf”,初始大小为2mb,最大容量为5mb,递增量为10%。
代码:
create database 学生信息 -- 在master里注册学生信息这个数据库的信息 on primary ( name = '学生信息_data', filename = 'f:\数据库编程\project\studentinformation_data.mdf', size = 3mb, maxsize = 10mb, filegrowth = 1mb ) log on ( name = '学生信息_log', filename = 'f:\数据库编程\project\studentinformation_log.ldf', size = 2mb, maxsize = 5mb, filegrowth = 10% ) go
效果:
内容二:数据库的管理
1. 利用sp_helpdb查看数据库“学生信息”的信息。
2. 将创建的数据库改名为“学生情况”。
3. 通过sql语句做如下修改:
(1) 主数据文件的容量为4mb,最大容量为20mb,递增量为2mb
(2) 事务日志文件容量为2mb,最大容量为10mb,递增量为1mb.
4. 收缩数据库“学生情况”的容量
代码:
use 学生信息 alter database 学生信息 modify name = 学生情况 go
效果:
代码:
alter database 学生情况 modify file ( name = 学生信息_data, size = 10mb, maxsize = 30mb, filegrowth = 2 % ) alter database 学生情况 modify file ( name = 学生信息_log, size = 3mb, maxsize = 10mb, filegrowth = 1% ) go
效果:
内容三:设计与管理表
1. 通过sql语句创建表1“学生”,并保存结果。表结构如下:
字段名 |
字段类型 |
字段宽度 |
说明 |
学号 |
Int |
|
主键(自动编号)不允许为空 |
姓名 |
char |
10 |
不允许为空 |
性别 |
char |
2 |
取值为男或女 |
专业 |
char |
20 |
|
系别 |
char |
20 |
|
年级 |
char |
2 |
|
班别 |
char |
2 |
|
出生日期 |
datetime |
|
|
地区来源 |
varchar |
30 |
|
变动情况 |
char |
10 |
|
政治面貌 |
char |
8 |
|
民族 |
char |
8 |
默认为汉族 |
总学分 |
int |
|
|
2.通过sql语句创建表2“学期成绩”,标结构如下:
字段名 |
字段类型 |
字段宽度 |
说明 |
学号 |
Int |
|
外键,主键 |
课程编号 |
Char |
2 |
外键,主键 |
成绩 |
real |
|
检查约束0-100 |
备注 |
varchar |
50 |
|
3.创建表3“课程注册”,表结构如下:
字段名 |
字段类型 |
字段宽度 |
说明 |
课程编号 |
Char |
2 |
主键 |
课程名称 |
Char |
10 |
唯一约束 |
任课教师 |
Char |
8 |
|
周学时 |
Int |
|
|
学分 |
int |
|
|
4.用sql语句在“学生”表中添加一格“备注”字段并保存结果
5. 用sql语句将“学生”表中“专业”字段数据类型改为varchar,长度为30并保存结果
6. 用sql语句删除“学生成绩”表中的“备注”字段并保存结果
代码:
学生表
use 学生情况 go create table 学号 ( 学号 int NOT NULL primary key, 姓名 varchar(10), 性别 char(2) default '男', 专业 char(20), 系别 char(20), 年级 char(2), 班别 char(2), 出生日期 smalldatetime, 地区来源 varchar(30), 变动情况 char(10), 政治面貌 char(8), 民族 char(8)default '汉', 总学分 int )
课程注册表
代码:
use 学生情况 go create table 课程注册 ( 课程编号 char(2) primary key, 课程名称 char(10) unique nonclustered, 认可老师 char(8), 周学时 int, 学分 int ) go
学期成绩表
代码:
use 学生情况 create table 学期成绩 ( 学号 int references 学生(学号), 课程编号 char(2) references 课程注册(课程编号), 成绩 real check (成绩 >= 0 and 成绩 <= 100), 备注 varchar(50) primary key (学号, 课程编号) ) go
4.用sql语句在“学生”表中添加一格“备注”字段并保存结果
代码:
use 学生情况 alter table 学生 add column_备注 int go
5. 用sql语句将“学生”表中“专业”字段数据类型改为varchar,长度为30并保存结果
代码:
use 学生情况 alter table 学生 alter column 专业 char(30) go
6. 用sql语句删除“学生成绩”表中的“备注”字段并保存结果
代码:
use use 学生情况
alter table 学期成绩
drop column 备注 go
内容四:表的基本操作
1.向学生表中添加信息。
学号 |
姓名 |
性别 |
专业 |
系别 |
年级 |
班级 |
出生日期 |
学生来源 |
变动情况 |
政治面貌 |
民族 |
总学分 |
备注 |
001 |
李春刚 |
男 |
计算机应用 |
计算机 |
01 |
02 |
1985-2-10 |
呼市 |
|
团员 |
汉 |
|
|
002 |
东学婷 |
女 |
计算机应用 |
计算机 |
02 |
04 |
1986-10-24 |
包头 |
转系 |
团员 |
蒙 |
|
|
003 |
龙建委 |
男 |
电子商务 |
管理系 |
02 |
01 |
1984-2-17 |
乌海 |
退学 |
团员 |
蒙 |
|
|
004 |
刘波 |
男 |
电子商务 |
管理系 |
03 |
02 |
1985-4-24 |
巴盟 |
|
团员 |
汉 |
|
|
005 |
吴惠 |
女 |
软件开发 |
软件 |
01 |
01 |
1985-2-10 |
通辽 |
|
团员 |
汉 |
|
|
006 |
王涛 |
男 |
软件开发 |
软件 |
02 |
02 |
1984-9-8 |
赤峰 |
|
团员 |
蒙 |
|
|
007 |
郭凤丽 |
|
应用电子 |
电子 |
02 |
02 |
1984-3-2 |
海拉尔 |
|
团员 |
蒙 |
|
|
008 |
贾惠 |
|
应用电子 |
电子 |
02 |
01 |
1983-2-2 |
集宁 |
|
团员 |
汉 |
|
|
2.添加学生成绩
学号 |
课程编号 |
成绩 |
备注 |
001 |
01 |
85 |
|
001 |
05 |
75 |
|
002 |
03 |
90 |
|
002 |
05 |
50 |
|
003 |
01 |
85 |
|
003 |
02 |
75 |
|
004 |
03 |
60 |
|
004 |
02 |
92 |
|
005 |
01 |
85 |
|
005 |
04 |
46 |
|
006 |
05 |
95 |
|
006 |
03 |
52 |
|
007 |
04 |
96 |
|
007 |
05 |
85 |
|
008 |
04 |
76 |
|
008 |
05 |
68 |
|
3.通过sql语句向“课程注册表”中添加数据,并保存结果
课程编号 |
课程名称 |
任课教师 |
周学时 |
学分 |
01 |
计算机应用 |
王晓梅 |
4 |
4 |
02 |
电子商务 |
李丽 |
6 |
6 |
03 |
网页制作 |
张铁柱 |
6 |
6 |
04 |
软件工程 |
付大鹏 |
4 |
4 |
05 |
数据库 |
白一格 |
6 |
6 |
1.向学生表中添加信息。
代码:
use 学生情况 insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,政治面貌,民族) values('001','李春刚','男','计算机应用','计算机','01','02','1985-2-10','呼市','团员','汉') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,情况变动,政治面貌,民族) values('002','东学婷','女','计算机应用','计算机','02','04','1986-10-24','包头','转系','团员','蒙') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,情况变动,政治面貌,民族) values('003','龙建委','男','电子商务','管理系','02','01','1984-2-17','乌海','退学','团员','蒙') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,政治面貌,民族) values('004','刘波','男','电子商务','管理系','03','02','1985-4-24','巴盟','团员','汉') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,政治面貌,民族) values('005','吴惠','女','软件开发','软件','01','01','1985-2-10','通辽','团员','汉') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,政治面貌,民族) values('006','王涛','男','软件开发','软件','02','02','1984-9-8','赤峰','团员','蒙') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,政治面貌,民族) values('007','郭凤丽','男','应用电子','电子','02','02','1984-3-2','海拉尔','团员','蒙') go insert 学生(学号,姓名,性别,专业,系别,年级,班别,出生日期,地区来源,政治面貌,民族) values('008','贾惠','男','应用电子','电子','02','01','1983-2-2','集宁','团员','汉') go
2.添加课程注册
代码:
use 学生情况 insert 课程注册(课程编号,课程名称,认可老师,周学时,学分) values('01','计算机应用','王晓梅','4','4') go insert 课程注册(课程编号,课程名称,认可老师,周学时,学分) values('02','电子商务','李丽','6','6') go insert 课程注册(课程编号,课程名称,认可老师,周学时,学分) values('03','网页制作','张铁柱','6','6') go insert 课程注册(课程编号,课程名称,认可老师,周学时,学分) values('04','软件工程','付大鹏','4','4') go insert 课程注册(课程编号,课程名称,认可老师,周学时,学分) values('05','数据库','白一格','6','6') go
3.添加学生成绩
代码:
use 学生情况 insert 学期成绩(学号,课程编号,成绩) values('001','01','85') go insert 学期成绩(学号,课程编号,成绩) values('001','05','75') go insert 学期成绩(学号,课程编号,成绩) values('002','03','90') go insert 学期成绩(学号,课程编号,成绩) values('002','05','50') go insert 学期成绩(学号,课程编号,成绩) values('003','01','85') go insert 学期成绩(学号,课程编号,成绩) values('003','02','75') go insert 学期成绩(学号,课程编号,成绩) values('004','03','60') go insert 学期成绩(学号,课程编号,成绩) values('004','02','92') go insert 学期成绩(学号,课程编号,成绩) values('005','01','85') go insert 学期成绩(学号,课程编号,成绩) values('005','04','46') go insert 学期成绩(学号,课程编号,成绩) values('006','05','95') go insert 学期成绩(学号,课程编号,成绩) values('006','03','52') go insert 学期成绩(学号,课程编号,成绩) values('007','04','96') go insert 学期成绩(学号,课程编号,成绩) values('007','05','85') go insert 学期成绩(学号,课程编号,成绩) values('008','04','76') go insert 学期成绩(学号,课程编号,成绩) values('008','05','68') go
效果:
六、实验总结
1.数据库文件分2种,分别是?
答:主数据文件:.mdf -- 一个数据库有且仅有一个
辅助数据文件:.ndf -- 一个数据库可以有多个
(日志文件: .ldf -- 一个数据库有且仅有一个)
1. 介绍下SQL SERVER的系统数据库以及这些数据库的基本功能。为所以临时表、临时存储过程或其他临时操作提供存储空间的是哪个系统数据库呢?
答:基本功能:数据库的数据增删改功能,数据库的数据查询功能;
为所有临时表,临时存储过程或者其他临时操作提供存储空间的时master 系统数据库。
3.插入操作命令使用时候应该注意什么呢?
答案: 1.若是有引用其他table 的主码的table (即这个table 里有外码),要先把(将这个table中的外码作为主码)其他的table 插入完之后,再插入这张表,
2.插入的时候,列名和values中的数据名要一一对应,不能多也不能少。