您的位置:首页 > 数据库

SQL语法大全[转]

2008-01-31 09:52 4431 查看

--数据操作

4 q2 I! X! M0 z9 p* LSELECT --从数据库表中检索数据行和列

8 X) H9 }- x4 T- V9 SINSERT --向数据库表添加新数据行" j6 p) K- w6 S1 t

DELETE --从数据库表中删除数据行# }1 a4 x4 [% s' h l# t# V

UPDATE --更新数据库表中的数据

7 L. d) Q2 P& k4 N--数据定义

( ]' n; I" n% q4 U# U/ G( x0 U& DCREATE TABLE --创建一个数据库表# p A+ {, I! G1 T$ Q2 v% h

DROP TABLE --从数据库中删除表 M/ e1 ?( ] t: Y) M0 w! r

ALTER TABLE --修改数据库表结构/ N+ S" N5 M; U, i6 X

CREATE VIEW --创建一个视图% F! J1 J( J7 {- U

DROP VIEW --从数据库中删除视图

r7 l0 {/ m3 K# s+ j V9 c- @, yCREATE INDEX --为数据库表创建一个索引

1 {: J/ U+ ?& f' _' JDROP INDEX --从数据库中删除索引

! P1 o; d% k& wCREATE PROCEDURE --创建一个存储过程

; h# I, H( |9 C4 E: V6 a$ f7 gDROP PROCEDURE --从数据库中删除存储过程

9 Y3 w: N$ Q! K- b( vCREATE TRIGGER --创建一个触发器' w, m* m( M. X7 c- q

DROP TRIGGER --从数据库中删除触发器, W$ h T" t& J3 d1 F* N" P, X

CREATE SCHEMA --向数据库添加一个新模式% K$ a5 n0 }2 `4 j( k$ |& b

DROP SCHEMA --从数据库中删除一个模式$ @9 c. z( q* ?# {0 {! v3 m

CREATE DOMAIN --创建一个数据值域

' M* m+ [0 M; k3 D ]3 rALTER DOMAIN --改变域定义

4 f- [8 Z& s5 c6 u8 [* X$ m. pDROP DOMAIN --从数据库中删除一个域

: ^8 Z/ E% z$ x6 a--数据控制

9 H4 _# a& t) `( D" {% CGRANT --授予用户访问权限

! A1 x; G9 {( q4 L( zDENY --拒绝用户访问

, H0 E9 i# ^% L/ ^! d" mREVOKE --解除用户访问权限2 X- l$ @. ~" r t, b$ r @2 t

--事务控制/ k" O1 ^) [" Q8 E

COMMIT --结束当前事务

}% F! o6 N8 d1 PROLLBACK --中止当前事务: g3 F- C$ I0 {! p5 e' @# h3 o

SET TRANSACTION --定义当前事务数据访问特征" Z. C% O$ A$ x

--程序化SQL

7 ? f' K! t" `5 fDECLARE --为查询设定游标

0 z0 y5 Z X6 C+ t5 c/ [) c1 p0 WEXPLAN --为查询描述数据访问计划

+ M4 v' ]: v! hOPEN --检索查询结果打开一个游标

8 d( h7 S. |) I, ~- K z; s$ J; SFETCH --检索一行查询结果

! ]& Z, b% ]7 B; D, I# gCLOSE --关闭游标

& ^; v" F, _; j: T, a- j5 S0 bPREPARE --为动态执行准备SQL 语句

& c* L5 A q6 M! `3 }7 oEXECUTE --动态地执行SQL 语句

1 X0 C9 u) I( k- GDESCRIBE --描述准备好的查询

1 V) c6 Z- V. m) P: c---局部变量

. b o- Y& @/ V+ adeclare @id char(10)

# j7 _! ]7 ?" h1 G--set @id = '10010001'

" N. i" |* I8 Y; g5 Y, wselect @id = '10010001' / L* N. D+ ?/ C+ J& D

% M' x# v I) z* v$ [5 W0 x" J

---全局变量1 {1 ~ i$ N; k6 \( z' F* E8 u9 U

---必须以@@开头 X( P- U2 ^ i$ }5 u

- I: Z/ I9 M* B- X% N9 ? o: `3 O4 C$ O6 k

+ C5 a9 u' Z3 v _- B' r

. S/ m. f1 E) Q2 K3 u' B& G$ i

--IF ELSE

* Q8 M0 x8 s x( pdeclare @x int @y int @z int

! r. Y& b) t& b: } z, q2 }: Q! gselect @x = 1 @y = 2 @z=3- Q) o" v* g' m# ?

if @x > @y! b3 j( D1 g5 G# |

print 'x > y' --打印字符串'x > y'! {# R9 O4 F$ K8 u4 R0 l& l

else if @y > @z

5 x9 p# Y& l* U5 r" J1 E7 \print 'y > z'

+ F. _) ^* N; K# e8 Jelse print 'z > y'

L8 a8 \, ^. o; b/ R! O1 O$ r) x i8 a& N3 [4 ]9 U/ S O

, {/ v8 g% K& g v5 C* H9 `7 O

5 J( O% g9 K$ o& T--CASE6 b/ t& l- `" I; v/ r, L

use pangu

* D$ G, x) C7 x( K U1 Bupdate employee! p& u# v }8 a& s$ J) D

set e_wage =2 L% [0 q& _8 h

case

) D3 }$ A& `: Lwhen job_level = ’1’ then e_wage*1.08

- g. ^9 u( B1 P( n$ @5 E& pwhen job_level = ’2’ then e_wage*1.07

2 d/ j3 O4 _: awhen job_level = ’3’ then e_wage*1.06

' i2 D8 a( X- i. R- telse e_wage*1.05

9 _0 x% ?! Y8 P8 rend

$ ~7 u+ I- G, d4 r( n- N

G$ w* w; [& ?! H/ n& [. V" g8 Y2 v" d8 g

# v% V3 L9 h) F5 V/ z

--WHILE CONTINUE BREAK

j9 ]5 s$ Y1 B/ O4 j# v) Q3 zdeclare @x int @y int @c int6 K5 W# X" {# V' A; Z6 ?% b3 T2 C- N& H

select @x = 1 @y=1

0 W( ]# I& ~4 Nwhile @x < 3! B" H1 n; i# J2 _

begin% S5 Z( F3 [' J* E5 J9 C

print @x --打印变量x 的值

5 z5 H4 V" b) X, bwhile @y < 3

8 k) `/ I! P2 R0 Rbegin7 t0 T6 ^8 L( h3 K% O; z( A

select @c = 100*@x + @y

$ @4 l$ U: t) U# A" |# [print @c --打印变量c 的值8 |$ z$ X# G- u- f, |# R! L! W

select @y = @y + 1

- ~+ n2 q8 s/ C0 kend. S0 O; z0 W! Q( @6 \" l+ R

select @x = @x + 1; j, n2 K& m% T+ B8 c- E9 }8 `

select @y = 1

4 n0 y* H$ A9 u' Wend7 G6 W: T0 l( C$ X2 }! J9 k

0 y9 P% U8 k# [1 S( `; ^% C

) f" W* J) m+ [1 X, R _

. K6 W5 W" a! K1 t5 s; O3 p--WAITFOR! i' e) M" p4 F! G ]

--例 等待1 小时2 分零3 秒后才执行SELECT 语句

* M1 ?3 k9 d) Vwaitfor delay ’01:02:03’4 m! y: I5 k0 p' J/ b

select * from employee

# C; ^2 h& @! g" h- }--例 等到晚上11 点零8 分后才执行SELECT 语句3 t0 p% E* q/ n% w; R

waitfor time ’23:08:00’

2 S$ b. c6 t6 m7 q+ T5 Nselect * from employee( {+ K; ?/ Z3 |7 D U2 K+ N- e

$ N2 R1 w8 v% f: M8 V$ z2 G' z# x

0 t% S" _1 r! ~7 C3 ]( k

4 u3 |1 N3 ^6 y% F! n3 v% J+ a! D8 V. W

***SELECT***4 D% ?$ R3 s9 ?9 ]8 H0 P# I

9 w0 }" y1 g8 ]! A, a' U

: l @- ?* o, y' Y3 x# q4 o3 G6 u1 c ]

select *(列名) from table_name(表名) where column_name operator value

- |/ L, I. x( d* o! ^ex

宿主)+ Z; _ m0 R3 {& p2 ] _

select * from stock_information where stockid = str(nid)

1 V2 z$ |* o5 ^% ~# ostockname = 'str_name'

/ t; o) s8 D- e0 i+ {# p$ i! U( astockname like '% find this %'

% U& n# V7 C2 Pstockname like '[a-zA-Z]%' --------- ([]指定值的范围)" X5 I3 a% y# D% d# D8 f

stockname like '[^F-M]%' --------- (^排除指定范围)/ \" P9 b: l1 `- U' p

--------- 只能在使用like关键字的where子句中使用通配符)

5 g1 B2 y, o" |# }or stockpath = 'stock_path'

) M, e% }& Z. @or stocknumber < 1000

( P" Y4 ?( J$ U9 L T- ?and stockindex = 247 w' b7 s$ ~9 H; X

not stock*** = 'man'

# z9 u# Z0 y1 E0 R& V& C5 Z9 d, hstocknumber between 20 and 100

$ O. R) v2 i& i+ E& h% jstocknumber in(10,20,30)

8 o5 b. L3 L2 ~; q9 }4 I0 jorder by stockid desc(asc) --------- 排序,desc-降序,asc-升序, `8 }6 t) C; k {1 |) ]# f5 a

order by 1,2 --------- by列号# @1 O; R( ]; f! e8 P2 O

stockname = (select stockname from stock_information where stockid = 4)

* c' @' a% h9 o9 T6 L--------- 子查询

( y9 L! q+ r2 ~9 d' T7 U* P--------- 除非能确保内层select只返回一个行的值,) {& N0 m: t2 f+ N7 d R8 @7 Z

--------- 否则应在外层where子句中用一个in限定符

, K/ G# x; I& j$ H$ ?select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复" X* n" q8 L) g" ?

select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name5 D" M' R' B, C" a) J- e7 M/ K

select stockname , "stocknumber" = count(*) from table_name group by stockname/ [2 [) T7 ~! \8 Q. c/ I

--------- group by 将表按行分组,指定列中有相同的值3 Z1 X& D- b! V6 u4 T+ \ r- f

having count(*) = 2 --------- having选定指定的组6 k5 |6 C, p4 e! w& Y2 I* s; [

8 B) t3 U- N3 x. F+ k& W, [0 i5 r3 w

/ u/ e h. G+ w2 ]4 A

" i! ^1 e9 T2 Z& x! ]select * 4 h! N$ F9 I5 z8 g \" u. s

from table1, table2

! g7 X B/ V. X' H$ }) awhere table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示2 C/ _9 q+ [- C1 E# `' I

table1.id =* table2.id -------- 右外部连接

1 ?, R9 m3 G+ ]' j( i, ^" \; A; o

1 s$ `7 j" B4 G, K

/ r1 _: ]$ F: H0 m/ T9 Eselect stockname from table1

0 [: K- Z6 e# T/ ^! Y. f% S( xunion [all] ----- union合并查询结果集,all-保留重复行5 x9 ^7 O. |$ c! K) k! O

select stockname from table2

5 {4 U* K; J- q& N* s- J+ u

, F8 O* n7 y4 n) i

, k2 m: C% ]' W1 y1 Z$ b+ V( q4 v2 @8 {2 D; q5 _5 S L

***insert***

' j& L; h8 b" b" e5 Y8 z2 y; g3 R

2 }2 Z! f; \8 H# `3 C3 O: G k* W( B+ `. [8 z

insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx"), M- o# z+ s% t9 S/ o; Y: b

value (select Stockname , Stocknumber from Stock_table2)---value为select语句. l, ~& Y& X& y% B6 p: [

! \6 g; D; o0 l" i4 _

0 B! Z2 u% K- i/ U5 t9 T1 Y3 z* g/ Q5 }( {

***update***; z- s% a* m$ g

! g' p% i6 g% y" t

7 G) i/ {' G- h

! m/ F+ ~2 |2 F2 }/ @. X% U% nupdate table_name set Stockname = "xxx" [where Stockid = 3]( ?: n" U/ U9 f2 M, D

Stockname = default6 L+ Q+ S# ?' J% I

Stockname = null

! ]& l/ ? N9 J9 Y* _4 t2 C. c: qStocknumber = Stockname + 4

: h" m1 T: u* L& ^, J( |2 ~8 e9 \ s; N5 l, s+ n3 J

& K, h% b" J( O' w% r9 z& a1 d- E$ @; K% Z- ~5 a3 P2 ^1 q! |

***delete***( ]7 k K7 s- S9 v6 R, c% C. m

9 q6 |' Q& ?9 P2 S) q

) @' j0 v/ Y( M! D

1 m1 z+ B. g" f5 I1 O% _. t- e

delete from table_name where Stockid = 3

7 d! Q& A S+ P5 ` Q utruncate table_name ----------- 删除表中所有行,仍保持表的完整性

& R* g1 g' x" z7 S0 {8 ]# E/ |% Adrop table table_name --------------- 完全删除表5 }7 \1 l8 @ Y! ^ X1 j

: j, }; g8 X# F1 o2 q7 l! K6 D8 S4 o. a4 i

3 }% S6 ]3 e! j+ Z8 E9 o: P6 G***alter table*** --- 修改数据库表结构

( m. ^- a# H# D

! `, s5 k) c, v; r/ U: _& j! q8 B

2 N; J" T ]- z" v0 |: o0 I q& K$ v( u

alter table database.owner.table_name add column_name char(2) null ....., s2 L8 z# |2 D- U& E

sp_help table_name ---- 显示表已有特征

' T9 C# b! Y4 V6 v5 lcreate table table_name (name char(20), age smallint, lname varchar(30)); H b! Q+ K O

insert into table_name select ......... ----- 实现删除列的方法(创建新表)! m: i0 X* E5 |

alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束: ^$ Q- D5 D: w

) F1 y" L, W# m1 {& `

: J; ~/ p, S6 e A" m# V

" G( H% x* z6 C1 _7 Q

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

- v" s- V) D8 r5 o! B5 d4 j

/ @ q4 V" Y5 Z9 q* `1 s; g P/ B( l* T2 K7 G

6 b8 s( k' f. E# x* } r( J. \7 a2 Y----统计函数----

1 ^+ Z" X# W) P6 E6 a: K( p' y2 tAVG --求平均值

: y7 i4 b& R8 r% DCOUNT --统计数目8 a7 w9 j& W7 {7 K- K

MAX --求最大值

* a3 A/ t" L: e( w2 {; xMIN --求最小值

1 _) j4 r2 m* m" B* ^5 {SUM --求和

1 c' z* ^8 }8 B; t! D6 Y* j

* p8 R- B6 q+ J! T' X6 D% m, a7 I d9 F1 I

3 K H) s5 p3 `) x4 t% P/ E

--AVG

) n9 \- I& l& buse pangu+ X T2 w) u+ r

select avg(e_wage) as dept_avgWage6 B. r! @/ _; X$ ]# a2 N

from employee

8 E$ `2 g: p0 }! \, }1 \; Tgroup by dept_id; X8 K. v c& ]/ e% ?2 n7 N0 X8 @; G

8 g }1 B0 S4 E" v8 T Z

) |4 C4 q7 L. B/ S3 v; n# k0 x

2 I. |, `9 ]! B6 F2 j/ g- N--MAX

0 T' S l2 T0 T2 ?1 l4 ]1 B4 d, i--求工资最高的员工姓名; D" D9 C* u% Z+ ?

use pangu

1 K" {$ @% B. hselect e_name

) n. C3 D; J* p l( @; b/ p* Gfrom employee5 w0 F! D# |9 C- Z

where e_wage =

& I1 G$ _6 X' @* |5 d3 e- K(select max(e_wage)$ D: m! ]' q# Q1 }( }' w

from employee)( Q4 r2 u1 q/ D2 ^, H8 C

8 B6 a( M$ `; P: X$ {5 E b3 g9 Q) J

4 a# c) y0 y6 i; @3 M8 g2 b v& ^

/ V) k9 t8 [5 _* h--STDEV()

1 T0 R# i# M6 u7 c2 K--STDEV()函数返回表达式中所有数据的标准差

4 n4 m. l) L4 t/ N$ Y6 R! G9 O, _& O8 g9 M5 i- h2 g! j

" O. ]" a4 _& ~1 i6 W$ s$ D2 s

% Y0 f s+ d: S

--STDEVP()

' O X5 y2 z% O- G! ]--STDEVP()函数返回总体标准差

1 n5 D% @1 R* Z( z

8 R: {; l1 g/ h0 [

5 c, v! _3 }, X+ S$ S6 d" R3 `

! T/ {8 w7 ]6 ?- R--VAR()

$ y/ h) `( |0 g5 t0 Q3 e; T* e9 K" O' D--VAR()函数返回表达式中所有值的统计变异数

/ U: }9 S) Q }9 W4 L& |+ p+ {! n( i- ]1 w' Z7 _

* t0 s1 }: u9 H: o! y) I' }. P

7 Z' a3 W" u+ G9 q5 `5 E

--VARP()

$ E1 m0 ~/ H# c) d--VARP()函数返回总体变异数

) \4 e. R0 Q, E" n

9 s$ P0 E" H+ i( R6 a) n, a N$ H0 |& G6 T/ d0 G; o1 v2 r5 m5 R

+ Z; Q- I( r, M, l----算术函数----$ _7 Q- W0 {; D* x9 h/ q( s5 [

+ k% F" z& U& _8 `2 E

$ v! v3 _! J+ E

1 [" E# ~' y, [3 E6 B0 w. P/ t/***三角函数***/% R0 L B% ]! K, ?" z

SIN(float_expression) --返回以弧度表示的角的正弦

( K. d* H4 U! ?9 bCOS(float_expression) --返回以弧度表示的角的余弦; y H. z4 i5 |

TAN(float_expression) --返回以弧度表示的角的正切& H) c. X; y" r

COT(float_expression) --返回以弧度表示的角的余切

. h0 c2 _0 S/ h! Z# k5 w6 l/***反三角函数***/+ i0 W) m0 s5 y I0 X

ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角

% w; q) Z2 P1 N' ^. fACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角$ h* g! p6 N7 T4 r( G& x

ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角

7 j" r* e- Y! ^ATAN2(float_expression1,float_expression2) . n! h9 F$ ^ q

--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角

& i! `. h3 A" ?2 z5 }3 R1 rDEGREES(numeric_expression)- e& u" G! R: |3 V) F

--把弧度转换为角度返回与表达式相同的数据类型可为

8 y+ \3 R$ n: v. j--INTEGER/MONEY/REAL/FLOAT 类型

- C6 K" d+ o- nRADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为3 y( ]1 H' w" M# @& g( w& A

--INTEGER/MONEY/REAL/FLOAT 类型! I, B* V6 m- M# \# h4 ~8 L' N0 O# J7 P& j

EXP(float_expression) --返回表达式的指数值8 e- l X* M8 k: `

LOG(float_expression) --返回表达式的自然对数值0 i1 R5 _/ i! }" n# s0 q# W. T

LOG10(float_expression)--返回表达式的以10 为底的对数值

- {& {% G/ \" I' O+ D( TSQRT(float_expression) --返回表达式的平方根& t' H* H+ c4 z& s3 ]5 `

/***取近似值函数***/; O& @8 x3 t+ y8 P, q% {7 I

CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为) ~, v/ }$ R I% n" S! C

--INTEGER/MONEY/REAL/FLOAT 类型

- ~4 l' b0 k1 Z! h, u' T( @FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为' F* \4 g: S* G2 t) t

--INTEGER/MONEY/REAL/FLOAT 类型+ Z/ D/ v7 J; T

ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据

) l! j% q4 R8 f, ?5 Q--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型

0 b" R" V: w+ n$ r& n* m* XABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为

# Z0 l' p/ m6 z% z--INTEGER/MONEY/REAL/FLOAT 类型& b. Z1 m' C' [

SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型

" Q- a8 ^- i1 ^. B--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型) g8 c4 p! Q9 J

PI() --返回值为π 即3.1415926535897936

6 r0 ^& y+ j: K$ k) W5 e" H9 CRAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数1 b% B H% H. u$ X/ i

3 B+ g9 L e( o% |2 ?3 [" S0 { D- O- L# J4 e8 k8 a

& {1 f( @* [* J4 _$ @' d9 y$ w

+ i: k. O6 I: R8 @' k& H6 z----字符串函数----, i3 K5 t& ~; w

ASCII() --函数返回字符表达式最左端字符的ASCII 码值! y+ M( b4 ~8 x E- R0 b

CHAR() --函数用于将ASCII 码转换为字符# U4 q! O+ s) `

--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值8 Q' ^; `, \/ |- g# _

LOWER() --函数把字符串全部转换为小写, B& j7 j2 m7 S, r6 F" o7 u

UPPER() --函数把字符串全部转换为大写

, p" B1 T) ^6 j. g- v/ ^# CSTR() --函数把数值型数据转换为字符型数据- ~* p2 @% ^2 N0 w, K0 e

LTRIM() --函数把字符串头部的空格去掉! Q# a$ H$ r7 X1 e4 S

RTRIM() --函数把字符串尾部的空格去掉

' d/ K( R/ x$ s. CLEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串+ a( V0 D9 H8 J8 H

CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置

( G& |7 }+ s: l9 Z8 }SOUNDEX() --函数返回一个四位字符码

4 ^ h" }! k: D--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值

4 i) s: l4 f) Q0 o$ ^* ADIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异. n% q; C- R2 U7 K! q

--0 两个SOUNDEX 函数返回值的第一个字符不同

# L, Z! I6 c+ ~) R+ O, a K) c--1 两个SOUNDEX 函数返回值的第一个字符相同- A; J; ~/ ?6 `6 I$ y% @

--2 两个SOUNDEX 函数返回值的第一二个字符相同

/ H2 H6 F# b9 `& D* r( n--3 两个SOUNDEX 函数返回值的第一二三个字符相同

; ]4 G& C, A! Q- S--4 两个SOUNDEX 函数返回值完全相同

9 l5 Y' V o! w0 L- m: r: ^

' d9 r) g* X; ~" ?- D

% `, v: w" P. W. x% T9 O# O7 }+ s; ^; w/ A3 ]4 |. E

6 I2 T+ k- T, yQUOTENAME() --函数返回被特定字符括起来的字符串

7 k9 H% z, ?5 u f6 R$ B5 n/*select quotename('abc', '{') quotename('abc')& O6 W; m6 e7 z) X* Q

运行结果如下$ l$ f1 @- u2 y1 p

----------------------------------{

j I4 t4 s3 w6 A5 |{abc} [abc]*/

& e2 B( L- q) I% ^* z2 F( G3 m* c8 `' Q( P

' Y, ~3 t% |7 @" n1 Y, G* i0 k3 _' b: D2 w# I, A2 q

REPLICATE() --函数返回一个重复character_expression 指定次数的字符串

+ u. {8 }. U6 E+ x- e; M% g& [/*select replicate('abc', 3) replicate( 'abc', -2)8 D5 Q9 G5 M/ q8 b. F0 b

运行结果如下9 d1 p, d4 }3 Y6 e) M

----------- -----------

; k" E) t7 _+ H& z2 Habcabcabc NULL*/

, C+ l7 _2 _- h( E' F8 s

9 ]' O* z4 b$ \- h3 j2 E; |9 ^" X- ^* z6 G

4 l4 Z3 k4 m6 a* m$ ]REVERSE() --函数将指定的字符串的字符排列顺序颠倒

) X" N* @, N0 z4 \1 `/ `REPLACE() --函数返回被替换了指定子串的字符串

0 n) ?! _4 `% {4 }( H# T/*select replace('abc123g', '123', 'def')% {9 w& L9 d" Y

运行结果如下

/ v( a! q: U. ^" J, D0 N) b----------- -----------

# p* B! J7 B( P: G$ Iabcdefg*/: W( n$ F9 W- D; i* U

" }; O* a8 z) Q+ M) S% j1 {2 ^7 w

* P$ L1 ~. e; _! i W3 OSPACE() --函数返回一个有指定长度的空白字符串/ ~7 z% d) `# S- M2 ?

STUFF() --函数用另一子串替换字符串指定位置长度的子串

: [+ z5 N8 d) b1 H5 @0 B8 b' R

5 g# ?& u( b- C. h/ X3 L2 @* c# w& I) T

+ G& U* J4 q# b

& P1 ?* P9 E* }* p

----数据类型转换函数----

" F9 c, P2 Y( M; XCAST() 函数语法如下

8 h. I" Z! b2 m2 e- L: vCAST() (<expression> AS <data_ type>[ length ])

0 ]8 P7 M3 i, |) T' G* @CONVERT() 函数语法如下5 v8 N% {" N" G! p5 r

CONVERT() (<data_ type>[ length ], <expression> [, style])

0 v; m$ o" F8 w& t/ \

% U: `1 G6 J/ X m* O) {8 b X

9 m$ w9 R, b# b. o8 l. J* o; }

$ T/ K( m. Q/ b/ D, q5 g3 y& Mselect cast(100+99 as char) convert(varchar(12), getdate())

/ Y3 g/ R4 {5 R% f运行结果如下

* G3 a: q! X/ K------------------------------ ------------: y8 i# h& [: Q6 C, K

199 Jan 15 2000

! e) H& k( u2 N+ O

6 t2 A0 c2 d4 O. ~3 J6 \7 n( J+ _' }' F# S( |1 Q

( [6 p$ I: R3 K3 z6 m& q

----日期函数----. z0 B' q- b7 w6 \

DAY() --函数返回date_expression 中的日期值5 f( u. J- ~ m( X

MONTH() --函数返回date_expression 中的月份值

7 \5 A7 S; R9 C6 R3 |3 ZYEAR() --函数返回date_expression 中的年份值- n2 S9 Q" r0 X/ R* o6 H: p

DATEADD(<datepart> ,<number> ,<date>) : E- h# B* l1 V* ]

--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期' U8 B( `5 ^& Z" D* P1 f

DATEDIFF(<datepart> ,<number> ,<date>)

# ~4 D1 v3 o: z p& v$ f--函数返回两个指定日期在datepart 方面的不同之处

3 o0 W( V$ ]# j ?1 P0 ODATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分' j! R: Q( I" c! C* F' G* T6 e

DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分

& C# ~( z8 L0 `7 ]1 B1 s2 fGETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间

; J5 w' q/ |. f! T1 ]2 T+ o7 G1 J+ D8 N

2 c2 E& b6 K t6 j: V6 @# v' e

+ v( x% x1 o% @5 C: q

----系统函数----, J! K4 U/ ?0 Q6 V

APP_NAME() --函数返回当前执行的应用程序的名称

$ b$ g4 a% j9 J+ FCOALESCE() --函数返回众多表达式中第一个非NULL 表达式的值

# B' J3 @ i- p" E, f% XCOL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值

9 k9 w+ w0 G' h) @( cCOL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名2 V7 e2 h3 X! X. M# u: O2 E3 B& A

DATALENGTH() --函数返回数据表达式的数据的实际长度6 `5 l; P+ h3 ^: ` J

DB_ID(['database_name']) --函数返回数据库的编号$ v% g+ P# d8 Z% f; h, I( s- J; {

DB_NAME(database_id) --函数返回数据库的名称6 t4 `% l8 l1 ~6 \/ e. W

HOST_ID() --函数返回服务器端计算机的名称

! b8 @1 F; G2 LHOST_NAME() --函数返回服务器端计算机的名称

/ X- a* M+ }7 aIDENTITY(<data_type>[, seed increment]) [AS column_name])

5 q$ t0 g7 X: \! q--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中

% t8 a, O T% |" f2 ^/ A/*select identity(int, 1, 1) as column_name0 H! }! S: f M

into newtable0 F" k$ C/ l( ^; i6 V, I+ T

from oldtable*/

% m d- w( a: fISDATE() --函数判断所给定的表达式是否为合理日期9 v! H6 Q* E% C9 G7 O2 y. \

ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换- R' S. P. Q: j" Z0 [

ISNUMERIC() --函数判断所给定的表达式是否为合理的数值

3 m+ D( \% A* w3 VNEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值

, J) [" B3 k% S% ANULLIF(<expression1>, <expression2>)7 O% o8 w9 _9 l6 z- L& f8 {6 f

--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值4 a! l2 p5 R7 d3 m1 E Q

) u) A+ a1 l4 E% h% P% e6 l: M3 r

/ j5 v# K" ?: _& Y- d# V

" Q) i+ [) @% u( |' S3 O7 a) T- y( M

0 r! s( H. t# _* W6 S$ |+ |; j

: g" k: E" D* q% w

: {& ?* T, c. J( H9 U" V3 ^sql中的保留字7 e" y* E4 Q' z

+ O0 }7 t5 q9 h% G' i! g9 U6 A6 f( X9 G. z

# ?- D1 t" d/ M( Faction add aggregate all 8 V/ c' Z' a& x6 b5 r4 B. j7 i

alter after and as C2 R* e0 i' X# U9 W

asc avg avg_row_length auto_increment # c+ S# T3 A0 e

between bigint bit binary

0 k/ Z% w+ q/ H6 Qblob bool both by 1 |, g/ c0 I2 B8 @/ [0 ?1 `

cascade case char character

; e' a$ r6 ]- I8 v4 \* Ichange check checksum column

0 k& B/ Z! C' c$ ucolumns comment constraint create ( H3 p9 J1 F/ ^

cross current_date current_time current_timestamp % u; K6 q0 H8 s( b# Y

data database databases date

* |2 l1 |& D: P, i+ }' |! Ndatetime day day_hour day_minute

, z/ u6 _ z9 Y; dday_second dayofmonth dayofweek dayofyear

7 V0 z' k% ?9 w9 s% v- Tdec decimal default delayed ! z9 Y9 s) F% _, v$ [) r

delay_key_write delete desc describe

3 [8 T' t& X- T6 X& E+ }% Gdistinct distinctrow double drop ( e, M! D* E+ f, R" [1 [4 E

end else escape escaped 3 i0 g: W( ?/ K) w

enclosed enum explain exists

; Q$ ^: i! Q$ u- sfields file first float

! D- I; x- S2 y+ N, q4 l1 Afloat4 float8 flush foreign

% z, H7 Y. s y2 g+ Q5 v9 O$ gfrom for full function

8 w, L7 j3 Z) O4 ~' q) cglobal grant grants group

B" t3 C- D/ m9 H4 p1 Yhaving heap high_priority hour : a: k4 J& h, N( A

hour_minute hour_second hosts identified 3 w; j, I9 S* x4 L5 |# \+ J& V% N

ignore in index infile

2 `; c2 z6 i4 ]inner insert insert_id int - H5 k c) A9 C( z* h

integer interval int1 int2

7 V# A- H5 G! \! |; i$ x$ G0 Iint3 int4 int8 into

. c+ i- ?: a* Y% _- F: K* Tif is isam join / i# n' X$ A* \9 f3 o4 [/ @( F

key keys kill last_insert_id & }% T( d& ~: W" m! w# Y

leading left length like

; F0 a1 D6 |# i, I! Olines limit load local ; @8 L6 w: T, v1 i, s, u

lock logs long longblob % m5 A) [* [. M' O$ y' O9 s

longtext low_priority max max_rows

' ~0 w* _: ~ L0 L4 Zmatch mediumblob mediumtext mediumint / D/ t y1 h1 I6 h; r7 g4 z" A

middleint min_rows minute minute_second

0 l. p) P5 ]9 g/ r6 A2 s3 p3 ^modify month monthname myisam - M. W/ y; M+ z# z& ^# ~$ r

natural numeric no not 3 G# N2 O6 X9 W' v) z, [0 E

null on optimize option 4 _5 d7 W2 C0 r% x8 v5 ?

optionally or order outer 6 f. j% i$ T( @; X3 g8 b) H Q' ~

outfile pack_keys partial password

I- P4 J5 }& _precision primary procedure process

+ h0 r6 \& Z2 eprocesslist privileges read real ( y3 T5 B9 ]9 X0 y. m% F$ q

references reload regexp rename

. W0 r4 K4 X& a0 creplace restrict returns revoke

2 E. J- q, N6 D9 T/ J& crlike row rows second

) `* T/ P; B6 K, cselect set show shutdown & l- x* H, e# q. [4 V6 } C

smallint soname sql_big_tables sql_big_selects

( S. C% [$ ~# `4 e! y. x6 o' bsql_low_priority_updates sql_log_off sql_log_update sql_select_limit 5 ]4 H+ N, G4 O* _/ F$ _

sql_small_result sql_big_result sql_warnings straight_join

+ p- Q) `( w1 l- hstarting status string table * P+ u+ s3 ~9 z

tables temporary terminated text

. W+ `3 p6 v" w9 C ?8 j% @$ u5 mthen time timestamp tinyblob

; v% `8 r! }* n d3 F- u* U; n* _tinytext tinyint trailing to ' ~, @4 ]4 Z/ C& Z. t6 k7 J

type use using unique

( n6 A+ ~, I; F+ K+ l' Aunlock unsigned update usage + ]- B9 p7 e' ^; `- _$ m

values varchar variables varying . N: t. ?3 s2 K) Y! i

varbinary with write when

2 Y7 Q, H/ g1 Q' h0 U) W1 ewhere year year_month zerofill

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: