数据库--在SQLSever中创建数据库

一、实验项目要求

实验目的

要求学生熟练掌握和使用 SQL语句创建数据库、表、索引和修改表结构,并学会使用SQL Server进行可视化建表和SQL语句建表两种方法。

实验内容

1.创建数据库和查看数据库属性。

    2.创建表、确定表的主码。

    3.查看和修改表结构。

4.具体内容:

    (1)使用SQL语句按教材中的内容建立学生数据库。

    (2)查看学生数据库的属性,并进行修改,使之符合要求。

    (3)使用SQL语句,在建好的学生数据库中建立学生、课程、选课和系部4个表,其结构为;

  1. 学生(学号,姓名,年龄,性别,所在系)
  2. 课程(课程号,课程名,先行课,学分)
  3. 选课(学号,课程号,成绩)
  4. 系部(系号,系名称,系主任)

  要求:

    (1)建库、建表和建立表间联系。(表间联系通过外键实现,在属性关系中建)

    (2)选择合适的数据类型。

    (3)定义必要的主键和索引。

    (4)使用SQL语句在上述4个表中尽可能的多输入些数据(每个表不能少于10条记录)。要求记录不仅满足数据约束要求,还要有表间关联的记录。

二、理论分析或算法分析

首先,需要创建一个STUEDNT库,然后在库里面建表,使用SQL语言建立了四个学生表、课程表、选课表、系部表,在建立表的时候,设置里面的属性,属性的内容以及性质(是什么类型的数据),然后进行数据的输入,根据表的含义,把自己想要的数据输进去;在学生表中,学号就是这个表的主码,其他就是一些基本信息;在课程表中,课程号就是这个表的主码,其他是一些基本信息;选课表中,对于学号和课程号两个码来说,参考系不同,码的属性就是不同,学号是外码,对于参照表为学生表,课程号是外码,对于参照表为课程表来说;在系部表中,系号是主码,其他就是一些信息。在创建表的过程中,清楚的知道每个属性里面最后需要输入的数据的类型。

三、实现方法

1.创建数据库:

create database ST;
use ST;

2.学生表的创建:

主码:学号

CREATE TABLE STUDENT(
	Sno CHAR(9)PRIMARY KEY,
	Sname CHAR(20),
	Ssex CHAR(8),
	Sage SMALLINT,
	Sdept CHAR(20),
	Foreign key (Sdept) references SEDPT (SSno)
);

3.课程表的创建:

主码:课程号

CREATE TABLE COURSE(
	Cno CHAR(8)PRIMARY KEY,
	Cname CHAR(40) NOT NULL,
	Cpo CHAR(8),
	CGrade SMALLINT,
	Foreign key (Cpo) references COURSE (Cno)
);

4.选课表的创建:

主码:课程号和学号

CREATE TABLE SC(
	Sno CHAR(9),
	Cno CHAR(8),
	Grade SMALLINT,
	PRIMARY KEY(Sno,Cno),
	FOREIGN KEY (Sno) REFERENCES STUDENT(Sno),
	FOREIGN KEY (Cno) REFERENCES COURSE(Cno),
);

5.系部表的创建:

主码:系号

CREATE TABLE SEDPT(
	SSno CHAR(20)PRIMARY KEY,
	SSname CHAR(30) unique,
	SSperson CHAR(8),
);

1.学生表信息的插入

Insert
into STUDENT(Sno,Sname,Ssex,Sage,Sdept)
Values('192054201', '张三','男','20','05'),('192054202','李四','男','20','05'),
	('192054203','王五','男','20','05'),('192054204','张雅','女','18','05'),
	('192041301','赵立','女','18','04'),('192041302','凌婷','女','19','04'),
	('192041303','刘舒','女','19','04'),('192012201','张小','男','20','01'),
	('192012202','高六','男','20','01'),('192012203','郭七','男','20','01');

2.系部表信息的插入

Insert
into SEDPT(SSno,SSname,SSperson)
Values('05','计算机工程系','钱老'),
      ('04','化学与化工系','孙老'),
	  ('01','数学系','李老');

3.课程表信息的插入

Insert
into COURSE(Cno,Cname,Cpo,CGrade)
Values('001','数据库','003','2'),('002','计算机导论','003','2'),
      ('003','数学','001','4'),('004','计算机网络','003','3'),
	  ('005','概率论','003','4'),('006','线性代数','003','3'),
	  ('007','化学原理','003','3'),('008','机械制图','003','2'),
	  ('009','计算机组成原理','002','4'),('010','数字图像处理','003','4');

4.选课表信息的插入

Insert
into SC(Sno,Cno,Grade)
Values('192054201','001','98'),('192054202','001','78'),
      ('192054203','001','60'),('192041303','008','90'),
	  ('192041301','008','70'),('192041302','008','58'),
	  ('192054201','003','100'),('192054202','003','45'),
	  ('192041301','003','98'),('192054203','003','89');

5.建立索引表

Create Unique Index Depdon ON SEDPT(SSno);
Create Unique Index Stuson ON STUDENT(Sno);
Create Unique Index Coucon ON COURSE(Cno);
Create Unique Index SCon ON SC(Sno ASC,Cno DESC);

四、实验结果分析

实验结果

学生表的信息

课程表的信息

选课表的信息

系部表的信息

遇到的问题

  1. 在输入信息的时候,没有了解清楚char的含义,在char(8)就是可以输入4个汉字,8个数字和字母的含义,导致输入的数据的一直错误,最后在同学的提醒下,成功解决此问题;
  2. 在参考表的时候参考类型必须是一致哒,否则会建表不成功;

处理方式

  1. 输入数据的时候,注意数据类型;

思考题

1.为什么要建立索引?

1、创建唯一性索引,保证数据库表中每一行数据的唯一性。

2、加快数据的检索速度,这也是创建索引的最主要的原因。

3、减少磁盘IO(向字典一样可以直接定位)。

4、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

2.学生库选课表中的学号、课程号采用数值型、还是采用字符型的?采用哪种数据类型更好?

学号、课程号采用字符型,因为字符型包含数值型,学号比较长,导致数值比较大,所以采用字符型更好。

建立环境实验和数据库/表 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的 通过本实验的学习,使学生熟悉SQL Server 2014的集成环境,帮助学生掌握数据库、表的建立方法以及SQL Server的数据导入方法 二、实验内容    (一)、SQL Server 2014的安装 SQL Server2014的安装过程与 SQL Server 2008、SQL Server2012的安装过程类似,都提供了一个功能树以用来安装所有 SQL Server 组件,包括计划、安装、维护、工具、资源、高级、选项等功能。下面是各功能选项所包含的内容,如图3-1所示。 图3-1 安装计划的内容 (1)选择“安装”功能,因为要创建SQL Server 2014的全新安装,单击“全新SQL Server 2014独立安装或向现有安装添加功能”选项,如图3-2所示。 图3-2 “安装”功能的内容 (2)在“产品密匙”页上,选择相应的单选按钮,这些按钮指示是安装免费版本的SQL Server还是具有产品密匙的产品版本,如果使指免费的评估版,只有180天的试用期限,如图3-3所示。 图3-3 “产品密钥”界面 (3)在“许可条款”页上阅读许可协议,然后选相应的复选框以接受许可条款和条件。如图3-4所示。 图3-4 “许可条款”界面 (4)系统进行安装程序支持规则检查,以确定安装SQL Server安装程序支持文件时可能发生的问题。必须更正所有的失败,安装程序才能继续。如图3-5所示。 图3-5 “安装规则”界面 (5)在“设置角色”页上选择SQL Server功能安装,如图3-6所示。 图3-6 “设置”角色界面 (6)在“功能选择”页上选择要安装的组件。选择功能名称后,右侧窗体会显示每个组件的说明。可以根据实际需要,选一些功能,如图3-7所示。一般应用可选择“数据库引擎服务”、“客户端工具连接”、“SQL客户端连接”和“管理工具”等选项。 图3-7“功能选择”界面 (7)在“实例配置”页上制定是安装默认实例还是命名实例,对于默认实例,实例的名称和ID都是MSSQLSERVER,也可以自己“命名实例”安装实例,如图3-8所示。SQL Server支持多个实例,即支持在同一台计算机上同时运行多个SQL Server数据库引擎实例,每个SQL Server数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的SQL Server数据库引擎实例的方式与连接其它计算机上运行的SQL Server数据库引擎的方式基本相同。 图3-8 “实例配置”界面 (8)在“服务器配置”页上指定SQL Server服务的登录帐户。SQL Server提供了多种服务,可以为所有SQL Server服务分配相同的登录账户,也可以分别配置每个服务账户。还可以指定服务是自动启动、手动启动还是禁用。Microsoft建议对各服务账户进行单独配置,以便为每项服务提供最低特权,即向SQL Server服务授予它们完成各自任务所需的最低权限,如图3-9所示。SQL Server的每个服务代表一个进程或一组进程,每个进程需要有访问SQL Server相关文件和系统注册表的权限,为了能让SQL Server服务在操作系统正常的启动和运行,就需要指定SQL Server的服务帐户,所以服务帐户指的是Windows操作系统的帐户。 图3-9 “服务器配置”界面 (9)在“数据库引擎配置”的“服务器配置”页上指定身份验证模式、用户名、密码,如图3-10所示。这里的用户身份验证指的是登录到服务器使用的身份验证模式及用户名和密码。身份验证模式分为“Windows身份验证模式”和“混合模式(SQL Server身份验证和Windows身份验证)”。如果选择“Windows身份验证模式”表示则只能使用Windows的帐号登录,即使用当前登录到操作系统的帐号进行登录,通过这种方式用户登录到SQL Server时不再需要输入帐号和密码。如选择“混合模式(SQL Server身份验证和Windows身份验证)”表示除了可以用使用登录到Windows的帐号作为登录的依据外,还可以使用SQL Server系统的帐号登录,这里必须为内置SQL Server系统管理员账户(SA)提供一个强密码。必须至少为SQL Server实例指定一个系统管理员。若要添加用以运行SQL Server安装程序账户,则要单击“添加当前用户”按钮。若要向系统管理员列表添加账户或从删除账户,则单击“添加…”或“删除…”按钮,然后编辑将拥有SQL Server实例的管理员特权的用户、组或计算机列表。 图3-10 设置身份验证模式和管理员 (10)在“准备安装”页显示安装过程的安装选项的树视图,如图3-11所示。若要继续,单击“安装”按钮。在安装过程,“安装进度”页会提供相应的状态,因此可以在安装过程监视安装进度。 图3-121“准备安装”界面 (11)安装完成后,“完成”页提供指向安装日志文件摘要以及其他重要说明的链接。如图3-12所示。 图3-12 “安装完成”界面 (二)、建库建表练习      1、利用语句建库和建表: 创建学生数据库StuDB,文件名和位置自定,在此数据库创建如下三张表: 学生表(student) (   学号(sno) 普通编码定长字符类型,长度9,码,   姓名(sname) 普通编码定长字符类型,长度10,非空,   性别(ssex) 统一编码定长字符类型,长度2,   年龄(sage) 微整型,   所在系(sdept) 统一编码可变长字符类型,长度20 ) 课程表(course) (   课程号(cno) ,通编码定长字符类型,长度4,码,   课程名(cname) 统一编码定长字符类型,长度,40,非空,   开课学期(Semester) 短整数, 学分(credit) 短整数 ) 修课表(sc)(   学号(sno) 普通编码定长字符类型,长度7,码,外码   课程号(cno) 普通编码定长字符类型,长度6,码,外码   成绩(grade) 小整型,   修课类别(ctype)普通编码定长字符类型,长度4 ) 2、建立“汽车”数据库,文件名和位置自定,在此数据库创建如下三张表: 汽车表(CarT),结构如下:   汽车序号(CId) 整型 关键字,   汽车名称(CName) 普通编码定长字符类型 长度为10  非空,   型号(CType)普通编码变长字符类型 长度为60  非空,   价格(CPrice) 整型,   车身眼色(Ccolor)普通编码变长字符类型 长度为20。 部门表(DepartT),结构如下:   部门序号(DId)整型 关键字,   部门名(DName)普通编码定长字符类型 长度为20   非空,   负责人名(DLead)普通编码定长字符类型 长度为10  非空,   人数(DAmount) 整型。 汽车出厂表(FacT),结构如下:   汽车序号(CID) 整型 非空,   部门序号(DId) 整型 非空,   出厂日期(FDate)小日期时间型 非空,   出厂数量(FAmount) 整型,   出厂价格(FPrice) 整型。   其关键字为(汽车序号,部门序号,出厂日期)   “汽车序号”为引用汽车表的“汽车序号”的外部关键字; “部门序号”为引用部门表的“部门序号”的外部关键字。 3、使用数据库的可视化工具建库建表 建立银行贷款表,具体要求同课堂教学的建库建表一致。 银行表(BankT)( 银行代码(Bno) 键 银行名称(Bname) 非空 电话(Tel) ) 法人表(LET)( 法人代码(Eno)键 法人名称(Ename)取值唯一 经济性质(Enature) 注册资金(Ecapital) 法定代表人(Erep) ) 贷款表(LoanT)( 法人代码(Eno) 银行代码(Bno) 贷款日期(Ldata) 贷款金额(Lamount) 贷款期限(Lterm) )        (三)、数据导入练习 将“学生数据库数据.xls”的数据导入到学生数据库的三张表。 将“银行贷款数据.xls”的数据导入到银行贷款数据库的三张表。 三、实验报告 将实验结果反映在实验报告,并对实验遇到的问题及解决方案、进行整理、分析总结,提出实验结论或自己的看法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值