最好的语录大全_经典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

LOCVPS新上韩国KVM,全场8折,2G内存套餐月付44元起_网络传真服务器

LOCVPS(全球云)发布了新上韩国机房KVM架构主机信息,提供流量和带宽方式,适用全场8折优惠码,优惠码最低2G内存套餐月付仅44元起。这是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。下面分别列出几款韩国机房KVM主机配置信息。韩国KVM流量型套餐:KR-Pl...

宝塔面板企业版和专业版618年中活动 永久授权仅1888元+

我们一般的站长或者企业服务器配置WEB环境会用到免费版本的宝塔面板。但是如果我们需要较多的付费插件扩展,或者是有需要企业功能应用的,短期来说我们可能选择按件按月付费的比较好,但是如果我们长期使用的话,有些网友认为选择宝塔面板企业版或者专业版是比较划算的。这样在年中大促618的时候,我们也可以看到宝塔面板也有发布促销活动。企业版年付899元,专业版永久授权1888元起步。对于有需要的网友来说,还是值...

WebHorizon($10.56/年)256MB/5G SSD/200GB/日本VPS

WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...

sql语句大全为你推荐
spgnuxps = getCon().prepareStatement(sql);啥意思,求注释,要是不嫌麻烦帮我把下面的也给注释了arm开发板新手入门应如何选择 ARM 开发板?开机滚动条开机滚动条太多怎么办?迅雷云点播账号求一个迅雷云点播vip的账号,只是看的,绝不动任何手脚。ejb开发EJB是啥玩意了idc前线穿越火线河北的服务器好卡 有人知道怎么回事嘛 知道的速回ios系统iOS系统为什么那么好网页打开很慢为什么我打开网页很慢系统分析员系统分析员的工作内容宽带接入服务器网络已连接,可无法连接到服务器为什么?网络已连接,可无法连接到服务
虚拟主机评测网 泛域名解析 中国万网域名 国外服务器网站 softbank官网 鲜果阅读 debian7 台湾谷歌地址 百兆独享 刀片服务器的优势 美国网站服务器 免费智能解析 国外免费asp空间 根服务器 申请网站 东莞idc 网通服务器 免费的asp空间 徐州电信 1美元 更多