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

ProfitServer$34.56/年,西班牙vps、荷兰vps、德国vps/不限制流量/支持自定义ISO

profitserver怎么样?profitserver是一家成立于2003的主机商家,是ITC控股的一个部门,主要经营的产品域名、SSL证书、虚拟主机、VPS和独立服务器,机房有俄罗斯、新加坡、荷兰、美国、保加利亚,VPS采用的是KVM虚拟架构,硬盘采用纯SSD,而且最大的优势是不限制流量,大公司运营,机器比较稳定,数据中心众多。此次ProfitServer正在对德国VPS(法兰克福)、西班牙v...

亚洲云-浙江高防BGP,至强铂金8270,提供自助防火墙管理,超大内存满足你各种需求

官方网站:点击访问亚洲云官网618活动方案:618特价活动(6.18-6.30)全站首月活动月底结束!地区:浙江高防BGPCPU:至强铂金8270主频7 默频3.61 睿频4.0核心:8核(最高支持64核)内存:8G(最高支持128G)DDR4 3200硬盘:40G系统盘+80G数据盘带宽:上行:20Mbps/下行:1000Mbps防御:100G(可加至300G)防火墙:提供自助 天机盾+金盾 管...

Sharktech云服务器35折年付33美元起,2G内存/40G硬盘/4TB流量/多机房可选

Sharktech又称SK或者鲨鱼机房,是一家主打高防产品的国外商家,成立于2003年,提供的产品包括独立服务器租用、VPS云服务器等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等。之前我们经常分享商家提供的独立服务器产品,近期主机商针对云虚拟服务器(CVS)提供优惠码,优惠后XS套餐年付最低仅33.39美元起,支持使用支付宝、PayPal、信用卡等付款方式。下面以XS套餐为例,分享产品配...

sql语句大全为你推荐
bbsxp老大!!您好!我是初学者!请问我的bbsxp如何更改顶端左面的LOGO??博客外链博客外链怎么做好ghostxp3GhostXP3电脑公司特别版V499怎么安装bluestacksbluestacks怎么用开机滚动条电脑开机滚动条要走好几次创维云电视功能创维健康云电视有什么功能?idc前线求电影敢死队电影里的歌曲!如何快速收录如何让百度快速收录电子商务网站模板做电子商务网站用什么cms或者模版比较好?网站地图制作如何制作一个网站地图?
成都虚拟主机 出租服务器 日本私人vps plesk vmsnap3 免费ftp站点 三拼域名 linux空间 工信部icp备案号 四川电信商城 秒杀品 成都主机托管 卡巴斯基官网下载 e-mail screen 达拉斯 赵蓉 华为云服务器宕机 ddos攻击软件 dmz主机 更多