实验1 数据库的创建与简单查询

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库系统》实验

实验一数据表的建立与简单查询

一、实验目的

1.熟悉SQL的数据定义语言,能够熟练使用SQL语句来创建和更改基本表,创建和取消索引;

2.熟悉SQL语句的数据查询语言,能够使用SQL语句对数据库进行单表查询。

二、实验内容

数据定义:

1.创建关系数据库S_T,在数据库中存在四张表格,分别为:

学生表students(sno,sname,email,grade);其中

Sno:char(10),主码;

Sname:char(8),

Email:char(30),

Grade:smallint;

教师表Teachers(Tno,Tname,email,salary);

Tno:CHAR(8) ,主码;

Tname:char(8) 非空约束,

Email:char(30),

Salary:real 且Salary>=1500;

课程表Courses(Cno,Cname,Chour),

Cno:char(8),且cno具有非空约束;

cname:char(10),

Chour:tinyint;

课程表STC(Sno,Tno,Cno,score);STC表中的Sno,Cno是外码;

Sno:char(10),

Cno:CHAR(8),

Tno:CHAR(8),

Score:int,

Sno和cno共同做主码。

完成以下要求:

(1)两个表用对象资源管理创建,两个表用T-SQL语句创建,并将T-SQL语句代码保存(保存为*.SQL文件)。

(2)在创建表的过程中哪个表没有创建成功?根据提示分析哪个属性的什么约束没有创建成功?简述其原因及解决办法。

2.用T-SQL语句修改Students表,增加性别Ssex属性(类型CHAR,长度2),自定义约束为只能取“男”或“女”;

3.用T-SQL语句把STC表中的score改为smallint型;

4.用T-SQL语句在Students表的sname属性列上创建普通索引。

回答:到目前为止,students表有几个索引?指出这些索引是在哪些属性建的,分别是什么类型的索引?

数据查询:

请先输入四个表的具体信息,然后在此基础上完成下列查询:

课程表Courses

课程表

完成下列查询:

5. 查询年级为2005的所有学生的学号、姓名和年级;

6. 查询课时为64或48的课程名称和学时;

7. 查询所有课中含有“数”的课程号及课程名称;

8. 查询所有被选课程的课程号;

9. 查询没有参加考试的学生学号。

答案:

/*创建课程表*/

create table Courses

(Cno char(8) not null,

Cname char(10),

Chour tinyint

)

/*创建选课表*/

create table STC

(Sno char(10),

Cno char(8),

Tno char(8),

Score int,

primary key(Sno,Cno),

foreign key(Sno)references Students(Sno),

foreign key(Cno)references Courses(Cno)

)

/*5. 查询年级为2005的所有学生的学号、姓名和年级*/ SELECT *

FROM Students

WHERE Sno LIKE'2005%'

/*6. 查询课时为64或48的课程名称和学时*/ SELECT Cname AS '课程名称', Chour AS '学时'

FROM Courses

WHERE Chour='64' OR Chour='48'

/*7. 查询所有课中含有“数”的课程号及课程名称*/ SELECT Cno '课程号',Cname '课程名'

FROM Courses

WHERE Cname LIKE '%数%'

/*8. 查询所有被选课程的课程号*/

SELECT Cno '课程号',Cname '课程名'

FROM Courses

WHERE Cname LIKE '%数%'

SELECT Cno '未被选修课程'

FROM Courses

WHERE Cno NOT IN(SELECT o

FROM STC

/*9. 查询没有参加考试的学生学号*/ SELECT Sno '未参加考试学生学号' FROM STC

WHERE Score is null

相关文档
最新文档