本文主要是介绍用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语句,并执行所写代码,查看执行结果。
- 在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。
ALTER table Teacher add Title nchar(4);

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

- 删除Student表中的Sid和Sdate列。
ALTER table Student drop column Sid,Sdate;

- 为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);

这篇关于用SQL定义语句创建符合如下条件的数据库: 数据库名为:学生数据库,模式:默认模式 数据文件的物理文件名为:主数据文件Students_data.mdf(逻辑文件同名),日志文件:Students的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!