数据库 张 上机实验点评及参考答案2014

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

上机实验三——基本表的建立和修改

三、实习内容:

1.启动MSSQL Server服务,打开Enterprise Manager和Query Analyzer。

2.在Query Analyzer中用CREATE TABLE命令在实验二创建的GradeManager数据

库中定义基本表:学生表(Student)、课程表(Course),利用Enterprise Manager的图形化功能建立班级表(Class)以及成绩表(Grade)。

create table Student

( Sno char(7) primary key ,

Sname varchar(20) not null ,

Ssex char(2) not null,

Sage Smallint ,

Clno char(5)not null);

create table Class

( Clno char(5) primary key,

Speciality varchar(20) not null,

Inyear char(4) not null,

Number integer ,

Monitor char(7) );

create table Course

(Cno char(1) primary key,

Cname varchar(20) not null,

Credit Smallint );

create table Grade

(Sno char(7) references student(sno),

Cno char(1) references course(cno),

Gmark numeric,

Primary key(sno,cno));

四、针对以上四个表,用SQL语言完成以下各项操作。

①给学生表增加一属性Nation(民族),数据类型为Varchar(20);

②删除学生表中新增的属性Nation;

③向成绩表中插入记录(”2001110”,”3”,80);

④修改学号为”2001110”的学生的成绩为70分;

⑤删除学号为”2001110”的学生的成绩记录;

⑥为学生表创建一个名为IX_Class的索引。

1.

ALTER TABLE Student

ADD Nation varchar(20);

2.

ALTER TABLE Student

DROP COLUMN Nation;

3.

Insert into grade(sno,cno,gmark) values(‘2001110’,’3’,80)

点评:该语句没有语法错误,但好多同学在执行时出现了问题,是对的。但同学们要知道为什么会出现这个问题。

4.

UPDATE Grade

SET Gmark=70

WHERE Sno='2001110';

5.

DELETE

FROM Grade

WHERE Sno='2001110';

6.

CREATE INDEX IX_Class

ON Student(Clno Asc);

7.

DROP INDEX Student.IX_Class;

五、思考题

在定义基本表语句时,NOT NULL参数的使用有何作用?

答:Not Null参数,可以保证在插入数据时,该属性列的取值不为空。

上机实验四——SELECT语句的使用(一)

三、实习内容:

完成以下各项操作的SQL语句:

①找出所有被学生选修了的课程号;

select distinct cno from grade;

该语句实现的路径应该是Grade表, Course表中可能有某门课,一个学生都没有选修的。所以不能是查询Course表的Cno。

②找出01311班女学生的个人信息;

select * from student

where Ssex = '女' and clno = '01311' ;

③找出01311班、01312班的学生姓名、性别、出生年份;select Sname,Ssex,2012- Sage as birth

from student

where clno = '01311' or clno = '01312';

OR:

select Sname,Ssex,2012- Sage as birth

from student

where clno in('01311', '01312');

OR:(在T-SQL中,超大纲了,呵呵)

Select sname,sex,year(getdate())-sage

From student

Where clno in (‘01311’,’01312’);

④找出所有姓李的学生的个人信息;

select * from student

where Sname like '李%';

⑤找出学生李勇所在班级的学生人数;

Select count(*) from student

Where clno in (Select clno from student

Where sname=”李勇”);

Or: Select number from class

Where clno in (Select clno from student

Where sname=”李勇”);

相关文档
最新文档