最好的语录大全_经典SQL语句大全-新编已修订

sql语句大全  时间:2021-02-27  阅读:()

不问收获但问耕耘最好的资料给最好的自己

语录大全_经典SQL语句大全

时间 2021-06-29

一、基础1、说明创建数据库CREATE DATABASE database-name2、说明删除数据库dropdatabasedbname3、说明备份sqlserver---创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk','testBack', 'c:\mssql7backup\MyNwind_1.dat'---开始 备份BACKUPDATABASE pubs TO testBack4、说明创建新表createtabletabname(col1type1 [not nul l] [primary key],col2 type2 [not nul l],. .)根据已有的表创建新表Acreate table tab_new l ike tab_old(使用旧表创建新表)Bcreatetable tab_new as select col1,col2„from tab_old definition only5、说明删除新表drop table tabname6、说明增加一个列Alter tabletabname add column col type注列增加后将不能删除。 DB2中列加上后数据类型也不能改变唯一能改变的是增加varchar类型的长度。

7、说明添加主键 Altertabletabnameadd primary key(col)说明删除主键 Altertabletabnamedrop primary key(col)8、说明创建索引 create[unique] index idxnameon tabname(col„.)删除索引 dropindexidxname注索引是不可更改的想更改必须删除重新建。 9、说明创建视图 createviewviewnameas selectstatement删除视图dropviewviewname10、说明几个简单的基本的sql语句选择 select

* from table1 where范围插入 insert into table1(field1,field2)values(value1,value2)删除deletefrom table1 where范围更新 updatetable1 set field1=value1 where范围查找 select * from table1 where

不问收获但问耕耘最好的资料给最好的自己

field1 l ike ’%value1%’ ---l ike的语法很精妙查资料!排序 select*fromtable1 order byfield1,field2[desc]总数 selectcountastotalcountfrom table1求和 select sum(field1) as sumvalue from table1平均select avg(field1) as avgvalue from table1最大 select max(field1) asmaxvalue from table1最小 select min(field1) as minvalue fromtable111、说明几个高级查询运算词A UNION运算符UNION运算符通过组合其他两个结果表例如TABLE1和TABLE2并消去表中任何重复行而派生出一个结果表。当ALL随UNION一起使用时

即UNION ALL不消除重复行。两种情况下派生表的每一行不是来自 TABLE1就是来自 TABLE2。 B EXCEPT运算符EXCEPT运算符通过包括所有在TABLE1中但不在TABLE2中的行并消除所有重复行而派生出一个结果表。当ALL随EXCEPT一起使用时(EXCEPTALL)不消除重复行。 C I NTERSECT运算符I NTERSECT运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而派生出一个结果表。当ALL随I NTERSECT一起使用时(I NTERSECT ALL)不消除重复行。注使用运算词的几个查询结果行必须是一致的。 12、说明使用外连接A、 left outer join左外连接左连接结果集几包括连接表的匹配行也包括左连接表的所有行。 SQL: selecta.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUTJOIN b ON a.a = b.cB right

outer join:右外连接(右连接) 结果集既包括连接表的匹配连接行也包括右连接表的所有行。 C ful l/cross outer join全外连接不仅包括符号连接表的匹配行还包括两个连接表中的所有记录。12、

不问收获但问耕耘最好的资料给最好的自己

分组:Group by:一张表一旦分组完成后查询后只能得到组相关的信息。组相关的信息 统计信息 count,sum,max,min,avg分组的标准)在SQLServer中分组时不能以text,ntext,image类型的字段作为分组依据在selecte统计函数中的字段不能和普通的字段放在一起

13、对数据库进行操作分离数据库 sp_detach_db;附加数据库sp_attach_db后接表明附加需要完整的路径名14.如何修改数据库的名称:sp_renamedb'old_name', 'new_name'二、提升1、说明复制表(只复制结构,源表名 a新表名 b) (Access可用)法一 select*intobfrom awhere 11 仅用于SQlServer法二 selecttop0*into bfroma2、说明拷贝表(拷贝数据,源表名a 目标表名b) (Access可用)insertinto b(a,b,c)selectd,e,f from b;3、说明跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)insert into b(a,b,c) selectd,e,f from bin ‘具体数据库’ where 条件例子 ..from b in'"&Server.MapPath(".")&"\data.mdb"&"'where. .4、说明子查询(表名

1 a表名2 b)select a,b,cfrom a where a IN(select d from b)或者:select a,b,c from a where a IN(1,2,3)5、说明显示文章、提交人和最后回复时间select a.title,a.username,b.adddate from table a,(selectmax(adddate)adddatefrom tablewheretable.title=a.title)b6、说明外连接查询(表名1a表名2b)selecta.a,a.b,a.c,b.c,b.d,b.f from a LEFTOUTJOIN bON a.a=b.c7、说明在线视图查询(表名1 a)select*from(SELECTa,b,c FROM a)Twheret.a>1;8、说明between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from

不问收获但问耕耘最好的资料给最好的自己

table1 where time between time1 and time2select a,b,c, from table1wherea notbetween数值1 and数值29、说明 in的使用方法select

*fromtable1wherea [not] in( ‘值1’ , ’值2’ , ’值4’ , ’值6’ )10、说明两张关联表删除主表中已经在副表中没有的信息deletefromtable1 where not exists ( select * from table2 wheretable1.field1=table2.field1)11、说明四表联查问题 select*from a leftinner join b on a.a=b.b right inner join c on a.a=c.c inner join d ona.a=d.d where. .12、说明 日程安排提前五分钟提醒SQL: select*from日程安排where datediff('minute',f开始时间,getdate())>513、说明一条sql语句搞定数据库分页select top 10 b.*from(select top 20主键字段,排序字段from表名order by排序字段desc) a,表名 bwhere b.主键字段=a.主键字段order by a.排序字段具体实现关于数据库分页 declare@start int,@end int@sql nvarchar(600)set@sql=’selecttop’ +str(@end-@start+1)+’ +fromTwhere rid not in(selecttop’+str(@str-1)+’ Rid from Twhere Rid>-1) ’ exec sp_executesql@sql注意在top后不能直接跟一个变量所以在实际应用中只有这样的进行特殊的处理。 Rid为一个标识列如果top后还有具体的字段这样做是非常有好处的。因为这样可以避免top的字段如果是逻辑索引的查询的结果后实际表中的不一致逻辑索引中的数据有可能和数据表中的不一致而查询时如果处在索引则首先查询索引 14、说明前10条记录selecttop 10*formtable1where范围15、说明选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的

不问收获但问耕耘最好的资料给最好的自己

用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)select a,b,c from tablename ta where a=(select max(a) fromtablename tb where tb.b=ta.b)16、说明包括所有在TableA中但不在TableB和TableC中的行并消除所有重复行而派生出一个结果表(selecta from tableA)except (select a from tableB)except (select a fromtableC)17、说明随机取出10条数据select top 10*from tablenameorder by newid()18、说明随机选择记录selectnewid()19、说明删除重复记录1),delete from tablename where id not in (select max(id)from tablename group by col1,col2,)2),select distinct * into temp fromtablenamedelete from tablenameinsert into tablename select * fromtemp评价 这种操作牵连大量的数据的移动这种做法不适合大容量但数据操作3),例如在一个外部表中导入数据 由于某些原因第一次只导入了一部分但很难判断具体位置这样只有在下一次全部导入这样也就产生好多重复的字段怎样删除重复字段alter tabletablename--添加一个自增列add column_b int identity(1,1)delete fromtablename where column_b not in(select max(column_b) fromtablename group by column1,column2,)alter table tablename dropcolumncolumn_b20、说明列出数据库里所有的表名selectnamefromsysobjects where type='U'//U代表用户21、说明列出表里的所有的列名selectnamefrom syscolumnswhereid=object_id('TableName')22、说明列示type、 vender、 pcs字段 以type字段排列 case可以方便地实现多重选择类似select中的case。selecttype,sum(casevender

不问收获但问耕耘最好的资料给最好的自己

when 'A' then pcs else0end),sum(casevenderwhen 'C' then pcs else0end),sum(case vender when 'B' then pcs else 0 end) FROM tablenamegroup by type显示结果 typevender pcs电脑A 1电脑A 1光盘B 2光盘A2手机B3手机C323、说明初始化表table1TRUNCATETABLEtable124、说明选择从10到15的记录selecttop 5*from(selecttop15*fromtableorder byid asc) table_别名order byid desc三、技巧1、1=1 1=2的使用在SQL语句组合时用的较多“where 1=1” 是表示选择全部

“where 1=2”全部不选如 if@strWhere!=' 'beginset@strSQL='selectcount(*) as Total from [' + @tblName + '] where ' +@strWhereendelsebeginset@strSQL='select count(*) as Total from['+@tblName + ']'end我们可以直接写成错误未找到目录项。 set@strSQL='select count(*) as Total from['+@tblName+']where 1=1安定'+@strWhere 2、收缩数据库--重建索引DBCC REINDEXDBCCINDEXDEFRAG--收缩数据和日志DBCC SHRINKDBDBCC SHRINKFILE3、压缩数据库dbccshrinkdatabase(dbname)4、转移数据库给新用户以已存在 用 户 权 限 exec sp_change_users_login'update_one','newname','oldname'go5 、 检查备份集 RESTOREVERIFYONLY from disk='E:\dvbbs.bak'6、修复数据库ALTER DATABASE[dvbbs] SET SINGLE_USERGODBCCCHECKDB('dvbbs',repair_al low_data_loss) WITH TABLOCKGOALTERDATABASE [dvbbs] SET MULTI_USERGO7、 日志清除SET NOCOUNT

不问收获但问耕耘最好的资料给最好的自己

ONDECLARE@LogicalFi leName sysname,@MaxMinutes INT,@NewSizeINTUSE tablename --要操作的数据库名SELECT@LogicalFi leName ='tablename_log', -- 日志文件名@MaxMinutes = 10, -- Limit on timeal lowed to wrap log.@NewSize = 1 --你想设定的日志文件的大小(M)Setup / initial izeDECLARE@OriginalSize intSELECT@OriginalSize =sizeFROM sysfi lesWHERE name=@LogicalFi leNameSELECT'Original Sizeof '+db_name()+' LOG is '+CONVERT(VARCHAR(30),@OriginalSize)+'8K pages or ' +CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) +'MB'FROM sysfi lesWHERE name = @LogicalFi leNameCREATE TABLEDummyTrans(DummyColumn char (8000)not nul l)DECLARE@CounterINT,@StartTime DATETIME,@TruncLog VARCHAR(255)SELECT@StartTime=GETDATE(),@TruncLog='BACKUP LOG'+db_name()+ 'WITH TRUNCATE_ONLY'DBCC SHRINKFILE (@LogicalFi leName,@NewSize)EXEC (@TruncLog)-- Wrap the log if necessary.WHILE@MaxMinutes>DATEDIFF (mi,@StartTime,GETDATE()) -- time has notexpiredAND@OriginalSize=(SELECTsize FROM sysfi les WHERE name=@LogicalFi leName)AND(@OriginalSize *8/1024) >@NewSizeBEGIN --Outer loop.SELECT @Counter = 0WHILE ((@Counter BEGIN --updateINSERT DummyTrans VALUES ('Fi l l Log') DELETEDummyTransSELECT @Counter = @Counter + 1ENDEXEC(@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is '+CONVERT(VARCHAR(30),size) + ' 8K pages or '

不问收获但问耕耘最好的资料给最好的自己

+CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'FROM sysfi lesWHEREname = @LogicalFi leNameDROP TABLE DummyTransSET NOCOUNTOFF8 、 说明  更改某个表 exec sp_changeobjectowner'tablename','dbo'9 、 存储更改全部表 CREATE PROCEDUREdbo.User_ChangeObjectOwnerBatch@OldOwner asNVARCHAR(128),@NewOwner as NVARCHAR(128)ASDECLARE@Nameas NVARCHAR(128)DECLARE @Owner as NVARCHAR(128)DECLARE@OwnerName as NVARCHAR(128)DECLARE curObject CURSORFORselect 'Name'

=name

= user_name(uid)from sysobjectswhereuser_name(uid)=@OldOwnerorder by nameOPEN curObjectFETCH NEXTFROM curObject INTO @Name,@OwnerWHI LE(@@FETCH_STATUS=0)BEGI Nif

@Owner=@OldOwnerbeginset@OwnerName =@OldOwner + ' . ' +rtrim(@Name)exec sp_changeobjectowner @OwnerName,@NewOwnerend-- select@name,@NewOwner,@OldOwnerFETCH NEXTFROM curObject INTO@Name,@OwnerENDclose curObjectdeal locatecurObjectGO10、 SQL SERVER中直接循环写入数据declare@i intset@i=1whi le@ibegininsert into test (userid)values(@i)set@i=@i+1end案例有如下表要求就裱中所有沒有及格的成績在每次增長0.1的基礎上使他們剛好及格:Name scoreZhangshan 80Lishi 59Wangwu

老薛主机入门建站月付34/月,年付345元,半价香港VPS主机

老薛主机怎么样?老薛主机这个商家有存在有一些年头。如果没有记错的话,早年老薛主机是做虚拟主机业务的,还算不错在异常激烈的市场中生存到现在,应该算是在众多商家中早期积累到一定的用户群的,主打小众个人网站业务所以能持续到现在。这不,站长看到商家有在进行夏季促销,比如我们很多网友可能有需要的香港vps主机季度及以上可以半价优惠,如果有在选择不同主机商的香港机房的可以看看老薛主机商家的香港vps。点击进入...

数脉科技:香港服务器低至350元/月;阿里云CN2+BGP线路,带宽10M30M50M100M

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。数脉香港特价阿里云10MbpsCN2,e3-1230v2,16G内存,1T HDD 或 240G SSD,10Mbps带宽,IPv41个,...

美国200G美国高防服务器16G,800元

美国高防服务器提速啦专业提供美国高防服务器,美国高防服务器租用,美国抗攻击服务器,高防御美国服务器租用等。我们的海外高防服务器带给您坚不可摧的DDoS防护,保障您的业务不受攻击影响。HostEase美国高防服务器位于加州和洛杉矶数据中心,均为国内访问速度最快最稳定的美国抗攻击机房,带给您快速的访问体验。我们的高防服务器配有最高层级的DDoS防护系统,每款抗攻击服务器均拥有免费DDoS防护额度,让您...

sql语句大全为你推荐
51自学网站有哪些免费自学网支付宝查询余额支付宝怎么查余额?!?!缓冲区溢出教程溢出攻击法使用什么样的原理中国电信互联星空中国电信宽带于互联星空的区别ps抠图技巧ps抠图多种技巧,越详细越好,急~~~~~~~申请证书求高手教下怎么申请证书彩信中心移动的短信中心号码是多少开机滚动条如何关闭开机滚动条?qq空间打扮如何打扮QQ空间?ios系统ios是什么意思 ios系统是什么
服务器租用 免费二级域名注册 域名查询工具 北京域名空间 namecheap 好看的桌面背景图 浙江独立 云全民 qq数据库下载 ca4249 免费网站申请 100m免费空间 100x100头像 40g硬盘 免费吧 可外链网盘 佛山高防服务器 广州服务器 美国堪萨斯 国外免费asp空间 更多