文档库 最新最全的文档下载
当前位置:文档库 › SQL语言实验报告

SQL语言实验报告

《数据库原理及应用》实验报告

sql语句部分

班级: 11-37-06 学号:姓名:

总成绩:

实验一熟悉sql server,数据定义实验

实验一成绩:

一、实验目的

1、利用查询分析器创建数据库

2、利用查询分析器用sql语言定义基本表、索引并进行相关操作二、实验步骤及内

容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学

生选修课程的信息。

1.创建学生课程数据库

6、在表s上增加“出生日期”属性列。

7、删除表s的“年龄”属性列。

8、删除s

姓名列的唯一值约束。 9、修改sc表成绩属性列为精确数字型。

10、在表s上,按“sno”属性列的唯一值方式建立索引。 11、删除表sc,利用磁盘

上保存的.sql文件重新创建表sc。

12、创建教材p74页习题5中spj数据库中的四个关系:s、p、j、spj。

三、实验结果:

1.创建学生课程数据库

create database studend; 5.将以上创建表s、c、sc的sql命令以 .sql文件的形式保存在磁盘上。

(

sno char(9) primary key, sname char(20) unique, ssex char(2), sage smallint,

sdept char(20), );

3.创建课程关系表c :

(

cno char(4) primary key, cname char(40), cpno char(4 ), ccredit smallint, ); (

sno char(9), cno char(4), grade smallint, ); 5.将以上创建表s、c、sc 的

sql命令以 .sql文件的形式保存在磁盘上。 6、在表s上增加“出生日期”属性列。

alter table s add sbirthday datetime;

7、删除表s的“年龄”属性列。

alter table s drop column sage;

8、删除s姓名列的唯一值约束。

alter table s drop uq__s__7d78a4e7;

9、修改sc表成绩属性列为精确数字型。

alter table sc alter column grade int;

10、在表s上,按“sno”属性列的唯一值方式建立索引。

create unique index stusno on s(sno);

11、删除表sc,利用磁盘上保存的.sql文件重新创建表sc。

drop table sc;

12、创建教材p74页习题5中spj数据库中的四个关系:s、p、j、spj。

实验二数据更新实验实验二成绩:

一、实验目的

1、熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用

2、加深理解表

的定义对数据更新的作用二、实验步骤及内容

(一)利用查询分析器在表中插入数据

打开在实验一中建立的“学生课程”数据库;

在“scdb”数据库中的student、course、sc表中插入数据; student表的内容:

sno sname ssex sage sdept 95001 李勇男 20 cs

95002 刘晨女 19 is 95003 王敏女 18 ma

course表的内容

cno cname cpno credit 1 数据库 5 4 2 数学

null 2 3 信息系统 1 4 4 操作系统 null 3 5 数据处

理 null 2 sc表的内容

sno cno grade 95001 1 92 95001 2 65 95001 3

88 95002 2 90 95002 3 80 (二)修改表中的数据

在插入数据后的三张表s、c、sc中进行相关的更新操作: 1、将student表中‘李勇’

的名字改为‘李明’; 2、将student表中‘王敏’的年龄改为20岁; 3、将所有学生的年

龄增加1岁;

4、修改学生的学号‘95002’为‘95005’,注意表之间的关系,保持一致性;

5、把选

修了“2”号课程,且成绩低于70分的成绩提高5%; 6、将“cs”系全体学生的成绩置零;

(三)删除表中的数据

1、把选修了“2”号课程,且成绩低于70分的学生的成绩删除掉;

2、删除学号为“95003”

的相关信息;

3、删除is系选修了2号课程的选课记录;

4、删除“cs”系的全体学生的选课记录;

5、删除整张表的数据,注意表之间的关系,保持一致性。篇二:数据库原理及应用实验

报告之sql语言(一) sql定义语言

实验目的:

1.熟练掌握sql语言进行基本表结构的创建。

2.熟练应用sql语言进行表结构的修改。

3.掌握sql语言进行基本表的删除。

4.掌握sql语言进行索引的建立和删除

5.选择具体的数据库管理系统进行实现(access 或sql server)

实验内容和要求:

1.切换到access的sql视图或者打开sql server查询分析器进行定义操作

2.用sql语言create table语句创建学生表student、课程表course和选课表sc;(字

段类型及长度参照实验一)

3.用sql语言alter语句修改表结构;

a)student表中sno设为非空和唯一;

b)student表中增加一个字段sbirth,类型设置为日期时间类型,增加一个address字

段,类型为文本(字符);

c)删除student表中address字段;

d)course表中cno字段设为非空和唯一;

4.重新定义一个简单表,然后用sql语言drop语句删除该表结构;

5.用sql语言create index语句定义表student的sname字段的降序索引;

6.用sql语言create index语句定义表sc的grade字段的升序索引;

7.用sql语言drop语句删除索引;

8.输入部分数据,并试着修改其中的错误;

实验过程与步骤:

(1)创建学生表student的实现如下:

create table student(

sno char(8),

sname char(8) ,

ssex char(2) ,

sage smallint,

sdept char(20)

);

(2)创建课程表course的实现如下:

create table course(

cno char(3) ,

cname char(20),

cpon char(3),

credit numeric(2,1)

);

(4)创建选课表sc实现如下:

create table sc(

sno char(8),

cno char(3),

grade numeric(4,1) );

(5)表建完后,就是对表结构的操作,可用drop删除表的某一列,create index 创建

索引,用add constraint添加属性等,具体操作详见压缩包对实验内容的实现的命令。

实验分析总结:

建表很容易,主要是对表中索引的创建和对表中某一属性的设置使用不是很熟练,不过

这一节都是基础的操作,较为简单,不像对表中信息的操作,颇为复杂,但还是得勤加练习,

以达熟能生巧的地步。篇三:sql语言的应用实验报告南京邮电大学

篇四:sql实验报告

南京信息工程大学实验(实习)报告

实验(实习)名称数据库和表的创建与管理实验(实习)日期 2013.10.21 得分

指导教师方忠进

系计算机专业网络工程年级 2011 班次 1 姓名陈雯雯学号

20112346003

内容一使用向导创建和删除数据库

一.实验目的

1.熟悉 sql server 2005 中 sql server management studio 的环境

2.了解 sql server

2005 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法

二.实验内容

50mb,数据库自动增长,增长方式是设有一学籍管理系统,其数据库名为“educ”,

初始大小为 10mb,最大为按 5%比例增长;日志文件初始为2mb,最大可增长到 5mb,按 1mb

增长。数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放

路径为“e:\sql_data”。日志文件的逻辑文件名为“student_log”, 物理文件名为

“student_log.ldf”,存放路径为“e:\sql_data”。 (1) 使用向导创建上诉描述的数据库。

使用 sql server management studio(简称 ssms)创建数据库。 (2)使用向导删除上

面建立的数据库。用 ssms 删除添加建立的数据库 educ1。三.实验步骤(详细)

(一)使用向导创建上诉描述的数据库。

使用 sql server management studio(简称 ssms)创建数据库 1. 启动 ssms 在开始菜单中:所有程序- sql studio server 2005- sql server

management 单击“连接”按钮,便可以进入【sql server management studio】窗口。如

果身份验证选择的是“混合模式”,则要输入 sa 的密码。 2. 建立数据库

在“对象资源管理器”窗口,建立上述数据库 educ。在数据库节点上

右击选择新建。同时建立一个同样属性的数据库 educ1。

3.

修改数据库名,数据库逻辑名,初始大小,增长方式等

(二)使用向导删除上面建立的数据库。用

ssms 删除添加建立的数据库 educ1。

内容四

一.实验目的

1.了解表的结构特点。

2.学会在企业管理器中修改表的定义。

修改数据库基本表的定义

3.学会使用 sql 语句修改表的定义。二.实验内容修改列属性

(1)用企业管理器将student 表中的 birthday字段设为不能为空(not null)。

(2)用 sql 语句将 student 表中的属性 sno char(8)改成 varchar(20)类型。添加

(1)用企业管理器在 course 表中添加一列 year ,类型为 varchar(4),默认值为

空。(2)用 sql 语句在 year 字段添加约束,year 的属性值在 2004-2008 之间。删

除列

(1)用 sql 语句将 course 表中的 year 字段删除。

三.实验步骤(详细) 1. 修改列属性

步骤1:用企业管理器将student表中的birthday字段设为不能为空(not null)。方

法:右键点击表 student,单击“修改”,将 birthday 属性的“允许空”修改为“否”

步骤2:由于sno为主键,要用sql语句将student表中的属性sno char(8)改成varchar

(20)类型,则需要先

删除主键,修改后再添加主键代码: use educ go alter table student drop constraint pk_student alter table student

alter column sno varchar(20) not null alter table student add constraint pk_student primary key (sno) 2.

(1)步骤:展开 course 子目录,右键点击-新建列,加入 year 和类型

添加列

(2)步骤:新建查询,在查询编辑窗口输入: use educ

alter table course add

constraint year check(year between 2004 and 2008) 然后执行。

3.删除列

步骤:新建查询,在查询编辑窗口输入 use educ go alter table dbo.course drop constraint year alter table course drop

column year 篇五:实验三 sql(二) sql语言进行简单查询实验报告

sql(二) sql语言进行简单查询实验报告

实验目的:

1. 掌握sql查询语句的一般格式

2. 掌握简单数据查询操作。

3. 熟练掌握各种查询条件的表示。

4. 掌握排序和分组操作在sql语句中的实现。

5. 掌握集函数的使用。

实验内容;

1. 创建学生表student、课程表course和选课表sc,并输入数据(注意数据的完整性。);

(可以使用实验一中已经建立的表和数据)

2. 对各表中的数据进行不同条件的查询;

1)查询全体学生的学号和姓名

2)

3)

4)

5)

6)

7)

8)

9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学

生学号查询不是信息系(is)、计算机系(cs)的学生性别、年龄、系别查询选修了4号课

的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系

(cs)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;

10)查询姓刘的学生情况

11)查询既选修1号课程,又选修2号课程的学生学号

12)查询学生的姓名和出生年份(今年2003年)

13)查询没有成绩的学生学号和课程号

14)查询总成绩大于200分的学生学号

15)查询每门课程不及格学生人数

16)查询不及格课程超过3门的学生学号

17)查询年龄在10到19岁之间的学生信息

18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)

查询选了1号课程的学生平均成绩

20)查询选了3号课程的学生的最高分

21)查询每个同学的总成绩

实验步骤与过程:

1.创建学生表student、课程表course和选课表sc,使用实验一中已经建立的表和数据。

2.并输入数据,设置主键。

3.建立索引及三表之间关系。

4.按照sql语句格式及题目要求输入语句进行以下查询:

1、查询全体学生的学号和姓名;

2、查询全体学生的详细记录;

3、查询所有选修过课程

的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(is)、计算机系(cs)

的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;

7、查询每个课程号和相应的选课人数;8、查询计算机系(cs)的学生姓名、年龄、系

别;

9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、

查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年

2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;

15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查

询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个

系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程

的学生的最高分;21、查询每个同学的总成绩

实验结果:

利用实验一中所建立的表设置主键,建立索引及三表之间关系。编写sql查询语句。实

现了题目了所给的21种简单的查询。实现的查询内容为:1、查询全体学生的学号和姓名;2、

查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学

生学号;5、查询不是信息系(is)、计算机系(cs)的学生性别、年龄、系别;6、查询选修

了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;

8、查询计算机系(cs)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、

系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生

学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课

程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;

16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;

18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查

询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同

学的总成绩

主要sql语句:

1.

select sno, sname

from student;

2.

select *

from student;

3.

select sno

from sc;

4. select sno

from sc

where grade < 60;

5.

select ssex, sage, sdept

from student

where sdept not in (is,cs);

6.

select sno, grade

from sc

where cno =004

order by grade desc;

7.

select cno, count(sno)

from sc

group by cno;

8.

select sname, sage, sdept

from student

where sdept =cs;

9.

select sno, sname, sdept, sage from student

where sage between 18 and 20;

10.

select *

from student

where sname like 刘*;

11.

select sno

from sc

where sno in (select sno from sc where cno=001) and cno=002; 12. select sname, 2008 - sage

from student;

13.

select sno, cno

from sc

where grade is null;

14.

select sno

from sc

group by sno

having sum(grade) > 200;

15.

select cno, count(sno)

from sc

where grade < 60

group by cno;

16.

select cno, count (sno)

from sc

where grade < 60

group by cno

having count (cno) > 3;

17.

select *

from student

where sage like 1#;

18.

select *

from student

order by sdept, sage desc;

19.

select avg(grade)

from sc

where cno =001;

20.

select max(grade)

from sc

where cno =003;

21.

select sno, sum(grade)

from sc

group by sno;

疑难与小结:

通过本次试验掌握了:

1.如何设置主键,并建立索引及表之间关系;

2.sql查询语句的一般格式;

3.简单数据查询操作;

4.熟练了掌握各种查询条件的表示;

5.排序和分组操作在sql语句中的实现;

6.基本掌握了集函数的使用;

在集函数的使用方面和个别较复杂的查询语句不够熟练,需要多加练习。

相关文档