数据库语法大全.docx

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

数据库语法大全.docx

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

数据库语法大全.docx

数据库语法大全

 

演示对表中的数据进行读写管理的语法案例;

1)插入:

男')

2)修改:

3)删除:

4)查询:

人员表add年龄nvarchar(IO)null

insertinto人员表(工号,姓名,性别)values('gh007','周伯通','

update人员表set姓名='欧阳锋'where工号='ghOOl'deletefrom人员表where工号='gh007'

select*from人员表where工号='gh001'

6.sql向表中增加一个“列”的语法;

【语法】

altertabletable-nameaddcolumncoltype

【举例】

altertable

【说明】

增加的字段必须指定数据类型,如果是字符型的,必须指定长度。

附:

删除列的语法:

altertable人员表dropcolumn性^

附:

修改某列的数据类型的语法:

altertable工资表altercolumn工号varchar(100)

l.sql创建数据库的语法;

【语法】

createdatabasedatabase-name

【举例】

createdatabasemy_rsgl(创建:

人事管理库)

【说明】

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

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

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

【语法】

dropdatabasedatabase-name

【举例】

dropdatabasemy_rsgl(删除:

人事管理库)

【说明】

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

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

a、怎样备份?

【语法】

backupdatabasedatabase-nametodisk=路径

【举例】

backupdatabasemy_rsgltodisk='f:

\back1.bak'

【说明】"

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

B、怎样恢复?

【语法】

路径withreplace

usemasterrestoredatabasedatabase-namefromdisk=

【举例】

usemasterrestoredatabasemy_rsglfromdisk='f:

\back1.bak'with

replace

【说明】

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

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

4.sql创建表的语法;

【语法】

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

【举例】

createtable[人员表]([工号][nvarchar](50)collatechinese_prc_ci_as

null,[姓名][nvarchar](50)collatechinese_prc_ci_asnull,[性别]

[nvarchar]

(2)collatechinese_prc_ci_asnull)on[primary]

【说明】---

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

5.sql删除表的语法;

【语法】

droptabletable-name

【举例】

droptable人员表(删除:

人员表)

【说明】

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

6.sql向表中增加一个“列”的语法;

【语法】

altertabletable-nameaddcolumncoltype

【举例】

altertable人员表add年龄nvarchar(10)null

【说明】

增加的字段必须指定数据类型,如果是字符型的,必须指定长度。

附:

删除列的语法:

altertable人员表dropcolumn性^

附:

修改某列的数据类型的语法:

altertable工资表altercolumn工号varchar(IOO)

7.sql给表中的字段增加“主键”的语法;a、怎样增加主键?

【语法】

altertable-nameaddprimarykey(col)

【举例】

altertable人员表addprimarykey(工号)

【说明】

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

B、怎样删除主键?

【语法】

altertable-namedrop主键约束

【举例】

altertable人员表droppk_人员表

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

【语法】

create[unique]indexidxnameon

【举例】

createuniqueindexindex_ghon

【说明】"

tabname(col….)

人员表(工号)

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

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)

人员表(工号,姓名,性别)values('gh006','黄刚',’男')

【举例】

insertinto

【说明】

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

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

【语法】

update表名setfield仁valuelwhere范围

【举例】

update人员表set姓名='洪七公'where工号='gh001'

【说明】

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

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

【语法】

deletefrom表名where范围

【举例】

deletefrom人员表where工号='gh002'

【说明】

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

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

【语法】

select*from表名where范围

【举例】

查出全部字段:

select*from人员表where工号='gh001'

只查出指定字段:

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

【说明】

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

表名orderbyfield1,field2[desc]

人员表orderbygh,xmdesc(降序)人员表orderbygh,xmasc(升序)

表名

【语法】

selectcountastotalcountfrom

【举例】

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

c、求和

【语法】

selectsum(

字段)assumvaluefrom

表名

【举例】

selectsum(d求平均

【语法】

工资)as工资合计from

人员表

selectavg(

【举例】

字段)asavgvaluefrom

表名

selectavg(

e、取最大

【语法】

工资)as平均工资from

人员表

selectmax(

【举例】

字段)asmaxvaluefrom

表名

selectmax(

f、取最小

【语法】

工资)as最大工资from

人员表

selectmin(

【举例】

字段)asminvaluefrom

表名

selectmin(

工资)as最小工资from

人员表

17.sqlunion

【作用】

运算符的用法;

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

18.sqlexcept运算符的用法;

【作用】

except运算符通过包括所有在table1中但不在table2中的行、并消除所有

重复行而派生出一个结果表。

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

【举例】

人员表2

selectgh,xm,xbfrom人员表1exceptallselectgh,xm,xbfrom【说明】

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

 

join语法;

20.sqlleft(outer)

【作用】

左外连接(左连接):

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

【举例】

假设有这样两个表:

表一:

姓名

备注

Aa

1111111

Bb

2222222

Cc

3333333

表二:

姓名

年龄

性别

Aa

22

Tt

33

Cc44

Gg55

对于左外连接:

Selecta.*,b*

 

Ona.姓名=b.姓名

则查询的结果为:

 

语法;

21.sqlright(outer)join

【作用】

右外连接(右连接):

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

【举例】

假设有这样两个表:

表一:

姓名

备注

 

Aa

1111111

Bb

2222222

 

Cc3333333

表二:

姓名

年龄

性别

Aa

22

Tt

33

Cc

44

Gg

55

对于右外连接:

Selecta.*,b.*

From表一asarightjoin

Ona.

姓名=b.姓名

则查询的结果为:

表二asb

姓名

备注

年龄

性别

Aa

111111122

Tt

null33

Cc

33333344

Gg

null55

22.sqlfull/cross

(outer)

join

语法;

【作用】

全外连接:

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

【举例】

selecta.*,b.*

 

Ona.姓名=b.姓名23.sqlgroupby分组的语法;

【语法】

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

【举例】

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

分组字段不能是:

text,ntext,image类型的字段。

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

【语法】

execsp_detach_db'数据库名','true'

【举例】—"

execsp_detach_db'人事管理库','true'

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

【语法】

execsp_attach_db@dbname数据库名',@filename1=n'c:

\programfiles\sql

server路径名+.mdf,@filename2=n'...填写路径...+.ldf

【举例】

例1:

execsp_attach_db@dbname=n'人事管理库'

人事管理库.mdf,

人事管理库.ldf

例2:

execsp_attach_db@dbname=n'my_rsgl',@filename1=n'c:

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

@filename2=n'c:

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

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

【语法】

execsp_renamedb'old_name','new_name'

【举例】—""

execsp_renamedb'人事管理库','人员管理库'【说明】

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

27.sqlbetween的用法;

【作用】

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

【语法】

select*fromtablelwheretimebetweentimelandtime2

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

【举例】

select*from人员表

where(日期between'1997-12-01'and'2012-06-01')

select*from人员表

where(年龄notbetween30and40)

【说明】

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

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

30.sqlexists的用法;

【作用】

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

【语法】

select*fromtableiwherenotexists(select*fromtable2wheretablel.field仁table2.field1)

【举例】

工资表where人

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

31.sqltruncatetable的用法;

【作用】

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

【语法】

truncatetabletablei

【举例】

truncatetable工资表

【说明】

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

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

【语法】

dbccshrinkdatabase(database,name,target_percent)

【举例】

Dbccshrinkdatabase(userdb,10)go

【说明】

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

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

路径

【语法】

restoreverifyonlyfromdisk=

【举例】

restoreverifyonlyfromdisk='f:

\back1.bak'

【说明】

验证备份但不还原备份。

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

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

如果备份有效,则

microsoftsqlserver2000返回此消息:

"备份集有效"。

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

【语法】

alterdatabasedatabase-namesetsingle_usergo

dbcccheckdb(database-name,repair_allow_data_loss)withtablockgoalterdatabasedatabase-namesetmulti_usergo

【举例】

人事管理库setsingle_user

alterdatabase

godbcccheckdb('

go

alterdatabase

go

【说明】

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

35.sql清除日志的写法;

【举例】

ifexists(select*fromsysobjectswhereid=

object_id(n'[dbo].[truncate_log_file]')andobjectproperty(id,n'isprocedure')=1)

dropprocedure[dbo].[truncate_log_file]

go

 

createprocedure[truncate_log_file]assetnocounton

declare@logicalfilenamesysname,

@maxminutesint,

@newsizeint

这里的xxxx_log替换

select@logicalfilename='xxxx_log',成泥自己数据库的log名"

@maxminutes=10,

@newsize=10declare@originalsizeintselect@originalsize=size

fromsysfileswherename=@logicalfilenamedeclare@counterint,

@starttimedatetime,

@trunclogvarchar(255)

while@originalsize*8/1024>@newsizebegin

createtabledummytrans

(dummycolumnchar(8000)notnuII)select@starttime=getdate(),

@trunclog='backuplog['+db_name()+']with

truncate_only'

dbccshrinkfile(@logicalfilename,@newsize)

exec(@trunclog)

while@maxminutes>datediff(mi,@starttime,getdate())

and@originalsize=(selectsizefromsysfileswherename

=@logicalfilename)

and(@originalsize*8/1024)>@newsize

begin

select@counter=0

while((@counter<@originalsize/16)and(@counter<5000))

begin

insertdummytransvalues('filllog')

deletedummytrans

select@counter=@counter+1

end

exec(@trunclog)

end

select@originalsize=size

fromsysfileswherename=@logicalfilenamedroptabledummytransendsetnocountoffgosetquoted_identifiergo

【说明】

这段代码包含着多种语法,在使用的时候把数据库换成你要清除日志的数据库,也就是说,这段代码是通用的。

36.sql循环语句的写法;

【举例】

declare@iint

set@i=1

while@i<30

begin

insertintotest(userid)values(@i)

set@i=@i+1

end

【说明】

while就是循环指令,sql的循环语句一般写在存储过程当中;也可以在查询分析器中直接执行。

37.sql比较a表和b表是否相等的写法;

【举例】

表)=(select

if(selectchecksum_agg(binary_checksum(*))fromachecksum_agg(binary_checksum(*))fromb表)

print'相等’elseprint'不相等’

【说明】

两个表的“记录数”和“内容”完全一致,才相等,内容有不同则不相等。

38.sql将本地表数据导入到远程表的写法;

【语法】

insertopendatasource('sqloledb',

'datasource=远程ip;userid=sa;password=密码'

).库名.dbo.表名(列名1,列名2)select列名1,列名2from本地表名【举例】

insertopendatasource('sqloledb','Datasource=192.168.1.2;userid=sa;password=888'

).my_rsgl.dbo.人员表(工号,姓名)select工号,姓名from人员表

39.sql将远程表数据导入到本地表的写法;

【举例】

人事管理库.dbo.人员表

execsp_addlinkedserver@server='192.168.1.2'execsp_addlinkedsrvlogin@rmtsrvname='192.168.1.2',@useself=false,@locallogin='sa',@rmtuser='sa',@rmtpassword='sql'select*

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

当前位置:首页 > PPT模板 > 其它模板

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

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