数据库语法大全Word下载.docx

上传人:b****4 文档编号:17405614 上传时间:2022-12-01 格式:DOCX 页数:19 大小:22.42KB
下载 相关 举报
数据库语法大全Word下载.docx_第1页
第1页 / 共19页
数据库语法大全Word下载.docx_第2页
第2页 / 共19页
数据库语法大全Word下载.docx_第3页
第3页 / 共19页
数据库语法大全Word下载.docx_第4页
第4页 / 共19页
数据库语法大全Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据库语法大全Word下载.docx

《数据库语法大全Word下载.docx》由会员分享,可在线阅读,更多相关《数据库语法大全Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

数据库语法大全Word下载.docx

人事管理库)

本代码用于创建数据库,可在“企业管理器”中执行,也可以在“查询分析器”中执行,也可以在delphi等开发工具中执行。

以下将要讲到的语法都有多种执行方式,下文不再复述。

2.sql删除数据库的语法;

dropdatabasedatabase-name

dropdatabasemy_rsgl(删除:

删除数据库之前,必须确认数据库是否真的要删除,如果数据库中还包含着重要的数据,删除之后就后悔莫及,所以不要随意操作这个命令。

3.sql备份、恢复数据库的语法;

a、怎样备份?

backupdatabasedatabase-nametodisk=路径

backupdatabasemy_rsgltodisk='

f:

\back1.bak'

备份数据库时,除指定有效的硬盘路径以外,注意还要取一个文件名。

B、怎样恢复?

usemasterrestoredatabasedatabase-namefromdisk=路径withreplace

usemasterrestoredatabasemy_rsglfromdisk='

withreplace

恢复数据库时,在后面加上:

withreplace,是表示按“完全恢复”的方式进行恢复。

4.sql创建表的语法;

createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)

createtable[人员表]([工号][nvarchar](50)collatechinese_prc_ci_asnull,[姓名][nvarchar](50)collatechinese_prc_ci_asnull,[性别][nvarchar]

(2)collatechinese_prc_ci_asnull)on[primary]

代码中,表名、字段名和数据类型都要写在“[]”里面,如果字段的类型是字符型,都必须在“()”里面指定长度。

5.sql删除表的语法;

droptabletable-name

droptable人员表(删除:

人员表)

删除表以及表中的全部数据,注意在sqlserver里面,删除表是真正的删除,不是伪删除。

7.sql给表中的字段增加“主键”的语法;

a、怎样增加主键?

altertable-nameaddprimarykey(col)

altertable人员表addprimarykey(工号)

不能在可以为“空”的字段上增加主键,否则会报错。

B、怎样删除主键?

altertable-namedrop主键约束

altertable人员表droppk_人员表

8.sql给表中的字段创建“索引”的语法;

create[unique]indexidxnameontabname(col….)

createuniqueindexindex_ghon人员表(工号)

跟字段创建索引后,可用于查询语句中,提高检索速度。

9.sql删除表中某个“索引”的语法;

dropindexidxname

dropindex人员表.index_gh

注意索引一旦建立后,不能修改,只能先删除了重新建立。

10.sql创建视图的语法;

createviewviewnameasselectstatement

createviewv_rybasselect*from人员表

不引用变量的查询语句,都可以用代码创建视图。

11.sql删除视图的语法;

dropviewviewname

dropviewv_ryb

12.sql向表中插入数据的语法;

insertintotable1(field1,field2)values(value1,value2)

gh006'

黄刚'

只有给选定字段插入数据时,才需要在表名的后面用“()”来排列字段名。

13.sql修改表中某条数据的语法;

update表名setfield1=value1where范围

洪七公'

写修改语句时,注意一般要指定where条件语句,否则就是对整个表的所有记录作修改,可能产生预期之外的严重后果。

14.sql删除表中某条数据的语法;

deletefrom表名where范围

gh002'

如果没写where条件语句,那么删除的就是整个表的全部记录。

15.sql查询表中数据的语法;

select*from表名where范围

查出全部字段:

只查出指定字段:

select工号,姓名from人员表where工号='

“*”是通配符,表示查出全部字段。

16.sql排序、求总、求和、求平均、取最大、取最小的语法;

a、排序

select*from表名orderbyfield1,field2[desc]

select*from人员表orderbygh,xmdesc(降序)

select*from人员表orderbygh,xmasc(升序)

b、求总

selectcountastotalcountfrom表名

selectcount(*)as记录数from人员表

c、求和

selectsum(字段)assumvaluefrom表名

selectsum(工资)as工资合计from人员表

d、求平均

selectavg(字段)asavgvaluefrom表名

selectavg(工资)as平均工资from人员表

e、取最大

selectmax(字段)asmaxvaluefrom表名

selectmax(工资)as最大工资from人员表

f、取最小

selectmin(字段)asminvaluefrom表名

selectmin(工资)as最小工资from人员表

17.sqlunion运算符的用法;

【作用】

union运算符通过组合其他两个结果表(例如table1和table2)并消去表中任何重复行而组合生出一个结果表。

当all随union一起使用时(即unionall),不消除重复行。

两种情况下,组合表的每一行不是来自table1就是来自table2。

不消除重复行的写法:

selectgh,xm,xbfrom人员表1unionallselectgh,xm,xbfrom人员表2

消除重复行的写法:

selectgh,xm,xbfrom人员表1unionselectgh,xm,xbfrom人员表2

用来组合的所有表的字段必须一致、或参与组合的表的字段必须一致。

18.sqlexcept运算符的用法;

except运算符通过包括所有在table1中但不在table2中的行、并消除所有重复行而派生出一个结果表。

当all随except一起使用时(exceptall),不消除重复行。

selectgh,xm,xbfrom人员表1exceptallselectgh,xm,xbfrom人员表2

本运算符在sqlserver2000中不支持,sqlserver2005版本及后续版中支持。

19.sqlintersect运算符的用法;

intersect运算符通过只包括table1和table2中都有的行、并消除所有重复行而派生出一个结果表。

当all随intersect一起使用时(intersectall),不消除重复行。

selectgh,xm,xbfrom人员表1intersectallselectgh,xm,xbfrom人员表2

20.sqlleft(outer)join语法;

左外连接(左连接):

结果集既包括连接表的匹配行,也包括左连接表的所有行。

假设有这样两个表:

表一:

-------------------------

姓名备注

Aa1111111

Bb2222222

Cc3333333

表二:

------------------------

姓名年龄性别

Aa22男

Tt33女

Cc44男

Gg55女

对于左外连接:

Selecta.*,b.*

From表一asaleftjoin表二asb

Ona.姓名=b.姓名

则查询的结果为:

---------------------------------------

姓名备注年龄性别

Aa111111122男

Bb2222222nullnull

Cc33333344男

21.sqlright(outer)join语法;

右外连接(右连接):

结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

对于右外连接:

From表一asarightjoin表二asb

Ttnull33女

Ggnull55女

22.sqlfull/cross(outer)join语法;

全外连接:

不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

selecta.*,b.*

From表一asafullouterjoin表二asb

23.sqlgroupby分组的语法;

select字段,sum(字段)as字段名from表名groupby字段

select月份,sum(工资)as月工资合计from人员表groupby月份

分组字段不能是:

text,ntext,image类型的字段。

24.sql分离数据库的语法;

execsp_detach_db'

数据库名'

'

true'

人事管理库'

25.sql附加数据库的语法;

execsp_attach_db@dbname='

@filename1=n'

c:

\programfiles\sqlserver路径名+.mdf'

@filename2=n'

...填写路径...+.ldf'

例1:

execsp_attach_db@dbname=n'

@filename1=n'

\人事管理库.mdf'

@filename2=n'

\人事管理库.ldf'

例2:

my_rsgl'

\programfiles\microsoftsqlserver\mssql\data\my_rsgl.mdf'

\programfiles\microsoftsqlserver\mssql\data\my_rsgl_log.ldf'

26.sql修改数据库名称的语法;

execsp_renamedb'

old_name'

new_name'

人员管理库'

注意此修改只是改变了数据库的名称,而不是它在硬盘上的文件名。

27.sqlbetween的用法;

between限制查询数据范围时包括了边界值,notbetween不包括

select*fromtable1wheretimebetweentime1andtime2

selecta,b,cfromtable1whereanotbetween数值1and数值2

select*from人员表

where(日期between'

1997-12-01'

and'

2012-06-01'

where(年龄notbetween30and40)

用来比较的字段要求是数值类型的字段或日期型字段。

28.sqlin的用法;

查找“在”或“不在”指定范围的数据。

select*fromtable1wherea[not]in('

值1'

值2'

值4'

值6'

select*from人员表where(年龄notin('

20'

30'

50'

60'

))

select*from人员表where(年龄in('

【延伸】

select*from人员表where工号in(select工号from工资表)

select*from人员表where工号notin(select工号from工资表)

in语句的作用很大,但是用于比较的数据越多,得出结果的速度就越慢。

29.sqltop的用法;

查找指定范围的数据的前几条,默认从首条开始返回。

selecttopn*fromtable1(n表示条数,用整数)

selecttop3*from人员表

selecttop2*from人员表where(性别='

女'

top语句适合用在提取少量数据用于显示、或需要提取指定条数的记录。

30.sqlexists的用法;

查找当前表在别的表中“存在”或“不存在”的记录。

select*fromtable1wherenotexists(select*fromtable2wheretable1.field1=table2.field1)

select*from人员表wherenotexists(select*from工资表where人员表.工号=工资表.工号)

31.sqltruncatetable的用法;

删除表中的全部数据,而且不写日志。

truncatetabletable1

truncatetable工资表

这个命令与delete的作用相同,但delete要写日志,而且delete语句后面可以使用where条件语句。

32.sql收缩数据库的语法;

dbccshrinkdatabase(database_name,target_percent)

Dbccshrinkdatabase(userdb,10)

go

上面的代码是将userdb用户数据库中的文件减小,以使userdb中的文件有10%的可用空间。

33.sql检查备份集的语法;

restoreverifyonlyfromdisk=路径

restoreverifyonlyfromdisk='

\back1.bak'

验证备份但不还原备份。

检查备份集是否完整以及所有卷是否都可读。

但是,restoreverifyonly不尝试验证备份卷中的数据结构。

如果备份有效,则microsoftsqlserver2000返回此消息:

"

备份集有效"

34.sql修复数据库的语法;

alterdatabasedatabase-namesetsingle_user

dbcccheckdb(database-name,repair_allow_data_loss)withtablock

alterdatabasedatabase-namesetmulti_user

alterdatabase人事管理库setsingle_user

dbcccheckdb('

repair_allow_data_loss)withtablock

alterdatabase人事管理库setmulti_user

检查指定数据库中的所有对象的分配和结构完整性、并修复错误,alterdatabase提供了更改数据库名称、文件组名称以及数据文件和日志文件的逻辑名称的能力。

35.sql清除日志的写法;

ifexists(select*fromsysobjectswhereid=object_id(n'

[dbo].[truncate_log_file]'

)andobjectproperty(id,n'

isprocedure'

)=1)

dropprocedure[dbo].[truncate_log_file]

setquoted_identifier 

off 

 

setansi_nulls 

on

createprocedure[truncate_log_file]as

setnocounton

 

declare@logicalfilenamesysname,

@maxminutesint,

@newsizeint

select 

@logicalfilename='

xxxx_log'

 

--这里的xxxx_log替换成泥自己数据库的log名

@maxminutes=10,

@newsize 

=10

declare@originalsizeint

select@originalsize=size

fromsysfiles

wherename=@logicalfilename

declare@counter 

int,

@starttimedatetime,

@trunclog 

varchar(255)

while@originalsize*8/1024>

@newsize

begin

createtabledummytrans

(dummycolumnchar(8000)notnull)

@starttime=getdate(),

@trunclog='

backuplog['

+db_name()+'

]withtruncate_only'

dbccshrinkfile(@logicalfilena

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

当前位置:首页 > 小学教育 > 小学作文

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

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