当前位置:网站首页>数据库上机实验1 数据库定义语言
数据库上机实验1 数据库定义语言
2022-07-31 05:09:00 【Meteor.792】
一、实验目的
1、熟悉数据库管理软件的使用。
2、熟练掌握数据库的创建、修改和删除语句。
3、掌握表的创建、修改和删除语句。
二、实验内容
给定如表3.6、表3.7和表3.8所示的学生信息。
表3.6 学生表(Student)
学号 | 姓名 | 性别 | 专业班级 | 出生日期 | 联系电话 |
0433 | 张艳 | 女 | 生物04 | 1986-9-13 | |
0496 | 李越 | 男 | 电子04 | 1984-2-23 | 13812901234 |
0529 | 赵欣 | 男 | 会计05 | 1984-1-27 | 13502221234 |
0531 | 张志国 | 男 | 生物05 | 1986-9-10 | 13312561234 |
0538 | 于兰兰 | 女 | 生物05 | 1984-2-20 | 13312001234 |
0591 | 王丽丽 | 女 | 电子05 | 1984-3-20 | 13320801234 |
0592 | 王海强 | 男 | 电子05 | 1986-11-1 |
表3.7 课程表(Course)
课程号 | 课程名 | 学分数 | 学时数 | 任课教师 |
K001 | 计算机图形学 | 2.5 | 40 | 胡晶晶 |
K002 | 计算机应用基础 | 3 | 48 | 任泉 |
K006 | 数据结构 | 4 | 64 | 马跃先 |
M001 | 政治经济学 | 4 | 64 | 孔繁新 |
S001 | 高等数学 | 3 | 48 | 赵晓尘 |
表3.8 学生作业表(Score)
课程号 | 学号 | 作业1成绩 | 作业2成绩 | 作业3成绩 |
K001 | 0433 | 60 | 75 | 75 |
K001 | 0529 | 70 | 70 | 60 |
K001 | 0531 | 70 | 80 | 80 |
K001 | 0591 | 80 | 90 | 90 |
K002 | 0496 | 80 | 80 | 90 |
K002 | 0529 | 70 | 70 | 85 |
K002 | 0531 | 80 | 80 | 80 |
K002 | 0538 | 65 | 75 | 85 |
K002 | 0592 | 75 | 85 | 85 |
K006 | 0531 | 80 | 80 | 90 |
K006 | 0591 | 80 | 80 | 80 |
M001 | 0496 | 70 | 70 | 80 |
M001 | 0591 | 65 | 75 | 75 |
S001 | 0531 | 80 | 80 | 80 |
S001 | 0538 | 60 | 80 |
1、用SQL命令创建一个学生作业管理数据库Homework,数据文件的逻辑名称为Homework_Data,数据文件存放在D盘根目录下,文件名为HomeworkData.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为500MB,存储空间自动增长量为10MB;日志文件的逻辑名称为Homework_Log,日志文件物理地存放在D盘根目录下,文件名为HomeworkData.ldf,初始存储空间大小为5MB,最大存储空间为500MB,存储空间自动增长量为5MB。
CREATE DATABASE Homework
ON
(NAME=Homework_Data,
FILENAME='D:\HomeworkData.mdf',
SIZE=10,
MAXSIZE=500,
FILEGROWTH=10)
LOG ON
(NAME=Homework_Log,
FILENAME='D:\HomeworkData.ldf',
SIZE=5,
MAXSIZE=500,
FILEGROWTH=5)
2、用SQL命令修改数据库Homework,添加一个次要数据文件,逻辑名称为Homework_Datanew,存放在D盘根目录下,文件名为Homework_Datanew.ndf。数据文件的初始大小为100MB,最大容量为200MB,文件自动增长容量为10MB。
ALTER DATABASE Homework
ADD FILE
(NAME=Homework_Datanew,
FILENAME='D:\Homework_Datanew.ndf',
SIZE=100,
MAXSIZE=200,
FILEGROWTH=10)
3、对表3.6,表3.7和表3.8,分别以下表的方式给出各字段的属性定义和说明。
字段名 | 数据类型 | 长度或者精度 | 默认值 | 完整性约束 | 说明 |
…… | …… | …… | …… | ||
…… | …… | …… | …… |
3、表3.6学生表
字段名 | 数据类型 | 长度或者精度 | 默认值 | 完整性约束 | 说明 |
sno | char | 4 | Primary key Not null | 学号 | |
sname | varchar | 20 | Not null | 姓名 | |
ssex | char | 2 | Check(‘男’,’女’) Not null | 性别 | |
major | Varchar | 30 | Not null | 专业班级 | |
birth | date | null | 出生日期 | ||
phone | char | 11 | null | 联系电话 |
表3.7课程表
字段名 | 数据类型 | 长度或者精度 | 默认值 | 完整性约束 | 说明 |
cno | char | 4 | Primary key Not null | 课程号 | |
cname | varchar | 30 | Not null | 课程名 | |
credit | numeric | (3,1) | Not null | 学分数 | |
xtime | numeric | (4,1) | Not null | 学时数 | |
tname | varchar | 20 | null | 任课教师 |
表3.8学生作业表
字段名 | 数据类型 | 长度或者精度 | 默认值 | 完整性约束 | 说明 |
cno | char | 4 | Primary key Foreign key Not null | 课程号 | |
sno | char | 4 | Primary key Foreign key Not null | 学号 | |
Cj1 | numeric | (4,1) | null | 作业1成绩 | |
Cj2 | numeric | (4,1) | null | 作业2成绩 | |
Cj3 | numeric | (4,1) | null | 作业3成绩 |
4、使用SQL命令在学生作业管理数据库中建立学生表、课程表和学生作业表。
创建学生表(Student)
Create table student
(sno char(4) not null primary key,
Sname varchar(20) not null,
Ssex char(2) not null check(ssex in('男','女')),
Major varchar(30) not null,
Birth date null,
Phone char(11) null)
创建课程表(Course)
Create table course
(cno char(4) not null primary key,
Cname varchar(30) not null,
Credit numeric(3,1) not null,
Stime numeric(4,1) not null,
Tname varchar(20) null)
创建学生作业表(Score)
Create table score
(cno char(4) not null,
Sno char(4) not null,
Cj1 numeric(4,1) null,
Cj2 numeric(4,1) null,
Cj3 numeric(4,1) null,
Primary key(cno,sno),
Foreign key(cno) references course(cno),
Foreign key(sno) references student(sno))
5、alter table student
Add address nvarchar(20)
5、在学生表中增加一个住址列,列名为address,数据类型为nvarchar(20)。
ALTER TABLE 学生表
ADD
Address NVARCHAR(20)
三、实验指导
1、启动SQL Server2012软件。
2、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。
3、在创建表时,使用字符串类型时应遵循以下原则:
(1)从速度方面考虑,要选择固定的列,可以使用char类型。
(2)要节省空间,使用动态的列,可以使用varchar类型。
(3)如果要搜索的内容不区分大小写且内容较多,可以使用text类型。
在创建表时,使用哪种数字类型,应遵循以下原则:
(1)选择最小的可用类型,如果值永远不超过255,则使用tinyint比int强。
(2)对于完全都是数字的,可以选择整数类型。
(3)浮点类型用于可能具有小数部分的数。例如货物单价、网上购物交付金额等。
设置表的主键约束和外键约束,以保证数据的完整性,应选择能够唯一标识一行记录的列或列的组合作为表的主键,外键首先是另一个表的主键,在该表中才能给它设置成外键。
边栏推荐
- About the problems encountered by Xiaobai installing nodejs (npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
- Why use Flink and how to get started with Flink?
- 关于superset集成到自己的项目中
- 【一起学Rust】Rust的Hello Rust详细解析
- 剑指offer专项突击版 --- 第 4 天
- Temporal对比Cadence
- Object Detection Study Notes
- Interviewer, don't ask me to shake hands three times and wave four times again
- Data set partitioning and cross-validation
- 数据库学习笔记
猜你喜欢
限流的原理
On-line monitoring system for urban waterlogging and water accumulation in bridges and tunnels
MySQL optimization: from ten seconds to three hundred milliseconds
docker安装postgresSQL和设置自定义数据目录
matlab simulink欠驱动水面船舶航迹自抗扰控制研究
The interviewer asked me how to divide the database and the table?Fortunately, I summed up a set of eight-part essays
Anaconda配置环境指令
MySQL(更新中)
Object Detection Study Notes
再见了繁琐的Excel,掌握数据分析处理技术就靠它了
随机推荐
MySQL_关于JSON数据的查询
Why use Flink and how to get started with Flink?
如何将项目部署到服务器上(全套教程)
MySQL forgot password
MySQL window function
精解四大集合框架:List 核心知识总结
数据集划分以及交叉验证法
ES source code API call link source code analysis
目标检测学习笔记
MySQL(更新中)
MySQL-Explain详解
MYSQL下载及安装完整教程
CentOS7 —— yum安装mysql
Flink sink ES 写入 ES(带密码)
C语言教程(二)-printf及c自带的数据类型
有了MVC,为什么还要DDD?
matlab abel变换图片处理
面试官,不要再问我三次握手和四次挥手
Anaconda configure environment directives
1. Get data - requests.get()