用SQL定义语句创建符合如下条件的数据库: 数据库名为:学生数据库,模式:默认模式 数据文件的物理文件名为:主数据文件Students_data.mdf(逻辑文件同名),日志文件:Students

一、SQL定义语句

1.用SQL定义语句创建符合如下条件的数据库:

数据库名为:学生数据库,模式:默认模式

数据文件的物理文件名为:主数据文件Students_data.mdf(逻辑文件同名),日志文件:Students_log.ldf(逻辑文件同名),存放在D:\Data文件夹下(若D:盘中无此文件夹,请先建立此文件夹,然后再创建数据库。)

2.选用已建立的“学生数据库”,用SQL定义语句创建符合如下条件的表C-1到C-4(注意各种完整性约束)

上述两题,界面方式或命令方式均需要熟练掌握

表C-1 Student表结构

列名

说明

数据类型

约束

Sno

学号

普通编码定长字符串,长度为7

主键

Sname

姓名

普通编码定长字符串,长度为10

 

Ssex

性别

普通编码定长字符串,长度为2

 

Sage

年龄

微整型(tinyint)

 

Sdept

所在系

普通编码不定长字符串,长度为20

 

Sid

身份证号

普通编码定长字符串,长度为10

 

Sdate

入学日期

日期

 

表C-2 Course表结构

列名

说明

数据类型

约束

Cno

课程号

普通编码定长字符串,长度为10

主键

Cname

课程名

普通编码不定长字符串,长度为20

 

Credit

学时数

整型

 

Semester

学分

小整型

 

 

表C-3 SC表结构

列名

说明

数据类型

约束

Sno

学号

普通编码定长字符串,长度为7

主键,引用Student的外键

Cno

课程号

普通编码定长字符串,长度为10

主键,引用Course的外键

Grade

成绩

小整型

 

 

表C-4 Teacher表结构

列名

说明

数据类型

约束

Tno

教师号

普通编码定长字符串,长度为8

 

Tname

教师名

普通编码定长字符串,长度为10

 

Salary

工资

定点小数,小数点前4位,小数点后2位

 

 

3. 写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。

(1) 在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。

(2) 将Course表中Credit列的类型改为:tinyint。

(3) 删除Student表中的Sid和Sdate列。

(4) 为Teacher表添加主键约束,其主键为:Tno。

 

表C-1 Student表中的记录,本次上机使用窗口方式录入数据

录入数据时请务必保证数据格式与定义的数据类型一致,否则会报错。

学号

姓名

性别

年龄

系别

身份证号

入学日期

0811101

李勇

21

计算机系

 

 

0811102

刘晨

20

计算机系

 

 

0811103

王敏

20

计算机系

 

 

0811104

张小红

19

计算机系

 

 

0821101

张立

20

信息管理系

 

 

0821102

吴宾

19

信息管理系

 

 

0821103

张海

20

信息管理系

 

 

0831101

钱小平

21

通信工程系

 

 

0831102

王大力

20

通信工程系

 

 

0831103

张姗姗

19

通信工程系

 

 

 

表C-2 Course表中的记录

Cno

Cname

Credit

Semester

C001

高等数学

4

1

C002

大学英语

3

1

C003

大学英语

3

2

C004

计算机文化学

2

2

C005

VB

2

3

C006

数据库基础

4

5

C007

数据结构

4

4

C008

计算机网络

4

4

 

表C-3 SC表中的记录

Sno

Cno

Grade

0811101

C001

96

0811101

C002

80

0811101

C003

84

0811101

C005

62

0811102

C001

92

0811102

C002

90

0811102

C004

84

0821102

C001

76

0821102

C004

86

0821102

C005

73

0821102

C007

NULL

0821103

C001

50

0821103

C004

80

0831101

C001

50

0831101

C004

80

0831102

C007

NULL

0831103

C004

78

0831103

C005

65

0831103

C007

NULL

 

表C-4 Teacher表中的记录

Tno

Tname

Salary

T001

张美霞

5000

T002

王洪林

5500

T003

李丽芬

4800

T004

周良水

6000

T005

吴翔

7000

三.实验结果

Student表

sql语句:

create table Student(

    Sno char(7) primary key,

    Sname char(10),

    Sex char(2),

    Sage tinyint,

    Sdept varchar(20),

    Sid  char(10),

    Sdate date

);

Course表

sql语句:

create table Course(

    Cno char(10) primary key,

    Cname varchar(20),

    Credit int,

    Semester smallint

     

);

 

Sc

Sql语句:

create table SC(

    Sno char(7),

    Cno char(10),

    Grade smallint,

    foreign key(Sno) references Student(Sno),

    foreign key(Cno) references Course(Cno),

    primary key(Sno,Cno)

);

Teacher

Sql语句:

create table Teacher(

    Tno char(8) primary key,

    Tname char(10),

    Salary numeric(6,2)

   

);

 

写出实现如下功能的SQL语句,并执行所写代码,查看执行结果。

  1. 在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)
ALTER table Teacher add  Title nchar(4);

  1. 将Course表中Credit列的类型改为:tinyint。  
ALTER table Course alter column Credit tinyint;

 

  1. 删除Student表中的Sid和Sdate列。

 

ALTER table Student drop column Sid,Sdate;

  1. 为Teacher表添加主键约束,其主键为:Tno

 

ALTER table Teacher add unique(Tno);

 

Student表插入数据

INSERT INTO Student(Sno,Sname,Sex,Sage,Sdept) VALUES

('0811101','李勇','男',21,'计算机系'),

('0811102','刘晨','男',20,'计算机系'),

('0811103','王敏','女',20,'计算机系'),

('0811104','张小红','女',19,'计算机系'),

('0821101','张立','男',20,'信息管理系'),

('0821102','吴宾','女',19,'信息管理系'),

('0821103','张海','男',20,'信息管理系'),

('0831101','钱小平','男',21,'信息管理系'),

('0831102','王大力','女',20,'计算机系'),

('0831103','张姗姗','男',19,'计算机系');

 

Course表插入数据

INSERT INTO Course(Cno,Cname,Credit,Semester) VALUES

('C001','高等数学',4,1),

('C002','大学英语',3,1),

('C003','大学英语',3,2),

('C004','计算机文化学',2,2),

('C005','VB',2,3),

('C006','数据库基础',4,5),

('C007','数据结构',4,4),

('C008','计算机网络',4,4);

SC表插入数据

INSERT INTO SC(Sno,Cno,Grade) VALUES

('0811101','C001',96),

('0811101','C002',80),

('0811101','C003',84),

('0811101','C005',62),

('0811102','C001',92),

('0811102','C002',90),

('0811102','C004',84),

('0821102','C001',76),

('0821102','C004',86),

('0821102','C005',73),

('0821102','C007',NULL),

('0821103','C001',50),

('0821103','C004',80),

('0831101','C001',50),

('0831101','C004',80),

('0831102','C007',NULL),

('0831103','C004',78),

('0831103','C005',65),

('0831103','C007',NULL); 

 

Teacher表插入数据

INSERT INTO Teacher(Tno,Tname,Salary) VALUES

('T001','张美霞',5000),

('T002','王洪林',5500),

('T003','李丽芬',4800),

('T004','周良水',6000),

('T005','吴翔',7000);

建立环境实验和数据库/表 实验学时: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、付费专栏及课程。

余额充值