数据库相关代码实例

  • 格式:pdf
  • 大小:515.57 KB
  • 文档页数:41

数据库相关代码实例***********************第一部分*************************/*例-1创建了一个Test数据库,该数据库的主数据文件逻辑名称为Test_data,物理文件名为Test.mdf,初始大小为MB,最大尺寸为无限大,增长速度为%;数据库的日志文件逻辑名称为Test_log,物理文件名为Test.ldf,初始大小为MB,最大尺寸为MB,增长速度为MB。

*//*程序清单如下:*/CREATE DATABASE testON PRIMARY(NAME='test',FILENAME='C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\data\test.mdf',SIZE=10240KB,MAXSIZE=UNLIMITED,FILEGROWTH= 10%)LOG ON(NAME='test_log',FILENAME='C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\data\test_log.ldf',SIZE=1024KB,MAXSIZE= 5120KB,FILEGROWTH= 1024KB )GO/*例-2 使用三个100 MB 的数据文件和两个100 MB 的事务日志文件创建名为Archive 的数据库。

主文件是列表中的第一个文件,并使用PRIMARY 关键字显式指定。

事务日志文件在LOG ON 关键字后指定。

注意FILENAME 选项中所用的文件扩展名:主要数据文件使用.mdf,次要数据文件使用.ndf,事务日志文件使用.ldf。

*//*程序清单如下:*/CREATE DATABASE ArchiveONPRIMARY(NAME=Arch1,FILENAME='c:\program files\microsoft sqlserver\mssql.1\mssql\data\archdat1.mdf',SIZE= 100MB,MAXSIZE= 200,FILEGROWTH= 20),(NAME= Arch2,FILENAME='c:\program files\microsoft sqlserver\mssql.1\mssql\data\archdat2.ndf',SIZE= 100MB,MAXSIZE= 200,FILEGROWTH= 20),(NAME= Arch3,FILENAME='c:\program files\microsoft sqlserver\mssql.1\mssql\data\archdat3.ndf',SIZE= 100MB,MAXSIZE= 200,FILEGROWTH= 20)LOG ON(NAME= Archlog1,FILENAME='c:\program files\microsoft sqlserver\mssql.1\mssql\data\archlog1.ldf',SIZE= 100MB,MAXSIZE= 200,FILEGROWTH= 20),(NAME=Archlog2,FILENAME='c:\program files\microsoft sqlserver\mssql.1\mssql\data\archlog2.ldf',SIZE= 100MB,MAXSIZE= 200,FILEGROWTH= 20)GO/*例-3将两个数据文件和一个事务日志文件添加到test数据库中。

*/ /*程序清单如下:*/ALTER DATABASE TestADD FILE(NAME= Test1,FILENAME='c:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Data\test1.ndf',SIZE= 5MB,MAXSIZE= 100MB,FILEGROWTH= 5MB),(NAME= Test2,FILENAME='c:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Data\test2.ndf',SIZE= 3MB,MAXSIZE= 10MB,FILEGROWTH= 1MB)GOALTER DATABASE TestADD LOG FILE(NAME= testlog1,FILENAME='c:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Data\testlog1.ldf',SIZE= 5MB,MAXSIZE= 100MB,FILEGROWTH= 5MB)GO/* 例-4删除创建的数据库Test *//* 程序清单如下:*/drop database Test/*例-5在磁盘上创建了一个备份设备。

*//*程序清单如下:*/USE [master]GOEXEC master.dbo.sp_addumpdevice@devtype = N'disk',@logicalname = N'test_backup',@physicalname = N'C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Backup\1.bak'GO/* 例-6删除上面创建的备份设备。

*//* 程序清单如下:*/USE [master]GOEXEC master.dbo.sp_dropdevice@logicalname = N'test_backup'GO/*例-7将数据库db备份到备份设备db.bak上,使用WITH FORMAT子句初始化备份设备。

*/ /*程序清单如下:*/BACKUP DATABASE ArchiveTO DISK= N'C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Backup\Archive.bak'WITHNOFORMATGO/* 例-8从backup_company备份设备中还原数据库company*//*程序清单如下:*/USE masterGORESTORE DATABASE ArchiveFROM DISK= N'C:\Program Files\Microsoft SQLServer\MSSQL.1\MSSQL\Backup\Archive.bak'WITHNOUNLOAD,REPLACE,STATS= 10***********************第二部分************************/*例-1创建数据库表。

*//*程序清单如下:*//*下面的例子将创建表S。

*/CREATE TABLE S(sno char(10)NOT NULL/*学号字段*/CONSTRAINT PK_sno PRIMARY KEY CLUSTERED/*主键约束*/CHECK(sno like'31300501[0-9][0-9]')/*检查约束*/,sname char(8)NULL,/*姓名字段*/sex char(2)NULL,/*性别字段*/age int NULL,/*年龄字段*/dept varchar(20)NULL/*系别字段*/)/*例-2修改S表,增加一个班号列。

*//*程序清单如下:*/ALTER TABLE SADDCLASS_NO CHAR(6)/*例-3删除S表。

*//*程序清单如下:*/DROP table S/*再执行例-1*//*例-4在S表中插入一条学生记录(学号:S7;姓名:郑冬;性别:女;年龄:;系别:计算机;class numeber: 09477)。

*//*程序清单如下:*/INSERT INTO S VALUES('3130050107','郑冬','女',21,'计算机','09477')/*例-5 创建SC表(学生选课表),并向SC表中插入一条选课记录(‟S7‟,‟C1‟)。

*//*程序清单如下:*/CREATE TABLE SC(sno char(10)NOT NULL,cno char(2)NULL,/*课程编号字段*/score numeric(4,1)NULL/*成绩字段*/)GoINSERT INTO SC (sno,cno)VALUES('3130050101','c1')Go/*例-6 使用column_list 及VALUES 列表显式地指定将被插入每个列的值。

*/ /*程序清单如下:*/CREATE TABLE T1(column_1 int,column_2 varchar(30))GoINSERT T1 (column_2, column_1)VALUES('This is a test',1)/*例-7 求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。

程序清单如下:*//*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。

*/CREATE TABLE AVGSCORE(SNO CHAR(10),AVGSCORE SMALLINT)Go/*利用子查询求出SC表中各位学生的平均成绩,把结果存放在新表AVGSCORE中。

*/ INSERT INTO AVGSCORESELECT SNO,AVG(SCORE)FROM SCGROUP BY SNO/*例-8一个带有WHERE条件的修改语句。

*//*程序清单如下:*/use adventureworksgoupdate person.addressset city='Boston'where addressid=1/*例-9 将所有学生年龄增加岁*//*程序清单如下:*/UPDATE S SET AGE=AGE+1/*例-10下面的示例修改SalesPerson 表中的SalesYTD 列,以反映SalesOrderHeader 表中记录的最近销售情况。

*//*程序清单如下:*/USE AdventureWorks;GOUPDATE Sales.SalesPerson SET SalesYTD = SalesYTD + SubTotalFROM Sales.SalesPerson AS sp JOIN Sales.SalesOrderHeader AS so ON sp.SalesPersonID = so.SalesPersonIDAND so.OrderDate =(SELECT MAX(OrderDate)FROM Sales.SalesOrderHeader WHERE SalesPersonID = sp.SalesPersonID)/*例-11将UPDATE语句与TOP子句一起使用,更新Employee 表中个随机行的VacationHours 列,使之变成原来的.25倍。