SQL常用语句大全.pdf
《SQL常用语句大全.pdf》由会员分享,可在线阅读,更多相关《SQL常用语句大全.pdf(16页珍藏版)》请在冰豆网上搜索。
![SQL常用语句大全.pdf](https://file1.bdocx.com/fileroot1/2022-10/7/b09c8ac3-f478-4c15-968d-01a0cef38a12/b09c8ac3-f478-4c15-968d-01a0cef38a121.gif)
SQL语句大全创建数据库创建数据库创建之前判断该数据库是否存在ifexists(select*fromsysdatabaseswherename=databaseName)dropdatabasedatabaseNamegoCreateDATABASEdatabasename删除数据库删除数据库dropdatabasedatabasename备份备份sqlserver-创建备份数据的deviceUSEmasterEXECsp_addumpdevicedisk,testBack,c:
mssql7backupMyNwind_1.dat-开始备份BACKUPDATABASEpubsTOtestBack创建新表创建新表createtabletabname(col1type1notnullprimarykey,col2type2notnull,.)根据已有的表创建新表:
A:
gouse原数据库名goselect*into目的数据库名.dbo.目的表名from原表名(使用旧表创建新表)B:
createtabletab_newasselectcol1,col2fromtab_olddefinitiononly创建序列创建序列createsequenceSIMON_SEQUENCEminvalue1-最小值maxvalue999999999999999999999999999-最大值startwith1-开始值incrementby1-每次加几cache20;删除新表删除新表droptabletabname增加一个列增加一个列Altertabletabnameaddcolnamecoltype删除一个列删除一个列Altertabletabnamedropcolumncolname添加主键添加主键Altertabletabnameaddprimarykey(col)说明:
删除主键:
Altertabletabnamedropprimarykey(col)创建索引创建索引createuniqueindexidxnameontabname(col。
)删除索引:
dropindexidxnameontabname注:
索引是不可更改的,想更改必须删除重新建。
创建视图创建视图createviewviewnameasselectstatement删除视图:
dropviewviewname简单基本的简单基本的sql语句语句
(1)数据记录筛选:
sql=select*from数据表where字段名=字段值orderby字段名descsql=select*from数据表where字段名like%字段值%orderby字段名descsql=selecttop10*from数据表where字段名=字段值orderby字段名descsql=selecttop10*from数据表orderby字段名descsql=select*from数据表where字段名in(值1,值2,值3)sql=select*from数据表where字段名between值1and值2
(2)更新数据记录:
sql=update数据表set字段名=字段值where条件表达式sql=update数据表set字段1=值1,字段2=值2字段n=值nwhere条件表达式(3)删除数据记录:
sql=deletefrom数据表where条件表达式sql=deletefrom数据表(将数据表所有记录删除)(4)添加数据记录:
sql=insertinto数据表(字段1,字段2,字段3)values(值1,值2,值3)sql=insertinto目标数据表select*from源数据表(把源数据表的记录添加到目标数据表)(5)数据记录统计函数:
AVG(字段名)得出一个表格栏平均值COUNT(*;字段名)对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名)取得一个表格栏最大的值MIN(字段名)取得一个表格栏最小的值SUM(字段名)把数据栏的值相加引用以上函数的方法:
sql=selectsum(字段名)as别名from数据表where条件表达式setrs=conn.excute(sql)用rs(别名)获取统计的值,其它函数运用同上。
查询去除重复值:
selectdistinct*fromtable1(5)数据表的建立和删除:
CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)(6)单列求和:
SELECTSUM(字段名)FROM数据表编辑本段编辑本段最新最新sql语句语句查询数据库中含有同一这字段的表:
selectnamefromsysobjectswherextype=uandidin(selectidfromsyscolumnswherename=s3)根据出生日期可以算出年龄:
selectdatediff(year,scrq,2013)as年龄frompage_shsjgrgl根据当前年份自动算出年龄selectdatediff(year,csny,cast(YEAR(GETDATE()aschar)年selectyear(djsj)frompage_shsjgrgl月selectmonth(djsj)frompage_shsjgrgl日selectday(djsj)frompage_shsjgrgl在同一数据库中复制表结构:
select*intoafrombwhere11当IDENTITY_INSERT设置为OFF时,不能为表aa中的标识列插入显式值。
setidentity_insertaaON-设置打开,批量插入:
insertintoaa(Customer_ID,ID_Type,ID_Number)selectCustomer_ID,ID_Type,ID_NumberfromTCustomer;setidentity_insertaaOFF关闭不同数据库之间的复制:
复制结构:
select*intotest.dbo.bfromGCRT.dbo.page_shsjgrglwhere11复制内容:
insertintotest.dbo.b(xm,ssdq)selectxm,ssdqfromGCRT.dbo.page_shsjgrgl查看数据库中所有的数据表表名:
selectnamefromSysObjectswheretype=u查看数据库中所有表含有同一字段的表:
selectnamefromsysobjectswherextype=uandidin(selectidfromsyscolumnswherename=同一字段)查看数据表中的所有字段:
selectnamefromSyscolumnswhereid=object_id(表名)查询数据库时随机10条记录:
selecttop10*fromtd_areacodeorderbynewid()修改字段类型:
ALTERTABLE表名ALTERCOLUMN字段名varchar(30)NOTNULLuseZHJIANGJGYLdeclaretempnvarchar(30)settemp=ZWI4selecthllxfrompage_yljg_zyrywherehllxnotin(selectcasetempwhenthenelseb1endfrom(select*fromTD_Codewherepage_en=page_yljg_zyryandB2=ZWI)swheres.b1!
=casetempwhenthenelsetempend)更改数据库表字段类型:
altertablepage_shsjgrglaltercolumns1int几个高级查询运算词几个高级查询运算词A:
UNION运算符UNION运算符通过组合其他两个结果表(例如TABLE1和TABLE2)并消去表中任何重复行而派生出一个结果表。
当ALL随UNION一起使用时(即UNIONALL),不消除重复行。
两种情况下,派生表的每一行不是来自TABLE1就是来自TABLE2。
B:
EXCEPT运算符EXCEPT运算符通过包括所有在TABLE1中但不在TABLE2中的行并消除所有重复行而派生出一个结果表。
当ALL随EXCEPT一起使用时(EXCEPTALL),不消除重复行。
C:
INTERSECT运算符INTERSECT运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而派生出一个结果表。
当ALL随INTERSECT一起使用时(INTERSECTALL),不消除重复行。
注:
使用运算词的几个查询结果行必须是一致的。
使用外连接使用外连接A、leftouterjoin:
左外连接(左连接):
结果集既包括连接表的匹配行,也包括左连接表的所有行。
SQL:
selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.cB:
rightouterjoin:
右外连接(右连接):
结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:
fullouterjoin:
全外连接:
不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
编辑本段编辑本段判断对象是否存在判断对象是否存在判断数据库是否存在判断数据库是否存在ifexists(select*fromsysdatabaseswherename=数据库名)dropdatabase数据库名判断表是否存在判断表是否存在ifnotexists(select*fromsysobjectswherename=表名andxtype=U)begin-这里创建表end判断存储过程是否存在判断存储过程是否存在ifexists(select*fromsysobjectswhereid=object_id(N存储过程名)andOBJECTPROPERTY(id,NIsProcedure)=1)dropprocedure存储过程名判断临时表是否存在判断临时表是否存在ifobject_id(tempdb.#临时表名)isnotnulldroptable#临时表名判断视图是否存在判断视图是否存在-SQLServer2000IFEXISTS(SELECT*FROMsysviewsWHEREobject_id=dbo.视图名-SQLServer2005IFEXISTS(SELECT*FROMsys.viewsWHEREobject_id=dbo.视图名判断函数是否存在判断函数是否存在ifexists(select*fromdbo.sysobjectswhereid=object_id(Ndbo.函数名)andxtypein(NFN,NIF,NTF)dropfunctiondbo.函数名获取创建信息获取创建信息SELECTname,id,crdateFROMsysobjectswherextype=U/*xtype的表示参数类型