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

hosteons:10Gbps带宽,免费Windows授权,自定义上传ISO,VPS低至$21/年,可选洛杉矶达拉斯纽约

hosteons当前对美国洛杉矶、达拉斯、纽约数据中心的VPS进行特别的促销活动:(1)免费从1Gbps升级到10Gbps带宽,(2)Free Blesta License授权,(3)Windows server 2019授权,要求从2G内存起,而且是年付。 官方网站:https://www.hosteons.com 使用优惠码:zhujicepingEDDB10G,可以获得: 免费升级10...

SunthyCloud阿里云国际版分销商注册教程,即可PayPal信用卡分销商服务器

阿里云国际版注册认证教程-免绑卡-免实名买服务器安全、便宜、可靠、良心,支持人民币充值,提供代理折扣简介SunthyCloud成立于2015年,是阿里云国际版正规战略级渠道商,也是阿里云国际版最大的分销商,专业为全球企业客户提供阿里云国际版开户注册、认证、充值等服务,通过SunthyCloud开通阿里云国际版只需要一个邮箱,不需要PayPal信用卡就可以帮你开通、充值、新购、续费阿里云国际版,服务...

日本vps云服务器选择指南。

日本vps云服务器怎么选择?很多人都会遇到日本vps和日本云服务器怎么选择的问题,日本云服务器具有免备案的特点。小编今天就分析一下日本云服务器价格多少钱,以方便大家选购的时候有个更加合适的取舍。日本云服务器租用前比较选择,高性能、安全、高效、免备案日本云服务器是很关键的因素。那么,日本云服务器该怎么选择呢?日本作为我们的邻国,与其贸易、文化往来是比较多的。日本云服务器价格多少钱一年?一、日本·CN...

sql语句大全为你推荐
qq讨论组QQ群和讨论组的区别在哪里人人时光机现在世界上有时光机吗ghostxp3目前最好的ghost xp3是什么?滚动代码来回滚动代码宕机宕机是什么意思网页打开很慢为什么我打开网页很慢安全漏洞计算机一般存在哪些安全漏洞?网管工具网吧工具有什么?火狐flash插件崩溃火狐Flash插件经常崩溃地理空间数据云地理空间数据云下载的遥感图像要做预处理吗?
猫咪av永久最新域名 备案未注册域名 日本vps locvps 外国域名 警告本网站 个人空间申请 百兆独享 卡巴斯基试用版 上海联通宽带测速 atom处理器 lamp的音标 1美元 阿里云邮箱怎么注册 windows2008 htaccess linux服务器系统 俄勒冈州 paypal兑换 免费网络电视软件 更多