SQL2008
安装SQLServer2008的软件要求:
SQLSERVER2008安装程序需要WindowsInstaller4.5或更高版本。安装SQLServer2008时还
需要安装一下软件:
1:.NETFramework3.5SPI2:SQLServerNativeClient3:MicrosoftSQLServer安装程序支持
文件。
网络配置要求:
SQLServer2008是网络数据库产品,因此安装时对系统的网络环境有着特殊的要求。独立的命名
实例和默认实例支持以下网络协议:
1:SharedMemory2:NamedPipes3:TCP/IP4:VIA
所有SQLServer2008的安装都应安装InternetExplorer6.0SPI或更高版本,因为Microsoft
管理控制台(MMC),SQLServerManagementStudio,BusinessIntlligenceDevelopmentStudio,
ReoortingServices的报表设计组件和HTML帮助都需要安装InternetExplorer6.0SPI或更高版
本。
SQLServer的命令提示工具:
1:osql(用于交互式执行T-SQL语句和脚本)打开Windows命令窗口,并在命令提示符中输入以下命令:
osql/slocalhost/Usa/psa
/S表示连接的SQL服务器。如果连接到本地服务器,则可以省略此参数。/U表示登录使用的登录用
户名。/P表示登录用户名对应的登录密码。
osql常用命令:
GO:执行最后一个GO命令之后输入的所有语句RESET:清除已输入的所有语句
QUIT或EXIT():退出osqlCTRL+C:不退出osql而结束查询
SELECT@@VERSION
GO--返回SQLServer的版本号
2:sqlcmd(用于交互式执行T-SQL语句和脚本)
打开Windows命令窗口,执行sqlcmd,可以运行sqlcmd实用工具
1>是sqlcmd的提示符,可以指定行号。每按下一次回车键,>前面的数字就会增加1.在“>”符号后面
可以输入T-SQL语句或者sqlcmd命令。执行exit命令将退出sqlcmd.
SELECT@@SERVERNAME
GO--返回SQLServer本地服务器的名称
执行"sqlcmd/?"可以查看帮助信息。
T-SQL语法元素:
1:标示符:是诸如表、视图、列、数据库和服务器等对象的名称。对象标示符是在定义对象时创建的
,标示符随后用于引用该对象。SQLSERVER的标示符有两类:常规标示符和分隔标示符""跟()。
注意:常规标示符和分隔标示符包含的字符数必须在1~128之间。对于本地临时表,标示符最多可以有
116个字符。
2:数据类型
3:函数
4:运算符
5:表达式
6:注释
7:保留关键字:数据库中的对象名不要使用这些字词,如果必须使用保留关键字,则必须在保留关键字
中使用分隔标示符[]。
数据类型:
1,二进制数据:二进制数据有十六进制数表示。二进制数据使用的数据类型有:binary,varbinary,image。
2,字符串数据:char,varchar,text3,Unicode数据:nchar,nvarchar,ntext4,日期和时间数据:
date,datetime,datetime2,smalldatetime,time,datetimeoffset.
5,数字数据:包括正数,负数,小数,分数和整数。整型数据由负整数和正整数组成。整型数据使用:
bigint,int,smallint,tinyint和bit数据类型存储。小数数据使用:decimal或numeric数据类型存储.
近似数字数据以float和real数据类型存储。
6,货币数据:money和smallmoney。
流程控制语句:1,if...else2,while3,waitfor4,goto5,return6,try...catch.
在查询窗口执行T-SQL可以分为3个阶段:解析、编译和执行。
print<字符串或Unicode字符串常量>|<字符数据类型的变量>|<字符串表达式>
例:printN'SQLServer2008'
setstatisticsio[on|off]--设置是否显示执行SQL语句生成的磁盘活动量的信息
例:uesmaster
go
setstatisticsioon
select*fromspt_values
go
setstatisticsiooff
select*fromspt_values
go
setstatisticstime[on|off]--设置是否显示解析、编译和执行SQL语句所使用的时间信息
例:uesmaster
go
setstatisticstimeon
select*fromspt_values
go
setstatisticstimeoff
select*fromspt_values
go
创建同义词:
createsynonym<架构名><同义词名称>for<基对象>
例:createsynonym[dbo].[MasterValues]FOR[master].[dbo].[spt_values]
删除同义词:
dropsynonym<架构名><同义词名称>
例:dropsynonym[dbo].[MasterValues]
/*从系统试视图sys.synonyms中查看当前数据库中当前用户有权限查看的所有同义词信息*/
uesmaster
go
select*fromsys.synonyms
go
创建用户定义数据类型:
createtype<类型名称>
{
from<基准类型>
[(精度[,小数位数])]
[null|notnull]
}[;]
例:
ueshrsystem
go
createtypePostCode
fromvarchar(6)null;
go
删除用户自定义数据类型:
droptype<用户定义类型名>[;]
例:droptypepost_code
从系统视图informmation_schema.domains中可以查看到当前数据库中当前用户有权限查看的所有用户
定义数据类型信息。
ueshrsystem
go
select*frominformmation_schema.domains
go
从系统视图information_schema.column_domain_usage中可以查看到当前数据库中当前用户有权限查
看的所有使用用户定义数据类型定义的列信息。
usehrsytem
go
select*frominformation_schema.column_domain_usage
go
日期和时间函数:
1,getdate()例:printgetdate()
2,dateadd()
例:计算12天后的日期
declare@vardatedatetime
set@vardate=getdate()
printdateadd(day,12,@vardate)
程序首先声明一个datetime类型的变量@vardate,然后调用getdate()函数获取当前系统日期时间,并将其
赋值到变量@vardate中。然后调用dateadd()函数计算。第一个参数day表示时间间隔的单位是天,第二个
参数12表示时间间隔12天,第三个参数@vardate表示基准日期和时间变量。
3,day()
/*提取当前日期中天的整数*/
declare@vardatedatetime
set@vardate=getdate()
printday(@vardate)
数学函数:
1,ABS()--绝对值函数例:printABS(-15)
2,CEILING()--进位取整函数例:printceiling(12.34)
printceiling(-12.34)
printceiling(0)
运行结果:13,-12,0.
3,ROUND()--四舍五入函数
列:
printround(123.456,2)
printround(123.456,1)
printround(123.456,0)
printround(123.456,-1)
printround(123.456,-2)
printround(123.456,-3)
运行结果为:123.460;123.500;123.000;120.000;100.000;0.000
字符串函数:
1,ASCII函数--把字母转为ASCII
例:printASCII('s')运行结果为:83
2,CHAR()函数--把ASCII转为字母
例:printCHAR(65)运行结果为:A
3,left()函数--取左函数
例:printleft('ABCDE',3)运行结果为:ABC
4,len()函数--长度函数
例:printlen('ABCDE')运行结果为:5
5,lower()函数--转换为小写
例:printlower('ABCDE')运行结果为:abcde
6,ltrim()函数--除左空格函数
例:declare@varstrchar(50),@resultchar(50)
set@varstr='abc'
set@result='123'+ltrim(@varstr)+'123'
print@result
运行结果:123abc
7,replace()函数--字符串替换函数
例:declare@varstrchar(50)
set@varstr=replace('ABCDE','CD','123')
select@varstr
把字符串ABCDE中的CD替换为123,运行结果:AB123E
8,space()函数--增加空格函数
declare@varstrchar(50)
set@varstr='abc'+space(5)+'123'
select@varstr,len(@varstr)
运行结果为:abc123
11
9,STR()函数--将数值转为字符串
例:
declare@varstrdecimal(15,2),@resultchar(50)
set@varstr=12*4.2
set@result='12*4.2的结果是:'+STR(@varstr,5,1)
print@result
运行结果为“12*4.2的结果是:50.4”。
10,substring()函数--取字串函数
例:printsubstring('ABCDEFG',2,3)
运行结果:BCD
11,upper()函数--转为大写
selectupper('abcde')
运行结果:ABCDE
使用DBCCSHRINKDATABASE语句收缩数据库
基本语法结构:
DBCCSHRINKDATABASE
(<数据库名>|<数据库ID>|0
[,target_percent]
[,{NOTRUNCATE|TRUNCATEONLY}]
)
在DBCCSHRINKDATABASE后面需要指定要收缩的数据库名称或数据库ID,如果使用0,则表示收缩当前数
据库。
target_percent表示收缩数据库后,数据文件中所需的剩余可用空间百分比。
参数NOTRUNCATE只对收缩数据文件有效。使用此参数后,数据库引擎将文件末尾已分配的页移动到文件
前面未分配的页中。文件末尾的可用空间不会返回给操作系统,文件的物理大小不会更改。
参数TRUNCATEONLY也只对收缩数据文件有效。使用此参数后,文件末尾的所有可用空间都会释放给操作系统
,但不在文件内部执行行页移动操作。因此,使用此参数数据文件只能收缩最近分配的区。
例:DBCCSHRINKDATABASE(Archive,10)--收缩数据库Archive剩余可用空间10%。
重命名数据库:在重命名数据库之前,应该确保没有人使用该数据库,而且数据库设置为单用户模式。只要
遵循用于标识符的规则,则数据库名称可以包含任何字符。
使用存储过程sp_renamedb更改数据库名称,基本语法:
sp_renamedb[@dbname=]'旧数据库名',[@newname]'新数据库名'参数@dbname和@newname是可选的。
例:sp_renamedb'mydb','mydb2'返回结果:数据库名称'mydb2'已设置。
删除数据库:建议您再数据库删除之后备份master数据库,因为删除数据库将更新master中的系统表。
例:dropdatabasemydb--删除数据库mydb
移动数据库:(1)执行下面的语句,将数据库设置为离线状态。alterdatabasemydbsetoffline
(3)执行下面的语句,修改数据库文件的位置。
alterdatabaseArchiveMODIFYFILE(NAME=arch2,FILENAME='d:\DataFile\archdat2.mdf')
(3)运行下面的语句,将数据库设置为在线状态。
ALTERDATABASEArchiveSETONLINE