首页 > 精品范文库 > 13号文库
实验三 SQL语言的DDL
编辑:柔情似水 识别码:22-975135 13号文库 发布时间: 2024-04-25 14:52:27 来源:网络

第一篇:实验三 SQL语言的DDL

实验三 视图、存储过程的定义和使用

一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。

本次实验了解DDL语言的CREATE、DROP、ALTER对视图和存储过程的操作,学会SQL Server 202_的查询分析器中实现视图的创建、查看、修改和删除;实现对存储过程的创建、修改、撤消和运行。

本实验需2学时。

二、实验内容

1. 启动数据库服务软件SQL Server 202_的查询分析器,用如下语句对视图进行操作,详

细的语法格式参看课本相应章节:

Create view 创建视图

Drop view删除视图

Select * from 视图名查询视图

2. 如下语句对存储过程进行操作,详细的语法格式参看课本相应章节:

Create proc 过程名

Dropproc 过程名

三、实验任务

1.打开数据库SQL Server 202_的查询分析器,用Create Table建表student。

2.向表中填入教材P82数据

3.根据student表创建视图V_stud.4.使用视图v_stud,向原student表中插入一行记录。

5.根据P82,创建SC表,创建视图,通过视图查看学生的姓名和选课情况。

6. 删除视图v_stud.7.根据student,sc,c三个表,创建存储过程proc1,查看学生的姓名,选课的课程名和相应的成绩。

8. 执行proc1

9.修改该存储过程为p_proc,并删除proc1.运行以上语句,并观察结果.10.将以上的SQL语言以报告的形式写出来,以备老师检查。

第二篇:重庆理工大学 实验二 SQL语言的DDL

实验二SQL语言的DDL

一.实习目的及要求:

本次实验了解SQL的数据定义语句:

(1)创建数据库、表、索引

(2)增加、删除表结构

(3)修改表结构

二 实习内容:用SQL语句建立SPJ数据库(见书P74,5),数据库名取自己的名字,如:张

三。

2在建好了的SPJ数据库中建立S、P、J、SPJ共4个表的表结构。

要求:(1)为属性选择合适的数据类型;

(2)为SPJ表增加一供应日期列,列名为SUPDATE,日期型;

(3)定义每个表的主码;

(4)定义上述4个表的表级约束:定义SPJ、S、P、J表之间的FOREIGN

KEY(外码)约束。

(5)为S、P、J表的SNAME、PNAME、JNAME列定义UNIQUE约

束;约束名分别命名为UQ_SNAME, UQ_PNAME,UQ_JNAME;

(6)实现DATE属性的Check(检查)约束: SUPDATE

(7)删除P表PNAME列的唯一性约束

(8)将P表中PNAME列的数据类型改为可变字符串型;用SQL语言在SPJ表上建立一个唯一性索引。

要求:按属性QTY的降序建立索引。使用企业管理器(Enterpriser Manager),在数据库SPJ上建立一个关系图。

检查SPJ、S、P、J四表的关系是否正确。

5.将以上的SQL语言保存,提交实验报告。

第三篇:实验四SQL语言

实验四 SQL语言——数据更新操作

202_-06-16 01:12:44|分类: 课程作业 |标签:数据更新操作sql语言|字号大中小 订阅

实验四 SQL语言——数据更新操作

三、实验条件与环境

1.通用PC机

2.PC机必须安装Windows 202_系列、Windows XP系列或Windows NT操作系统平台 3.PC机还须安装Microsoft SQL Server 202_ 任意一版本(个人版、标准版、企业版)

4.最好有一台公用的SQL Server 202_ 服务器

四、实验目的1.通过上机实验进一步加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌

2.通过上机实验掌握单个元组插入操作的实现过程

3.通过上机实验掌握多个元组插入操作的实现过程

4.通过上机实验掌握单个元组修改操作的实现过程

5.通过上机实验掌握多个元组修改操作的实现过程

6.通过上机实验掌握单个元组删除操作的实现过程

7.通过上机实验掌握多个元组删除操作的实现过程

8.通过上机实验加深对更新操作时数据库中数据一致性问题的了解

9.通过上机实验加深对约束条件在数据更新操作执行中的作用问题的了解

五、实验要求

1.本实验所有实验内容要求在规定时间(2课时)内完成2.实验内容中涉及到的各更新操作均通过SQL语言来实现

3.本实验中各操作内容的执行均会更新当前数据库,为便于下一实验内容的顺利执行,请在每成功完成一个实验内容后重新导入初始状态下的实验数据库

4.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交

六、实验内容:

1.在S表中插入元组“s6,华誉,40,广州,02085268888”

2.在J表中插入元组“j8,传感器厂”

3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库

4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60

5.将SPJ表中前4个元组的qty属性值统一修改为300

6.将S表中city属性名含有“京”或“津”的相应status属性值增加100

7.将供应商s2为“一汽”工程项目所供应的零件数量修改为202_

8.将全部红色零件的颜色修改为浅红色

9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改

10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列

上填上实验当时的日期和时间

11.删除所在城市为“广州”的供应商记录

12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录

13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数

据信息

七、实验总结:

数据更新操作(插入操作[INSERT]、修改操作[UPDATE]、删除操作[DELETE])是关系数据库系统中一种极为重要、数据更新能力强、使用灵活的数据操纵方式,此数据操作的使用不是完全独立的,而是和数据定义操作、数据查询操作有着紧密联系的。实验完成后,请同学们总结一下SQL语言在实现各种数据更新操作时与数据定义操作和数据查询操作两类操作之间的相互联系,通过深入总结,从而学会利用SQL语言实现较为复杂的数据更新任务。

实验四 SQL语言——数据更新操作

实验内容参考答案

六、实验内容

1.在S表中插入元组“s6,华誉,40,广州,02085268888”

use shiyan

go

insert

into s

values('s6','华誉',40,'广州','02085268888')

2.在J表中插入元组“j8,传感器厂”

use shiyan

go

insert

into j(jno,jname)

values('j8','传感器厂')

3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库

use shiyan

go

create table TotalQTYofS(SNO char(4)not null unique,TotalQTY int);

insert

into TotalQTYofS

select sno,sum(qty)

from spj

group by sno;

4.将P表中PNO值为p6的元组的color属性值改为绿,weight属性值改为60

use shiyan

go

update p

set color='绿',weight=60

where pno='p6'

5.将SPJ表中前4个元组的qty属性值统一修改为300

use shiyan

go

update spj

set qty=300

from(select top 4 * from spj order by sno)as table1

where spj.sno=table1.sno

6.将S表中city属性名含有“京”或“津”的相应status属性值增加100

use shiyan

go

update s

set status=status+100

where city like '%京%' or city like '%津%

7.将供应商s2为“一汽”工程项目所供应的零件数量修改为202_

use shiyan

go

update spj

set qty=202_

where sno='s2' and jno=(select jno

from j

where jname='一汽')

8.将全部红色零件的颜色修改为浅红色

use shiyan

go

update p

set color='浅红'

where color='红'

9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改

use shiyan

go

update spj

set sno='s3'

where sno='s5' and jno='j4' and pno='p6'

10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列

上填上实验当时的日期和时间

use shiyan

go

alter table spj

add SDATE datetime

update spj

set SDATE=getdate()

11.删除所在城市为“广州”的供应商记录

use shiyan

go

delete

from s

where city='广州'

12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录

use shiyan

go

delete

from p

where pname like '螺%'

delete

from spj

where pno in(select pno

from p

where pname like '螺%')

13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数据信息

use shiyan

go

delete

from spj

where(sno='s3' or sno='s4')and jno in(select jno

from j

where jname='三建')and pno in(select pno

from p

where pname='螺母' or pname='螺丝刀')

第四篇:实验三 SQL语言查询功能—单表查询

实验三 SQL语言查询功能—单表查询

实验目的:

1)理解查询的原理

2)熟练投影查询、带条件的查询、多条件查询、分组查询

实验内容:

1、查询全部的学生信息

select * from 学生

2、查询与张佳吟的信息,列出其学号,姓名

select 学号,姓名 from 学生 where 姓名='张佳吟'

3、查询选修了课程的学生信息,列出其学号

select distinct 学号from 成绩

4、查询所有入学成绩在500分以上的男生信息

select * from 学生 where 性别='男'and 入学成绩>=5005、查询年龄为20岁和21岁的学生,列出学号,姓名,年龄

select 学号,姓名,202_-YEAR(出生日期)as 年龄 from 学生 where 202_-YEAR(出生日期)=20 or2012-YEAR(出生日期)=216、查询年龄在20-23岁之间的学生信息

select * from 学生 where 202_-YEAR(出生日期)between 20 and 237、分别统计男生和女生的人数

select COUNT(性别)as 人数,性别 from 学生 group by 性别

8、统计选过课程的学生人数

select COUNT(distinct(学号))as 人数 from 成绩

9、统计每门选课成绩的平均分

select 课程号,AVG(成绩)as平均分 from 成绩 group by 课程号

10、统计选课成绩在80分以上的每门课程的学生人数

select 课程号, count(*)as 人数 from 成绩 where 成绩>=80 group by 课程号

11、统计每个学生所有课程的总分,平均分,按照平均分降序排列

select 学号,SUM(成绩)as 总分,AVG(成绩)as平均分 from 成绩 group by 学号 order by平均分

第五篇:SQL语言

1.输出任意两个字符串变量的值(参考代码)

declare @v1 varchar(12),@V2 varchar(12)

set @v1='中国'

set @v2='你好!'

select @v1+@v2

2.为以下程序纠错

declare @v1 varchar(12),@V2 varchar(10)

set @v1='中国'

set @v2='你好!'

set @s='吗!'

select @v1+@v2+@s

3.运行以下代码,观察以下全局变量的功能

select 34@@connections 返回当前服务器的连接数目

select 1@@rowcount 返回上一条T-SQL语句影响的数据行数 select @@error返回上一条T-SQL语句执行后的错误号 select @@procid返回当前存储过程的ID号

select @@remserver 返回登录记录中远程服务器的名字 select @@spid返回当前服务器进程的ID标识

select @@version 返回当前SQL Server服务器的版本和处理器类型 select @@language 返回当前SQL Server服务器的语言

select @@connections

4.输入以下代码并理解其含意

bggin

if 3>5

select 'true'

else print 'false'

end

go

begin

if 'a'<'A'

select 'true'

else print 'false'

end

go

begin

if '张'>'李'

select 'true'

else print 'false'

end

go

begin

if getdate()>202_-10-10

print'true'

else print'false'

end

5.附加数据库student,并进行以下操作

use student

select * from xsda

以XSDa表为例,如果平均成绩高于75分,则显示“不错!”,否则,显示“加油呀!”。

declare @av1 char(12), @av2 char(12)

set @av1='不错!'

set @av2='加油!'

if(select avg(总学分)from xsda)>75

begin

select @av1

end

else

select @av2

编写一个程序,显示每一同学的成绩等级

select xh,zf,dj=

case

when zf>70 then '优秀'

when zf>65 then '良好'

when zf>=60 then '合格'

else '不合格'

end

from xsdn

6.求1-100偶数和(参考代码)

declare @i int,@s int/*定义变量*/

set @i=0/*变量赋初值*/

set @s=0

while @i<=100/*条件*/

begin

set @s=@s+@i/*累加求和*/

set @i=@i+2/*偶数*/

end

print @s

7.求10!

8.为以下程序纠错(求1-100的积)

declare @i int,@s int

set @i=0

set @s=0

while @i<=100 begin

set @s=@s*@iset @i=@i+2 end

print @s

实验三 SQL语言的DDL
TOP