仓酷云

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

[学习教程] MSSQL网页设计Transact_SQL小手册

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

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

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

x
这里我们讨论用binlog来实现闪回的方案。
--语句功能--数据操纵SELECT--从数据库表中检索数据行和列INSERT--向数据库表增加新数据行DELETE--从数据库表中删除数据行UPDATE--更新数据库表中的数据--数据界说CREATETABLE--创立一个数据库表DROPTABLE--从数据库中删除表ALTERTABLE--修正数据库表布局CREATEVIEW--创立一个视图DROPVIEW--从数据库中删除视图CREATEINDEX--为数据库表创立一个索引DROPINDEX--从数据库中删除索引CREATEPROCEDURE--创立一个存储历程DROPPROCEDURE--从数据库中删除存储历程CREATETRIGGER--创立一个触发器DROPTRIGGER--从数据库中删除触发器CREATESCHEMA--向数据库增加一个新形式DROPSCHEMA--从数据库中删除一个形式CREATEDOMAIN--创立一个数据值域ALTERDOMAIN--改动域界说DROPDOMAIN--从数据库中删除一个域--数据把持GRANT--授与用户会见权限DENY--回绝用户会见REVOKE--排除用户会见权限--事件把持COMMIT--停止以后事件ROLLBACK--中断以后事件SETTRANSACTION--界说以后事件数据会见特性--程序化SQLDECLARE--为查询设定游标EXPLAN--为查询形貌数据会见企图OPEN--检索查询了局翻开一个游标FETCH--检索一行查询了局CLOSE--封闭游标PREPARE--为静态实行筹办SQL语句EXECUTE--静态地实行SQL语句DESCRIBE--形貌筹办好的查询

---部分变量declare@idchar(10)--set@id=10010001select@id=10010001

---全局变量---必需以@@开首

--IFELSEdeclare@xint@yint@zintselect@x=1@y=2@z=3if@x>@yprintx>y--打印字符串x>yelseif@y>@zprinty>zelseprintz>y

--CASEusepanguupdateemployeesete_wage=casewhenjob_level=’1’thene_wage*1.08whenjob_level=’2’thene_wage*1.07whenjob_level=’3’thene_wage*1.06elsee_wage*1.05end

--WHILECONTINUEBREAKdeclare@xint@yint@cintselect@x=1@y=1while@x<3beginprint@x--打印变量x的值while@y<3beginselect@c=100*@x+@yprint@c--打印变量c的值select@y=@y+1endselect@x=@x+1select@y=1end

--WAITFOR--例守候1小时2分零3秒后才实行SELECT语句waitfordelay’01:02:03’select*fromemployee--例比及早晨11点零8分后才实行SELECT语句waitfortime’23:08:00’select*fromemployee



***SELECT***

select*(列名)fromtable_name(表名)wherecolumn_nameoperatorvalueex宿主)select*fromstock_informationwherestockid=str(nid)stockname=str_namestocknamelike%findthis%stocknamelike[a-zA-Z]%---------([]指定值的局限)stocknamelike[^F-M]%---------(^扫除指定局限)---------只能在利用like关头字的where子句中利用通配符)orstockpath=stock_pathorstocknumber<1000andstockindex=24notstocksex=manstocknumberbetween20and100stocknumberin(10,20,30)orderbystockiddesc(asc)---------排序,desc-降序,asc-升序orderby1,2---------by列号stockname=(selectstocknamefromstock_informationwherestockid=4)---------子查询---------除非能确保内层select只前往一个行的值,---------不然应在外层where子句顶用一个in限制符selectdistinctcolumn_nameformtable_name---------distinct指定检索独占的列值,不反复selectstocknumber,"stocknumber+10"=stocknumber+10fromtable_nameselectstockname,"stocknumber"=count(*)fromtable_namegroupbystockname---------groupby将表按行分组,指定列中有不异的值havingcount(*)=2---------having选定指定的组

select*fromtable1,table2wheretable1.id*=table2.id--------左内部毗连,table1中有的而table2中没有得以null暗示table1.id=*table2.id--------右内部毗连

selectstocknamefromtable1union[all]-----union兼并查询了局集,all-保存反复行selectstocknamefromtable2

***insert***

insertintotable_name(Stock_name,Stock_number)value("xxx","xxxx")value(selectStockname,StocknumberfromStock_table2)---value为select语句

***update***

updatetable_namesetStockname="xxx"[whereStockid=3]Stockname=defaultStockname=nullStocknumber=Stockname+4

***delete***

deletefromtable_namewhereStockid=3truncatetable_name-----------删除表中一切行,仍坚持表的完全性droptabletable_name---------------完整删除表

***altertable***---修正数据库表布局

altertabledatabase.owner.table_nameaddcolumn_namechar(2)null.....sp_helptable_name----显现表已有特性createtabletable_name(namechar(20),agesmallint,lnamevarchar(30))insertintotable_nameselect.........-----完成删除列的办法(创立新表)altertabletable_namedropconstraintStockname_default----删除Stockname的default束缚

***function(/*经常使用函数*/)***

----统计函数----AVG--求均匀值COUNT--统计数量MAX--求最年夜值MIN--求最小值SUM--乞降

--AVGusepanguselectavg(e_wage)asdept_avgWagefromemployeegroupbydept_id

--MAX--求人为最高的员工姓名usepanguselecte_namefromemployeewheree_wage=(selectmax(e_wage)fromemployee)

--STDEV()--STDEV()函数前往表达式中一切数据的尺度差

--STDEVP()--STDEVP()函数前往整体尺度差

--VAR()--VAR()函数前往表达式中一切值的统计变异数

--VARP()--VARP()函数前往整体变异数

----算术函数----

/***三角函数***/SIN(float_expression)--前往以弧度暗示的角的正弦COS(float_expression)--前往以弧度暗示的角的余弦TAN(float_expression)--前往以弧度暗示的角的正切COT(float_expression)--前往以弧度暗示的角的余切/***反三角函数***/ASIN(float_expression)--前往正弦是FLOAT值的以弧度暗示的角ACOS(float_expression)--前往余弦是FLOAT值的以弧度暗示的角ATAN(float_expression)--前往正切是FLOAT值的以弧度暗示的角ATAN2(float_expression1,float_expression2)--前往正切是float_expression1/float_expres-sion2的以弧度暗示的角DEGREES(numeric_expression)--把弧度转换为角度前往与表达式不异的数据范例可为--INTEGER/MONEY/REAL/FLOAT范例RADIANS(numeric_expression)--把角度转换为弧度前往与表达式不异的数据范例可为--INTEGER/MONEY/REAL/FLOAT范例EXP(float_expression)--前往表达式的指数值LOG(float_expression)--前往表达式的天然对数值LOG10(float_expression)--前往表达式的以10为底的对数值SQRT(float_expression)--前往表达式的平方根/***取近似值函数***/CEILING(numeric_expression)--前往>=表达式的最小整数前往的数据范例与表达式不异可为--INTEGER/MONEY/REAL/FLOAT范例FLOOR(numeric_expression)--前往<=表达式的最小整数前往的数据范例与表达式不异可为--INTEGER/MONEY/REAL/FLOAT范例ROUND(numeric_expression)--前往以integer_expression为精度的四舍五进值前往的数据--范例与表达式不异可为INTEGER/MONEY/REAL/FLOAT范例ABS(numeric_expression)--前往表达式的相对值前往的数据范例与表达式不异可为--INTEGER/MONEY/REAL/FLOAT范例SIGN(numeric_expression)--测试参数的正负号前往0零值1负数或-1正数前往的数据范例--与表达式不异可为INTEGER/MONEY/REAL/FLOAT范例PI()--前往值为π即3.1415926535897936RAND([integer_expression])--用任选的[integer_expression]做种子值得出0-1间的随机浮点数

----字符串函数----ASCII()--函数前往字符表达式最左端字符的ASCII码值CHAR()--函数用于将ASCII码转换为字符--假如没有输出0~255之间的ASCII码值CHAR函数会前往一个NULL值LOWER()--函数把字符串全体转换为小写UPPER()--函数把字符串全体转换为年夜写STR()--函数把数值型数据转换为字符型数据LTRIM()--函数把字符串头部的空格往失落RTRIM()--函数把字符串尾部的空格往失落LEFT(),RIGHT(),SUBSTRING()--函数前往部分字符串CHARINDEX(),PATINDEX()--函数前往字符串中某个指定的子串呈现的入手下手地位SOUNDEX()--函数前往一个四位字符码--SOUNDEX函数可用来查找声响类似的字符串但SOUNDEX函数对数字和汉字均只前往0值DIFFERENCE()--函数前往由SOUNDEX函数前往的两个字符表达式的值的差别--0两个SOUNDEX函数前往值的第一个字符分歧--1两个SOUNDEX函数前往值的第一个字符不异--2两个SOUNDEX函数前往值的第一二个字符不异--3两个SOUNDEX函数前往值的第一二三个字符不异--4两个SOUNDEX函数前往值完整不异

QUOTENAME()--函数前往被特定字符括起来的字符串/*selectquotename(abc,{)quotename(abc)运转了局以下----------------------------------{{abc}[abc]*/

REPLICATE()--函数前往一个反复character_expression指定次数的字符串/*selectreplicate(abc,3)replicate(abc,-2)运转了局以下----------------------abcabcabcNULL*/

REVERSE()--函数将指定的字符串的字符分列按次倒置REPLACE()--函数前往被交换了指定子串的字符串/*selectreplace(abc123g,123,def)运转了局以下----------------------abcdefg*/

SPACE()--函数前往一个有指定长度的空缺字符串STUFF()--函数用另外一子串交换字符串指定地位长度的子串

----数据范例转换函数----CAST()函数语法以下CAST()(<expression>AS<data_type>[length])CONVERT()函数语法以下CONVERT()(<data_type>[length],<expression>[,style])

selectcast(100+99aschar)convert(varchar(12),getdate())运转了局以下------------------------------------------199Jan152000

----日期函数----DAY()--函数前往date_expression中的日期值MONTH()--函数前往date_expression中的月份值YEAR()--函数前往date_expression中的年份值DATEADD(<datepart>,<number>,<date>)--函数前往指定日期date加上指定的分外日时代隔number发生的新日期DATEDIFF(<datepart>,<number>,<date>)--函数前往两个指定日期在datepart方面的分歧的地方DATENAME(<datepart>,<date>)--函数以字符串的情势前往日期的指定部分DATEPART(<datepart>,<date>)--函数以整数值的情势前往日期的指定部分GETDATE()--函数以DATETIME的缺省格局前往体系以后的日期和工夫

----体系函数----APP_NAME()--函数前往以后实行的使用程序的称号COALESCE()--函数前往浩瀚表达式中第一个非NULL表达式的值COL_LENGTH(<table_name>,<column_name>)--函数前往表中指定字段的长度值COL_NAME(<table_id>,<column_id>)--函数前往表中指定字段的称号即列名DATALENGTH()--函数前往数据表达式的数据的实践长度DB_ID([database_name])--函数前往数据库的编号DB_NAME(database_id)--函数前往数据库的称号HOST_ID()--函数前往服务器端盘算机的称号HOST_NAME()--函数前往服务器端盘算机的称号IDENTITY(<data_type>[,seedincrement])[AScolumn_name])--IDENTITY()函数只在SELECTINTO语句中利用用于拔出一个identitycolumn列到新表中/*selectidentity(int,1,1)ascolumn_nameintonewtablefromoldtable*/ISDATE()--函数判别所给定的表达式是不是为公道日期ISNULL(<check_expression>,<replacement_value>)--函数将表达式中的NULL值用指定值交换ISNUMERIC()--函数判别所给定的表达式是不是为公道的数值NEWID()--函数前往一个UNIQUEIDENTIFIER范例的数值NULLIF(<expression1>,<expression2>)--NULLIF函数在expression1与expression2相称时前往NULL值若不相称时则前往expression1的值
这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-19 15:48:52 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
小女巫 该用户已被删除
板凳
发表于 2015-1-25 12:22:03 来自手机 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
只想知道 该用户已被删除
地板
发表于 2015-2-8 11:15:13 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
深爱那片海 该用户已被删除
5#
发表于 2015-2-25 10:49:33 | 只看该作者
还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
柔情似水 该用户已被删除
6#
发表于 2015-3-7 20:07:42 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-15 13:01:48 | 只看该作者
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-22 01:10:38 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-4 00:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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