仓酷云

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

[学习教程] MSSQL教程之本人收拾的Transact_SQL,大概对你有帮...

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

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

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

x
由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏:

*******************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的值

也就是说在php本地调用pdoprepare中的mysql_real_escape_string来操作query,使用的是本地单字节字符集,即编码为xbfx5cx27,并带入到mysql中查询,由于使用setnames设置了连接字符集.
只想知道 该用户已被删除
沙发
发表于 2015-1-19 12:26:11 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
蒙在股里 该用户已被删除
板凳
发表于 2015-1-26 17:10:39 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
飘飘悠悠 该用户已被删除
地板
发表于 2015-2-4 20:18:36 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-10 06:41:26 | 只看该作者
我个人认为就是孜孜不懈的学习
精灵巫婆 该用户已被删除
6#
发表于 2015-3-1 02:21:15 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
海妖 该用户已被删除
7#
发表于 2015-3-10 12:26:40 | 只看该作者
数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。
山那边是海 该用户已被删除
8#
发表于 2015-3-17 07:09:21 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-24 01:19:55 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 18:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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