仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2463|回复: 8

[学习教程] MSSQL网页设计Transact_SQL小手册,合适初学者

[复制链接]
海妖 该用户已被删除
发表于 2015-1-16 22:35:08 | 显示全部楼层 |阅读模式

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

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

x
为了在某种程序上弥补这一缺陷,许多SQL命令都有一个DELAY_KEY_WRITE项。这个选项的作用是暂时制止MySQL在该命令每插入一条新记录和每修改一条现有之后立刻对索引进行刷新,对索引的刷新将等到全部记录插入/修改完毕之后再进行。初学http://dev.csdn.net/Develop/article/25/25760.shtm选择自myclife的Blog
*******************Transact_SQL********************

--语句功能
--数据操纵
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--界说以后事件数据会见特性
--程序化SQL
DECLARE--为查询设定游标
EXPLAN--为查询形貌数据会见企图
OPEN--检索查询了局翻开一个游标
FETCH--检索一行查询了局
CLOSE--封闭游标
PREPARE--为静态实行筹办SQL语句
EXECUTE--静态地实行SQL语句
DESCRIBE--形貌筹办好的查询

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

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

--IFELSE
declare@xint@yint@zint
select@x=1@y=2@z=3
if@x>@y
printx>y--打印字符串x>y
elseif@y>@z
printy>z
elseprintz>y

--CASE
usepangu
updateemployee
sete_wage=
case
whenjob_level=’1’thene_wage*1.08
whenjob_level=’2’thene_wage*1.07
whenjob_level=’3’thene_wage*1.06
elsee_wage*1.05
end

--WHILECONTINUEBREAK
declare@xint@yint@cint
select@x=1@y=1
while@x<3
begin
print@x--打印变量x的值
while@y<3
begin
select@c=100*@x+@y
print@c--打印变量c的值
select@y=@y+1
end
select@x=@x+1
select@y=1
end

--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_nameoperatorvalue
ex:(宿主)
select*fromstock_informationwherestockid=str(nid)
stockname=str_name
stocknamelike%findthis%
stocknamelike[a-zA-Z]%---------([]指定值的局限)
stocknamelike[^F-M]%---------(^扫除指定局限)
---------只能在利用like关头字的where子句中利用通配符)
orstockpath=stock_path
orstocknumber<1000
andstockindex=24
notstocksex=man
stocknumberbetween20and100
stocknumberin(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_name
selectstockname,"stocknumber"=count(*)fromtable_namegroupbystockname
---------groupby将表按行分组,指定列中有不异的值
havingcount(*)=2---------having选定指定的组

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

selectstocknamefromtable1
union[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=default
Stockname=null
Stocknumber=Stockname+4

***delete***

deletefromtable_namewhereStockid=3
truncatetable_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--乞降

--AVG
usepangu
selectavg(e_wage)asdept_avgWage
fromemployee
groupbydept_id

--MAX
--求人为最高的员工姓名
usepangu
selecte_name
fromemployee
wheree_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.1415926535897936
RAND([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_name
intonewtable
fromoldtable*/
ISDATE()--函数判别所给定的表达式是不是为公道日期
ISNULL(<check_expression>,<replacement_value>)--函数将表达式中的NULL值用指定值交换
ISNUMERIC()--函数判别所给定的表达式是不是为公道的数值
NEWID()--函数前往一个UNIQUEIDENTIFIER范例的数值
NULLIF(<expression1>,<expression2>)
--NULLIF函数在expression1与expression2相称时前往NULL值若不相称时则前往expression1的值

以上是自己保藏的,作者我也不记得了。
在ORDERBY操作中,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快ORDERBY方面也没什么作用)。
海妖 该用户已被删除
 楼主| 发表于 2015-1-18 05:49:43 | 显示全部楼层
连做梦都在想页面结构是怎么样的,绝非虚言
小魔女 该用户已被删除
发表于 2015-1-30 17:30:50 | 显示全部楼层
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
不帅 该用户已被删除
发表于 2015-2-6 14:28:15 | 显示全部楼层
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
爱飞 该用户已被删除
发表于 2015-2-16 12:43:08 | 显示全部楼层
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)
金色的骷髅 该用户已被删除
发表于 2015-3-5 06:43:41 | 显示全部楼层
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
简单生活 该用户已被删除
发表于 2015-3-11 23:47:50 | 显示全部楼层
一个是把SQL语句写到客户端,可以使用DataSet进行加工;
兰色精灵 该用户已被删除
发表于 2015-3-19 16:40:36 | 显示全部楼层
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
精灵巫婆 该用户已被删除
发表于 2015-3-29 07:19:14 | 显示全部楼层
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 07:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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