实验源码.docx

上传人:b****5 文档编号:11625522 上传时间:2023-03-29 格式:DOCX 页数:19 大小:20.56KB
下载 相关 举报
实验源码.docx_第1页
第1页 / 共19页
实验源码.docx_第2页
第2页 / 共19页
实验源码.docx_第3页
第3页 / 共19页
实验源码.docx_第4页
第4页 / 共19页
实验源码.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验源码.docx

《实验源码.docx》由会员分享,可在线阅读,更多相关《实验源码.docx(19页珍藏版)》请在冰豆网上搜索。

实验源码.docx

实验源码

实验1

8、(3)

selecttype,avg(price)

fromtitles

whereroyalty=10

groupbytype

实验2

4、

createdatabasestudb

execsp_helpdb

5、

alterdatabasestudb

modifyfile

(NAME=studb,

SIZE=5MB,

MAXSIZE=20MB,

FILEGROWTH=1MB

6、

alterdatabasestudb

ADDLOGFILE

(NAME=studb_log2,

FILENAME='C:

\ProgramFiles\MicrosoftSQLServer\MSSQL\data\studb_log2.ldf',

SIZE=5MB,

MAXSIZE=10MB

7、

alterdatabasestudb

MODIFYNAME=student_db

(错误:

未能排它地锁定数据库以执行该操作。

退出后重新执行)

8、

dropdatabasestudent_db

实验3

5、

useStudentsDB

createtablegrade(

学号char(4),

课程编号char(4),

分数decimal(5))

8、

usestudentsdb

insertintograde

values('0004','0001',80)

9、

altertablecurriculum

altercolumn课程编号char(4)notnull

10、

usestudentsdb

altertablegrade

altercolumn分数real

11、

altertablestudent_info

altercolumn学生姓名varchar(10)notnull

12、

Deletegradewhere学号=’0004’

13、

usestudentsdb

updategradeset分数=90where学号='0003'and课程编号='0005'

14、

usestudentsdb

altertablegrade

add备注varchar(20)NULL

实验思考:

1、

usestudentsdb

altertablegrade

dropcolumn备注

 

实验4

1、

usestudentsdb

selectcount(*)fromgrade

selectsubstring(姓名,1,2)fromstudent_info

selectupper('kelly')

selectreplicate('kelly',3)

selectsqrt(分数)fromgradewhere分数>=85

select2,3,power(2,3)

selectyear(getdate()),month(getdate()),day(getdate())

 

2、

usestudentsdb

select学号,姓名,出生日期fromstudent_info

select姓名,家庭住址fromstudent_infowhere学号='0002'

select学号,姓名fromstudent_infowhere性别='男'

3、

usestudentsdb

select学号,分数fromgradewhere分数between80and90

selectavg(分数)fromgradewhere学号='0003'

select课程编号,count(*)fromgradegroupby课程编号

select*fromStudent_infoorderby出生日期

select学号,姓名fromstudent_infowhere姓名like'张%'

4、

usestudentsdb

select姓名,出生日期fromstudent_infowhere性别=

(select性别fromstudent_infowhere姓名='刘卫平')

select学号,姓名,性别fromstudent_infowhere学号

in(select学号fromgradewhere课程编号in('0002','0005'))

select课程编号,分数fromgrade

where学号='0001'and分数>any(select分数fromgradewhere学号='0002')

select课程编号,分数fromgrade

where学号='0001'and分数>all(select分数fromgradewhere学号='0002')

5、

usestudentsdb

selectstudent_info.学号,姓名,分数fromstudent_info,grade

wherestudent_info.学号=grade.学号and分数between80and90

selectstudent_info.学号,姓名,分数fromstudent_info,grade,curriculum

wherestudent_info.学号=grade.学号andgrade.课程编号=curriculum.课程编号and课程名称='C语言程序设计'

selectstudent_info.学号,姓名,分数fromstudent_info

innerjoingradeonstudent_info.学号=grade.学号

innerjoincurriculumon课程名称='C语言程序设计'andgrade.课程编号=curriculum.课程编号

selectstudent_info.学号,姓名,课程名称,分数fromstudent_info,grade,curriculum

wherestudent_info.学号=grade.学号andgrade.课程编号=curriculum.课程编号and性别='男'

错:

selectstudent_info.学号,姓名,课程编号,分数fromstudent_info,grade

wherestudent_info.学号=grade.学号and分数in(selectmax(分数)fromgradegroupby学号)

selectstudent_info.学号,姓名,课程编号,分数fromgradex

innerjoinstudent_infoonx.学号=student_info.学号

where分数>=(selectmax(分数)FROMgradeywherey.学号=x.学号)

selectstudent_info.学号,student_info.姓名,sum(分数)as总分数fromstudent_infoLEFTOUTERJOINgrade

ONstudent_info.学号=grade.学号groupbystudent_info.学号,student_info.姓名

insertintograde

values('0004','0006',76,NULL)

selectgrade.课程编号,课程名称,count(*)as选修人数fromcurriculum

RIGHTOUTERJOINgradeONcurriculum.课程编号=grade.课程编号groupbygrade.课程编号,课程名称

select学号asu_编号,姓名asu_名称fromstudent_infowhere姓名like'张%'

UNION

select课程编号asu_编号,课程名称asu_名称fromcurriculum

7、

CREATETABLEtotalgrade

(学号char(4)NOTNULL,

姓名varchar(8)NULL,

总成绩decimal(5,2)NULL)

INSERTINTOtotalgrade

SELECT学号,姓名,总成绩=0FROMstudent_info

UPDATEtotalgradeSET总成绩=

(SELECTSUM(分数)FROMgradeWHEREtotalgrade.学号=grade.学号)

DELETEtotalgradeWHERE总成绩ISNULL

实验思考:

1、select学号,姓名,性别fromstudent_infowhere学号notin(select学号fromgrade)

2、select*fromstudent_infocrossjoingrade

3、

select*fromgradeorderby学号computesum(分数)by学号

实验5

3、

CREATEINDEXgrade_indexONgrade(分数)

4、

CREATEUNIQUEINDEXgrade_id_c_indONgrade(学号,课程编号)

5、

sp_helpindexgrade

sp_helpindexstudent_info

7、

sp_rename'grade.grade_index','grade_ind','INDEX'

8、

DROPINDEXgrade.grade_ind

16、

CREATEVIEWv_stu_c

AS

SELECTstudent_info.学号,姓名,课程编号FROMstudent_info

INNERJOINgradeONstudent_info.学号=grade.学号

SELECT*FROMv_stu_cWHERE学号='0003'

17、

CREATEVIEWv_stu_g

AS

SELECTstudent_info.学号,姓名,课程名称,分数FROMstudent_info,curriculum,grade

WHEREstudent_info.学号=grade.学号andgrade.课程编号=curriculum.课程编号

select*fromv_stu_gwhere学号='0001'

18、

ALTERVIEWv_stu_c(学号,姓名,课程数目)

ASSELECTstudent_info.学号,姓名,count(*)as课程数目FROMstudent_info,grade

WHEREstudent_info.学号=grade.学号groupbystudent_info.学号,姓名

19、

ALTERVIEWv_stu_i(学号,姓名,性别)

ASSELECT学号,姓名,性别FROMstudent_info

20、

Sp_renamev_stu_i,v_stu_info

21、

INSERTINTOv_stu_info

VALUES('0015','陈婷','女')

22、

deletev_stu_infowhere学号='0015'

23、

UPDATEv_stu_gSET分数=84WHERE姓名='刘卫平'and课程名称='高等数学'

24、

DROPVIEWv_stu_c

DROPVIEWv_stu_g

 

实验6

1、

(1)SELECT*INTOstu_phoneFROMstudent_info

ALTERTABLEstu_phoneADD电话号码CHAR(7)NULL

(2)

CREATERULEphone_rule

AS

@phoneLIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

(3)

sp_bindrulephone_rule,'stu_phone.电话号码'

(4)

INSERTINTOstu_phone(学号,姓名,电话号码)VALUES('0009','王国强','1234yyy')

服务器:

消息513,级别16,状态1,行1

列的插入或更新与先前的CREATERULE语句所强制的规则冲突。

该语句已终止。

冲突发生于数据库'studentsdb',表'stu_phone',列'电话号码'。

语句已终止。

3、

CREATERULEstusex_rule

AS

@sexIN('男','女')

sp_bindrulestusex_rule,'stu_phone.性别'

4、

sp_helpstusex_rule

sp_helptextstusex_rule

sp_rename'stusex_rule','stu_s_rule'

5、

sp_unbindrule'stu_phone.性别'

droprulestu_s_rule

6、

CREATEDEFAULTdf_date

AS'2006-4-12'

GO

CREATEDEFAULTdf_char

AS'unknown'

GO

CREATEDEFAULTdf_money

AS$100

GO

CREATETABLEstu_fee

(学号char(10)NOTNULL,

姓名char(8)NOTNULL,

学费money,

缴费日期datetime,

电话号码char(7))

GO

 

sp_bindefaultdf_money,'stu_fee.学费'

GO

sp_bindefaultdf_date,'stu_fee.缴费日期'

GO

sp_bindefaultdf_char,'stu_fee.电话号码'

GO

INSERTINTOstu_fee(学号,姓名)values('0001','刘卫平')

INSERTINTOstu_fee(学号,姓名,学费)values('0001','张卫民',$120)

INSERTINTOstu_fee(学号,姓名,学费,缴费日期)values('0001','马东',$110,'2006-5-12')

sp_unbindefault'stu_fee.电话号码'

DROPDEFAULTdf_char

sp_unbindefault'stu_fee.缴费日期'

DROPDEFAULTdf_date

GO

sp_unbindefault'stu_fee.学费'

DROPDEFAULTdf_money

8、

ALTERTABLEstudent_info

ADD院系char(10)

CREATEDEFAULTstu_d_df

AS'信息院'

GO

sp_bindefaultstu_d_df,'student_info.院系'

GO

INSERTINTOstudent_info(学号,姓名,性别)

VALUES('0010','asfga','女')

9

(1)

CREATETABLEstudentsdb.dbo.stu_con

学号char(4)NOTNULL,

姓名varchar(10)NOTNULL

CONSTRAINTuk_nameUNIQUENONCLUSTERED,

性别varchar

(2)NOTNULL

CONSTRAINTdf_sexDEFAULT'男',

出生日期datetimeNOTNULL

CONSTRAINTck_bdayCHECK(出生日期>'1988-1-1'),

家庭住址varchar(50)NOTNULL,

CONSTRAINTpk_sidPRIMARYKEY(学号)

INSERTINTOstu_con(学号,姓名,性别,出生日期,家庭住址)values('0009','张小东','','1989-4-6','')

INSERTINTOstu_con(学号,姓名,性别,出生日期,家庭住址)values('0010','李梅','女','1989-4-6','')

INSERTINTOstu_con(学号,姓名,性别,出生日期,家庭住址)values('0011','王强','','1989-4-6','')

INSERTINTOstu_con(学号,姓名,性别,出生日期,家庭住址)values('0012','王强','','1989-4-6','')

服务器:

消息2627,级别14,状态2,行1

违反了UNIQUEKEY约束'uk_name'。

不能在对象'stu_con'中插入重复键。

语句已终止。

不一致,学号列设为主键约束,不允许为空值,并且不能有相同学号出现。

姓名为唯一约束,则不能出现相同姓名,

性别为默认约束,在没有指定性别时,默认为男,

出生日期为属性值约束,限制年龄输入值。

(3)

ALTERTABLEstu_con

DROPCONSTRAINTpk_sid,uk_name,df_sex,ck_bday

 

实验7

1、

DECLARE@stu_namevarchar(10)

SELECT@stu_name=姓名

FROMstudent_info

WHERE姓名LIKE'张%'

SELECT@stu_name

2、

DECLARE@grademaxint,@grademinint,@gradesumint

SELECT@grademax=max(分数),@grademin=min(分数),@gradesum=sum(分数)

FROMgrade

SELECT@grademax,@grademin,@gradesum

3、

DECLARE@rowsint

SET@rows=(SELECTCOUNT(*)FROMgrade)

SELECT@rows

4、

DECLARE@intCIdint,@intErrorCodeint

INSERTINTOcurriculum(课程编号,课程名称,学分)

VALUES('0006','VB程序设计',2)

SELECT@intCId=@@identity,@intErrorCode=@@error

SELECT@intCId,@intErrorCode

5、

DECLARE@Msumint,@Fsumint

SELECT@Msum=COUNT(*)FROMstudent_infoWHERE性别='男'

SELECT@Fsum=COUNT(*)FROMstudent_infoWHERE性别='女'

SELECT@Msum,@Fsum

6、

DECLARE@grademaxint,@grademinint,@gradeavgint

SELECT@grademax=max(分数),@grademin=min(分数),@gradeavg=avg(分数)

FROMgradeINNERJOINcurriculumONgrade.课程编号=curriculum.课程编号and课程名称='高等数学'

SELECT@grademax,@grademin,@gradeavg

9、

DECLARE@stu_idchar(4)

SET@stu_id='0001'

IF((SELECTAVG(分数)FROMgradewhere学号=@stu_id)<60)

PRINT'你的成绩不及格'

ELSE

PRINT'你的成绩及格了,恭贺你'

10、

DECLARE@counterint

SET@counter=1

WHILE@counter<10

BEGIN

SELECT'@count的值现在为:

'+CONVERT(CHAR

(2),@counter)

SET@counter=@counter+1

END

11、

SELECT学号,分数,等级=

CASE

WHEN分数>=90THEN'A'

WHEN分数>=80AND分数<90THEN'B'

WHEN分数>=70AND分数<80THEN'C'

WHEN分数>=60AND分数<70THEN'D'

ELSE'E'

END

FROMgrade

12、

WHILE(SELECTAVG(分数)FROMgrade)<80

BEGIN

UPDATEgrade

SET分数=分数*1.05

IF(SELECTMAX(分数)FROMgrade)>95

BREAK

ELSE

CONTINUE

END

13、

DECLARE@nint,@counterint

SET@counter=1

SET@n=0

WHILE@counter<=20

BEGIN

SET@n=@n+@counter

SET@counter=@counter+1

END

SELECT@n

14、

DECLARE@nint

SET@n=1

WHILE@n<=10

BEGIN

SELECT@n*@n

SET@n=@n+1

END

16、

DECLAREstu_cursorCURSOR

SCROLL

FOR

SELECT*FROMstudent_infoWHERE性别='男'

FORUPDATE

OPENstu_cursor

FETCHNEXTFROMstu_cursor

WHILE@@fetch_status=0

BEGIN

FETCHNEXTFROMstu_cursor

END

CLOSEstu_cursor

17、

OPENstu_cursor

DECLARE@snochar(4),@snamevarchar(10)

FETCHNEXTFROMstu_cursorinto@sno,@sname

WHILE@@fetch_status=0

BEGIN

if(@snamelike'马%')

updatestudent_info

set出生日期=dateadd(yy,1,出生日期)

WHERECURRENTOFstu_cursor

FETCHNEXTFROMstu_cursorinto@sno,@sname

END

CLOSEstu_cursor

18、

DECLAREstu_cursorCURSOR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1