仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 726|回复: 8
打印 上一主题 下一主题

[学习教程] SQL语句精巧汇合

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:19:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏:11、基本
2
31、申明:创立数据库
4CreateDATABASEdatabase-name
5
62、申明:删除数据库
7dropdatabasedbname
8
93、申明:备份sqlserver
10---创立备份数据的device
11USEmaster
12EXECsp_addumpdevicedisk,testBack,c:mssql7backupMyNwind_1.dat
13---入手下手备份
14BACKUPDATABASEpubsTOtestBack
15
164、申明:创立新表
17createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)
18依据已有的表创立新表:
19A:createtabletab_newliketab_old(利用旧表创立新表)
20B:createtabletab_newasselectcol1,col2…fromtab_olddefinitiononly
21
225、申明:删除新表
23droptabletabname
24
256、申明:增添一个列
26Altertabletabnameaddcolumncoltype
27注:列增添后将不克不及删除。DB2中列加上后数据范例也不克不及改动,独一能改动的是增添varchar范例的长度。
28
297、申明:增加主键:Altertabletabnameaddprimarykey(col)
30申明:删除主键:Altertabletabnamedropprimarykey(col)
31
328、申明:创立索引:create[unique]indexidxnameontabname(col….)
33删除索引:dropindexidxname
34注:索引是不成变动的,想变动必需删除从头建。
35
369、申明:创立视图:createviewviewnameasselectstatement
37删除视图:dropviewviewname
38
3910、申明:几个复杂的基础的sql语句
40选择:select*fromtable1where局限
41拔出:insertintotable1(field1,field2)values(value1,value2)
42删除:deletefromtable1where局限
43更新:updatetable1setfield1=value1where局限
44查找:select*fromtable1wherefield1like’%value1%’---like的语法很精巧,查材料!
45排序:select*fromtable1orderbyfield1,field2[desc]
46总数:selectcountastotalcountfromtable1
47乞降:selectsum(field1)assumvaluefromtable1
48均匀:selectavg(field1)asavgvaluefromtable1
49最年夜:selectmax(field1)asmaxvaluefromtable1
50最小:selectmin(field1)asminvaluefromtable1
51
5211、申明:几个初级查询运算词
53A:UNION运算符
54UNION运算符经由过程组合其他两个了局表(比方TABLE1和TABLE2)并消往表中任何反复行而派生出一个了局表。当ALL随UNION一同利用时(即UNIONALL),不用除反复行。两种情形下,派生表的每行不是来自TABLE1就是来自TABLE2。
55B:EXCEPT运算符
56EXCEPT运算符经由过程包含一切在TABLE1中但不在TABLE2中的行并打消一切反复行而派生出一个了局表。当ALL随EXCEPT一同利用时(EXCEPTALL),不用除反复行。
57C:INTERSECT运算符
58INTERSECT运算符经由过程只包含TABLE1和TABLE2中都有的行并打消一切反复行而派生出一个了局表。当ALL随INTERSECT一同利用时(INTERSECTALL),不用除反复行。
59注:利用运算词的几个查询了局行必需是分歧的。
60
6112、申明:利用外毗连
62A、leftouterjoin:
63左外毗连(左毗连):了局集几包含毗连表的婚配行,也包含左毗连表的一切行。
64SQL:selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c
65B:rightouterjoin:
66右外毗连(右毗连):了局集既包含毗连表的婚配毗连行,也包含右毗连表的一切行。
67C:fullouterjoin:
68全外毗连:不但包含标记毗连表的婚配行,还包含两个毗连表中的一切纪录。
69
702、提拔
71
721、申明:复制表(只复制布局,源表名:a新表名:b)(Access可用)
73法一:select*intobfromawhere11
74法二:selecttop0*intobfroma
75
762、申明:拷贝表(拷贝数据,源表名:a方针表名:b)(Access可用)
77insertintob(a,b,c)selectd,e,ffromb;
78
793、申明:跨数据库之间表的拷贝(详细数据利用相对路径)(Access可用)
80insertintob(a,b,c)selectd,e,ffrombin‘详细数据库’where前提
81例子:..frombin&Server.MapPath(.)&data.mdb&where..
82
834、申明:子查询(表名1:a表名2:b)
84selecta,b,cfromawhereaIN(selectdfromb)大概:selecta,b,cfromawhereaIN(1,2,3)
85
865、申明:显现文章、提交人和最初复兴工夫
87selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b
88
896、申明:外毗连查询(表名1:a表名2:b)
90selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c
91
927、申明:在线视图查询(表名1:a)
93select*from(Selecta,b,cFROMa)Twheret.a>1;
94
958、申明:between的用法,between限定查询数据局限时包含了界限值,notbetween不包含
96select*fromtable1wheretimebetweentime1andtime2
97selecta,b,c,fromtable1whereanotbetween数值1and数值2
98
999、申明:in的利用办法
100select*fromtable1wherea[not]in(‘值1’,’值2’,’值4’,’值6’)
101
10210、申明:两张联系关系表,删除主表中已在副表中没有的信息
103deletefromtable1wherenotexists(select*fromtable2wheretable1.field1=table2.field1)
104
10511、申明:四表联查询题:
106select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.dwhere..
107
10812、申明:日程布置提早五分钟提示
109SQL:select*from日程布置wheredatediff(minute,f入手下手工夫,getdate())>5
110
11113、申明:一条sql语句弄定命据库分页
112selecttop10b.*from(selecttop20主键字段,排序字段from表名orderby排序字段desc)a,表名bwhereb.主键字段=a.主键字段orderbya.排序字段
113
11414、申明:前10笔记录
115selecttop10*formtable1where局限
116
11715、申明:选择在每组b值不异的数据中对应的a最年夜的纪录的一切信息(相似如许的用法能够用于论坛每个月排行榜,每个月热销产物剖析,按科目成就排名,等等.)
118selecta,b,cfromtablenametawherea=(selectmax(a)fromtablenametbwheretb.b=ta.b)
119
12016、申明:包含一切在TableA中但不在TableB和TableC中的行并打消一切反复行而派生出一个了局表
121(selectafromtableA)except(selectafromtableB)except(selectafromtableC)
122
12317、申明:随机掏出10条数据
124selecttop10*fromtablenameorderbynewid()
125
12618、申明:随机选择纪录
127selectnewid()
128
12919、申明:删除反复纪录
130Deletefromtablenamewhereidnotin(selectmax(id)fromtablenamegroupbycol1,col2,)
131
13220、申明:列出数据库里一切的表名
133selectnamefromsysobjectswheretype=U
134
13521、申明:列出内外的一切的
136selectnamefromsyscolumnswhereid=object_id(TableName)
137
13822、申明:列示type、vender、pcs字段,以type字段分列,case能够便利地完成多重选择,相似select中的case。
139selecttype,sum(casevenderwhenAthenpcselse0end),sum(casevenderwhenCthenpcselse0end),sum(casevenderwhenBthenpcselse0end)FROMtablenamegroupbytype
140显现了局:
141typevenderpcs
142电脑A1
143电脑A1
144光盘B2
145光盘A
因此,我们的第一个“米”,就是二进制日志binlog必须是rowbased的。在rowbase下,二进制日志binlog同时记录了更新前后的整行记录。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-18 12:56:07 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-25 19:19:21 | 只看该作者
我个人认为就是孜孜不懈的学习
透明 该用户已被删除
地板
发表于 2015-2-3 18:42:07 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
变相怪杰 该用户已被删除
5#
发表于 2015-2-9 04:54:59 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
蒙在股里 该用户已被删除
6#
发表于 2015-2-27 00:15:57 | 只看该作者
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-8 19:19:33 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
分手快乐 该用户已被删除
8#
发表于 2015-3-16 13:33:32 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
山那边是海 该用户已被删除
9#
发表于 2015-3-22 23:37:07 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-9 06:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表