数据库应用例题源代码.docx

上传人:b****6 文档编号:16802611 上传时间:2023-07-17 格式:DOCX 页数:51 大小:26.50KB
下载 相关 举报
数据库应用例题源代码.docx_第1页
第1页 / 共51页
数据库应用例题源代码.docx_第2页
第2页 / 共51页
数据库应用例题源代码.docx_第3页
第3页 / 共51页
数据库应用例题源代码.docx_第4页
第4页 / 共51页
数据库应用例题源代码.docx_第5页
第5页 / 共51页
数据库应用例题源代码.docx_第6页
第6页 / 共51页
数据库应用例题源代码.docx_第7页
第7页 / 共51页
数据库应用例题源代码.docx_第8页
第8页 / 共51页
数据库应用例题源代码.docx_第9页
第9页 / 共51页
数据库应用例题源代码.docx_第10页
第10页 / 共51页
数据库应用例题源代码.docx_第11页
第11页 / 共51页
数据库应用例题源代码.docx_第12页
第12页 / 共51页
数据库应用例题源代码.docx_第13页
第13页 / 共51页
数据库应用例题源代码.docx_第14页
第14页 / 共51页
数据库应用例题源代码.docx_第15页
第15页 / 共51页
数据库应用例题源代码.docx_第16页
第16页 / 共51页
数据库应用例题源代码.docx_第17页
第17页 / 共51页
数据库应用例题源代码.docx_第18页
第18页 / 共51页
数据库应用例题源代码.docx_第19页
第19页 / 共51页
数据库应用例题源代码.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库应用例题源代码.docx

《数据库应用例题源代码.docx》由会员分享,可在线阅读,更多相关《数据库应用例题源代码.docx(51页珍藏版)》请在冰点文库上搜索。

数据库应用例题源代码.docx

数据库应用例题源代码

【例4-1】

SELECT*FROM"MyTable"

SELECT*FROM[MyTable]

【例4-2】

SELECT*FROMauthors

SELECT*FROM"authors"

SELECT*FROM[authors]

【例4-3】

DECLARE@MyCounterint

【例4-4】

DECLARE@LastNamenvarchar(30),@FirstNamenvarchar(20),@Statenchar

(2)

【例4-5】

DECLAREMyVariableint

SET@MyVariable=1

GO

SELECT*

FROMEmployees

WHEREEmployeeID=@MyVariable

【例4-6】

DECLARE@myvarchar(20)

SET@myvar='Thisisatest'

PRINT@myvar

【例4-7】

DECLARE@myvar1char(20),@myvar2char(20)

SELECT@myvar1='Hello!

',@myvar2='Howareyou!

'

SELECT@myvar1,@myvar2

【例4-10】

SELECTSTR(YEAR('03/12/1998'),4)+'年'+STR(MONTH('03/12/1998'),2)+'月'

+STR(DAY('03/12/1998'),2)+'日'

【例4-11】

SELECTCONVERT(char,GETDATE(),102)ASa1,CONVERT(char,GETDATE(),5)ASa2,

CONVERT(char,GETDATE(),1)ASa3

【例4-12】

DECLARE@date_var1datetime,@date_var2datetime

SET@date_var1=CAST('00-12-31'asdatetime)

SET@date_var2=CAST('12:

30:

58'asdatetime)

SELECT'date_var1'=CONVERT(char(20),@date_var1,3),

'date_var2'=CONVERT(char(20),@date_var2,108)

【例4-13】

(1)SELECTAVG(数学成绩),AVG(英语成绩)FROM学生成绩

(2)SELECTCOUNT(数学成绩)FROM学生成绩WHERE数学成绩>80

(3)SELECTCOUNT(*)FROM学生成绩

(4)SELECTMAX(数学成绩),MIN(数学成绩)FROM学生成绩

(5)SELECTSUM(数学成绩),SUM(英语成绩)FROM学生成绩

【例4-14】

USE学生信息--打开“学生信息”数据库

DECLARE@Todayint--定义局部变量@Today为int类型

SET@Today=DAY(GETDATE())--给变量@Today设置为当前日期

IF(@Today=1)--如果@Today为1,则从数据库中查询信息

BEGIN

SELECT学号,姓名AS本月寿星,出生日期

FROM学生基本信息

WHEREMONTH(出生日期)=MONTH(GETDATE())

END

【例4-15】

USEpubs

IF(SELECTAVG(price)FROMtitlesWHEREtype='mod_cook')<$15

BEGIN

PRINT'Thefollowingtitlesareexcellentmod_cookbooks:

'

PRINT''

SELECTtitleFROMtitlesWHEREtype='mod_cook'

END

ELSE

PRINT'Averagetitlepriceismorethan$15.'

【例4-16】

USEpubs--打开pubs数据库

SELECTtitleas书名,--显示title列内容,列名显示为“书名”

图书类别=--显示type列全称,列名显示为“图书类别”

CASEtype

WHEN'popular_comp'THEN'PopularComputing'

WHEN'mod_cook'THEN'ModernCooking'

WHEN'business'THEN'Business'

WHEN'psychology'THEN'Psychology'

WHEN'trad_cook'THEN'TraditionalCooking'

ELSE'Notyetcategorized'

END,

priceAS价格--显示price列内容,列名显示为“价格”

FROMtitles--从titles表查询

【例4-17】

USEpubs--打开pubs数据库

SELECTtitleas书名,priceas价格,--用中文列名显示title和price列

价格类别=

CASE--根据不同的price值给出不同的提示

WHENpriceISNULLTHEN'Notyetpriced'

WHENprice<10THEN'VeryReasonableTitle'

WHENprice>=10andprice<20THEN'CoffeeTableTitle'

ELSE'Expensivebook!

'

END

FROMtitles--从titles表查询

【例4-18】

DECLARE@ismallint,@sumsmallint

SET@i=1

SET@sum=0

WHILE@i<=100

BEGIN

SET@sum=@sum+@i

SET@i=@i+1

END

PRINT'1到100之间的奇数和为'+str(@sum)

或:

DECLARE@ismallint,@sumsmallint

SET@i=0

SET@sum=0

WHILE@i>=0

BEGIN

SET@i=@i+1

IF@i<=100

IF(@i%2)=0

CONTINUE

ELSE

SET@sum=@sum+@i

ELSE

BEGIN

PRINT'1到100之间的奇数和为'+str(@sum)

BREAK

END

END

【例4-19】

DECLARE@sumint,@countint

SET@sum=0

SET@count=1

label_1:

SET@sum=@sum+@count

SET@count=@count+1

IF@count<=50

GOTOlabel_1

PRINTstr(@count)+str(@sum)

【例4-20】

BEGIN

WAITFORDELAY'00:

01'

PRINT'HELLO'

END

【例4-21】

BEGIN

WAITFORTIME'22:

20'

PRINT'HELLO'

END

【例5-1】

CREATEDATABASEcompany--创建company数据库

ONPRIMARY--定义在主文件组上的文件

(NAME=company_data,--主数据文件逻辑名称

FILENAME='e:

\sql_data\company.mdf',--主数据文件物理名称

SIZE=10,--初始大小为10MB

MAXSIZE=unlimited,--最大限制为无限大

FILEGROWTH=10%)--增长速度为10%

LOGON--定义事务日志文件

(NAME=company_log,--事务日志文件逻辑名称

FILENAME='e:

\sql_log\company.ldf',--事务日志文件物理名称

SIZE=1,--初始大小为1MB

MAXSIZE=5,--最大限制为5MB

FILEGROWTH=1)--增长速度为1MB

【例5-2】

CREATEDATABASEemployees--数据库名称

ONPRIMARY--定义在主文件组上的文件

(NAME=employee1,--主数据文件逻辑名称

FILENAME='e:

\sql_data\employee1.mdf',--主数据文件物理名称

SIZE=10,--主数据文件初始大小为10MB

MAXSIZE=unlimited,--最大限制为无限大

FILEGROWTH=10%),--增长速度为10%

(NAME=employee2,--次数据文件逻辑名称

FILENAME='e:

\sql_data\employee2.ndf',--次数据文件物理名称

SIZE=20,--次数据文件初始大小为20MB

MAXSIZE=100,--次数据文件最大限制为100MB

FILEGROWTH=1)--次数据文件增长速度为1MB

LOGON--定义事务日志文件

(NAME=employeelog1,--事务日志文件逻辑名文件

FILENAME='e:

\sql_log\employeelog1.ldf',--事务日志文件物理名称

SIZE=10,--初始大小为10MB

MAXSIZE=50,--最大限制为50MB

FILEGROWTH=1),--增长速度为1MB

(NAME=employeelog2,--事务日志逻辑文件名

FILENAME='e:

\sql_log\employeelog2.ldf',--事务日志文件物理名称

SIZE=10,--初始大小为10MB

MAXSIZE=50,--最大限制为50MB

FILEGROWTH=1)--增长速度为1MB

【例5-3】

CREATEDATABASEtest

ONPRIMARY--定义在主文件组上的文件

(NAME=pri_file1,

FILENAME='e:

\sql_data\pri_file1.mdf',

SIZE=10,MAXSIZE=50,FILEGROWTH=15%),

(NAME=pri_file2,

FILENAME='e:

\sql_data\pri_file2.ndf',

SIZE=10,MAXSIZE=50,FILEGROWTH=15%),

FILEGROUPGrp1--定义在次文件组Grp1上的文件

(NAME=Grp1_file1,

FILENAME='e:

\sql_data\Grp1_file1.ndf',

SIZE=10,MAXSIZE=50,FILEGROWTH=5),

(NAME=Grp1_file2,

FILENAME='e:

\sql_data\Grp1_file2.ndf',

SIZE=10,MAXSIZE=50,FILEGROWTH=5),

FILEGROUPGrp2--定义在次文件组Grp2上的文件

(NAME=Grp2_file1,

FILENAME='e:

\sql_data\Grp2_file1.ndf',

SIZE=10,MAXSIZE=50,FILEGROWTH=5),

(NAME=Grp2_file2,

FILENAME='e:

\sql_data\Grp2_file2.ndf',

SIZE=10,MAXSIZE=50,FILEGROWTH=5)

LOGON--定义事务日志文件

(NAME='test_log',

FILENAME='e:

\sql_log\test_log.ldf',

SIZE=5,MAXSIZE=25,FILEGROWTH=5)

【例5-4】

ALTERDATABASEemployees--修改数据库employees

ADDFILEGROUPdata1--添加文件组data1

ALTERDATABASEemployees--修改数据库employees

ADDFILE--添加数据文件

(NAME=employee3,--逻辑文件名

FILENAME='e:

\sql_data\employee3.ndf',--物理文件名

SIZE=1,--定义文件大小

MAXSIZE=50,--定义文件最大限制

FILEGROWTH=1),--定义文件增长量

(NAME=employee4,

FILENAME='e:

\sql_data\employee4.ndf',

SIZE=2,

MAXSIZE=50,

FILEGROWTH=10%)

TOFILEGROUPdata1--将以上两个文件添加到data1文件组

ALTERDATABASEemployees

ADDLOGFILE--添加日志文件

(NAME=employeelog3,

FILENAME='e:

\sql_log\employeelog3.ldf',

SIZE=1,

MAXSIZE=50,

FILEGROWTH=1)

【例5-5】

ALTERDATABASEemployees

REMOVEFILEemployee4

【例5-6】

ALTERDATABASEemployees

MODIFYFILE

(NAME=employee3,

SIZE=5MB)

【例5-7】

ALTERDATABASEemployees

MODIFYNAME=MyEmployees

或:

EXECsp_renamedb'employees','MyEmployees'

【例5-8】

DROPDATABASEcompany

【例5-9】

EXECsp_addumpdevice@devtype='disk',

@logicalname='copy1',

@physicalname='d:

\Mybackup\company.bak'

或:

EXECsp_addumpdevice'disk','copy1','d:

\Mybackup\company.bak'

【例5-10】

EXECsp_addumpdevice'disk','copy2','\\teacher\backup\company1.bak'

【例5-11】

EXECsp_addumpdevice'tape','tapedevice','\\.\TAPE0'

【例5-12】

EXECsp_dropdevice'tapedevice'

【例5-13】

EXECsp_dropdevice'copy1','DELFILE'

【例5-14】

sp_addumpdevice'disk','mycopy1','d:

\mybackup\学生管理.bak'

--用BACKUPDATABASE备份学生管理数据库

BACKUPDATABASE学生管理

TOmycopy1

WITH

NAME='学生管理备份',

DESCRIPTION='完全备份'

【例5-15】

sp_addumpdevice'disk','STDcopy','\\ServerX\backup\student.dat'

BACKUPDATABASE学生管理TOSTDcopy

【例5-16】

BACKUPDATABASE学生管理TOmycopy1

WITHDIFFERENTIAL,

NOINIT,

NAME='学生管理备份',

DESCRIPTION='第一次差异备份'

【例5-17】

BACKUPDATABASEtest

FILE='grp1_file1'

TODISK='E:

\temp\grp1_file1.dat'

【例5-18】

BACKUPDATABASEtest

FILEGROUP='grp1'

TODISK='E:

\temp\group1.dat'

WITH

NAME='groupbackupoftest'

【例5-19】

EXECsp_addumpdevice'disk','MyLog1','e:

\temp\MyLog1.bak'

BACKUPLOG学生管理TOMyLog1

【例5-20】

方法一:

EXECsp_addumpdevice'disk','copy1','E:

\temp\职工.bak'

RESTOREDATABASE职工信息

FROMcopy1

WITH

MOVE'职工_data'

TO'e:

\sql_data\职工信息.mdf',

MOVE'职工_log'

TO'e:

\sql_log\职工信息.lgf',

REPLACE

方法二:

RESTOREDATABASE职工信息

FROMDISK='E:

\temp\职工.bak'

WITH

MOVE'职工_data'

TO'e:

\sql_data\职工信息.mdf',

MOVE'职工_log'

TO'e:

\sql_log\职工信息.lgf',

REPLACE

【例5-21】

--恢复完全备份

RESTOREDATABASE学生管理

FROMmycopy1

WITH

FILE=1,

NORECOVERY

--这时数据库无法使用,继续恢复差异备份

RESTOREDATABASE学生管理

FROMmycopy1

WITH

FILE=2,

RECOVERY--这时数据库可以使用

【例5-22】

--恢复完全备份

RESTOREDATABASE学生管理

FROMmycopy1

WITH

FILE=1,

NORECOVERY

--这时数据库无法使用,继续恢复差异备份

RESTOREDATABASE学生管理

FROMmycopy1

WITH

FILE=2,

NORECOVERY

--这时数据库仍然无法使用,继续恢复事务日志备份

RESTORELOG学生管理

FROMMylog1

WITH

RECOVERY--完成恢复,数据库可以使用

【例6-2】

CREATETABLE学生

记录编号intPRIMARYKEYIDENTITY(1,1),

姓名varchar(50)NOTNULL,

性别bitDEFAULT(0),

班级varchar(50)NOTNULL,

入学成绩floatDEFAULT(0),

所属院系intNOTNULL

【例6-3】

CREATETABLE#临时学生

学生姓名varchar(50)NOTNULL,

性别bitDEFAULT(0),

班级varchar(50)NOTNULL,

所属院系varchar(100)NOTNULL

【例6-4】

ALTERTABLE学生ADD新增列varchar(50)NULL

【例6-5】

ALTERTABLE学生ALTERCOLUMN新增列char(30)NOTNULL

【例6-6】

ALTERTABLE学生DROPCOLUMN新增列

【例6-7】

sp_rename学生,学生表

【例6-8】

sp_rename'学生.姓名','学生姓名','COLUMN'

【例6-9】

DROPTABLE学生

【例6-10】

CREATETABLE测试

记录编号int,

记录名称varchar(50),

CONSTRAINTPK_测试PRIMARYKEY(记录编号)

【例6-11】

CREATETABLE测试

记录编号int,

记录名称varchar(50),

CONSTRAINTPK_测试PRIMARYKEY(记录编号),

CONSTRAINTIX_测试UNIQUE(记录名称)

【例6-12】

CREATETABLE学生

记录编号intIDENTITY(1,1),--定义该列为标识列

姓名varchar(50)NOTNULL,

性别bitDEFAULT(0),--定义该列的默认值为0

班级varchar(50)NOTNULL,

入学成绩floatDEFAULT(0),

所属院系intNOTNULL

CONSTRAINTPK_学生PRIMARYKEY(记录编号),

CONSTRAINTIX_学生UNIQUE(姓名),

CONSTRAINTCK_学生CHECK(入学成绩>=0)

【例6-13】

CREATETABLE客户

记录编号intIDENTITY(1,1),

客户单位varchar(50)NOTNULL,

地址varchar(100)NOTNULL,

邮政编码varchar(10)NOTNULL,

CONSTRAINTPK_客户PRIMARYKEY(记录编号),

CONSTRAINTIX_客户UNIQUE(客户单位),

CONSTRAINTCK_客户CHECK(邮政编码LIKE'[0-9][0-9][0-9][0-9][0-9][0-9]')

【例6-14】

CREATETABLE联系人

记录编号intIDENTITY(1,1),

姓名varchar(50)NOTNULL,

性别char

(2)NOTNULL,

电话varchar(50)NOTNULL,

CONSTRAINTPK_联系人PRIMARYKEY(记录编号),

CONSTRAINTIX_联系人UNIQUE(姓名),

CONSTRAINTCK_联系人CHECK(性别IN('男','女'))

【例6-15】

ALTERTABLE测试

ADDCONSTRAINTDE_测试DEFAULT'默认名称'FOR记录名称

【例6-17】

ALTERTABLE学生

ADDCONSTRAINTFK_学生FOREIGNKEY(所属院系)

REFERENCES院系(记录编号)

【例6-19】

CREATERULE分数规则

AS@scoreBETWEEN0AND100

【例6-21】

EXECsp_bindrule'分数规则','学生

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2