SQL语句集锦.doc_第1页
SQL语句集锦.doc_第2页
SQL语句集锦.doc_第3页
SQL语句集锦.doc_第4页
SQL语句集锦.doc_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL语句集锦 ag_n5u7 9iVs6 Ar!W9 -语 句 功 能 $),h:0D -数据操作 o?gcg- SELECT -从数据库表中检索数据行和列 nV J;o INSERT -向数据库表添加新数据行 TU k|ysg DELETE -从数据库表中删除数据行 7W9.lIZ0 UPDATE -更新数据库表中的数据 0C?m=x -数据定义 b&b)r CREATE TABLE -创建一个数据库表 ;5.Invq DROP TABLE -从数据库中删除表 !pIU, ! ALTER TABLE -修改数据库表结构 9 ?ueBP CREATE VIEW -创建一个视图 t)(kP$ DROP VIEW -从数据库中删除视图 9uElhA| CREATE INDEX -为数据库表创建一个索引 _a/Kk DROP INDEX -从数据库中删除索引 %fJ) r CREATE PROCEDURE -创建一个存储过程 ?xjN!&9vYo DROP PROCEDURE -从数据库中删除存储过程 #/Mh2eQ$ CREATE TRIGGER -创建一个触发器 0/.M%:Mq DROP TRIGGER -从数据库中删除触发器 lfdv; CREATE SCHEMA -向数据库添加一个新模式 *,n# DROP DOMAIN -从数据库中删除一个域 /Oe:jx$4 -数据控制 E2e=FIg GRANT -授予用户访问权限 =Jh WoU DENY -拒绝用户访问 UCV4k)i8l REVOKE -解除用户访问权限 K,3 y C&|pG) print x y -打印字符串x y ZT+H3z+xe else if y z s8,t4D print y z g#GAmu else print z y DG%s+$j -CASE $q#K use pangu ;LcEiOjk update employee )_h)J8h set e_wage = +W|u5)D case 8h&:Y:U4 when job_level = 1 then e_wage*1.08 gVZ VuFx when job_level = 2 then e_wage*1.07 %VfK;oBqN when job_level = 3 then e_wage*1.06 &51two else e_wage*1.05 VC;&bK+# end P=YFtiI UB=8TEE B%7nA HD$xJu EeB= :X -WHILE CONTINUE BREAK *P/ declare x int y int c int :5Of=9z, select x = 1 y=1 T9seKC while x y=| print x -打印变量x 的值 1vxFby7p while y 3 Ae-ny* 7 begin sz6b select c = 100*x + y M +%K1 print c -打印变量c 的值 #2+JO*6 select y = y + 1 Fsk(b3$s end |b3HZ *SELECT* ,7 bV DoJ 9,lAg XfgLXuy TjutL select *(列名) from table_name(表名) where column_name operator value c*pB_ ex:(宿主) hl)-$LqW select * from stock_information where stockid = str(nid) :ROv/r stockname = str_name RZgzMzY2 stockname like % find this % 2b9 YI+E stockname like a-zA-Z% - (指定值的范围) 7(D= Xrf stockname like F-M% - (排除指定范围) -s-*pfFh - 只能在使用like关键字的where子句中使用通配符) BI D,gB e or stockpath = stock_path 4v+ LP or stocknumber ? O6/sR* K +K-;C! p 0OL# insert into table_name (Stock_name,Stock_number) value (xxx,xxxx) aIC=9 value (select Stockname , Stocknumber from Stock_table2)-value为select语句 ( 4p ?7kSg-b mUWPNg.F R3gUL%=| vCP*SE *update* :=,1B ,+bXPyv V J0Jp LLA- A #JEl8 update table_name set Stockname = xxx where Stockid = 3 O#nq?1/ Stockname = default x+=!br1/( Stockname = null $ 1%pRc Stocknumber = Stockname + 4 u(hxL* BCb+DOCP #hFqClk GE oXnNZ 6 (4 *delete* F dO$ -uJ1pW!1 7;%Y delete from table_name where Stockid = 3 V?vX= truncate table_name - 删除表中所有行,仍保持表的完整性 a=D)%kdt drop table table_name - 完全删除表 YZ#zY;7DV h_0pQ;f, #3_Jm#, 6pZt=AmTE *w e *alter table* - 修改数据库表结构 2j?P 5rM(vH k$#_$U lp8zRc 9bl$s; alter table database.owner.table_name add column_name char(2) null . qcL8rk sp_help table_name - 显示表已有特征 s ij create table table_name (name char(20), age smallint, lname varchar(30) k HL h insert into table_name select . - 实现删除列的方法(创建新表) %fLoN-BX alter table table_name drop constraint Stockname_default - 删除Stockname的default约束 80u0: yiJM_=lA *function(/*常用函数*/)* sogP; COUNT -统计数目 9 .%VgU MAX -求最大值 KV3 MIN -求最小值 *s k6 SUM -求和 ShXCsjY Bg7 hR n7YGl5SD.M jydpfsH h*52IY -AVG ArJVs+ use pangu pWZO 1U! select avg(e_wage) as dept_avgWage xaqzw * from employee RRWMm+/: group by dept_id g5feY=fs 3F(A4 6Ob Hx-#tB$i b %cw AoZ/= c -MAX bW g( -求工资最高的员工姓名 M,4PgX| use pangu =u.egr6r select e_name 70T /XY from employee KwIDxf where e_wage = DLQ &IK6l (select max(e_wage) fvWGpWm from employee) 8.yD.5 nSj*X-iO AH2q1OcZ :NI,nH8j VpgADX/q -STDEV() 8K& -STDEV()函数返回表达式中所有数据的标准差 H$95Sg6 2/k 8/H|OB, 7F3BNpwpe sfdZ6Jt -STDEVP() s1|dQyk -STDEVP()函数返回总体标准差 Ve?,Ka /$2jR #E4 #jpj J .E1l -VAR() K86n?6,k/ -VAR()函数返回表达式中所有值的统计变异数 C(8R$ T?:qFhg eB ERcc Z*9gMG 9nWjcbVy -VARP() *Fz|e6 -VARP()函数返回总体变异数 bnL dH0 S3!OiwdgX NY/qq ziH$M ap 2 -算术函数- !OEs qR|*gKb j(FS3&3 yLrNKml s!5fr= /*三角函数*/ CAsLm2e3 SIN(float_expression) -返回以弧度表示的角的正弦 /kj&#p COS(float_expression) -返回以弧度表示的角的余弦 _2 COT(float_expression) -返回以弧度表示的角的余切 0q6TX /*反三角函数*/ xU 12o ASIN(float_expression) -返回正弦是FLOAT 值的以弧度表示的角 X% ) ACOS(float_expression) -返回余弦是FLOAT 值的以弧度表示的角 U;ny8A) ATAN(float_expression) -返回正切是FLOAT 值的以弧度表示的角 xt?Vh ATAN2(float_expression1,float_expression2) *ZTmHGbw) -返回正切是float_expression1 /float_expres-sion2的以弧度表示的角 Fn)x/k DEGREES(numeric_expression) wam|7 W -把弧度转换为角度返回与表达式相同的数据类型可为 WNvcX;4kqR -INTEGER/MONEY/REAL/FLOAT 类型 A8oyu RADIANS(numeric_expression) -把角度转换为弧度返回与表达式相同的数据类型可为 CE,OK 6 -INTEGER/MONEY/REAL/FLOAT 类型 EpB#B3U EXP(float_expression) -返回表达式的指数值 =表达式的最小整数返回的数据类型与表达式相同可为 I*gxFWL -INTEGER/MONEY/REAL/FLOAT 类型 5olR6j$X0 FLOOR(numeric_expression) -返回=表达式的最小整数返回的数据类型与表达式相同可为 Sa$BwP -INTEGER/MONEY/REAL/FLOAT 类型 eL%A0DR ROUND(numeric_expression) -返回以integer_expression 为精度的四舍五入值返回的数据 T/-%VpU;# -类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 3TL5 PI() -返回值为 即3.1415926535897936 IKB?ZX RAND(integer_expression) -用任选的integer_expression做种子值得出0-1 间的随机浮点数 :I4;/vTA%Y B6F+/ ASCII() -函数返回字符表达式最左端字符的ASCII 码值 c*4*q CHAR() -函数用于将ASCII 码转换为字符 G$SMgx.m -如果没有输入0 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 JYijRoI LOWER() -函数把字符串全部转换为小写 UlTsy;Ek UPPER() -函数把字符串全部转换为大写 $5/jX t STR() -函数把数值型数据转换为字符型数据 =dli0m+(8. LTRIM() -函数把字符串头部的空格去掉 XQHW RTRIM() -函数把字符串尾部的空格去掉 nAKcK# LEFT(),RIGHT(),SUBSTRING() -函数返回部分字符串 * l Qw4 CHARINDEX(),PATINDEX() -函数返回字符串中某个指定的子串出现的开始位置 I mpDX SOUNDEX() -函数返回一个四位字符码 wpNw -SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值 )WA5FzPLw DIFFERENCE() -函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 *+oJ(e -0 两个SOUNDEX 函数返回值的第一个字符不同 IIIC4 -1 两个SOUNDEX 函数返回值的第一个字符相同 Tq pu=N+ -2 两个SOUNDEX 函数返回值的第一二个字符相同 ro!F_T -3 两个SOUNDEX 函数返回值的第一二三个字符相同 xUi;eqtS -4 两个SOUNDEX 函数返回值完全相同 0H#VQ; YRY) wDPb h2z + /-_HSQ ;wA;X;0B QUOTENAME() -函数返回被特定字符括起来的字符串 vFY+1 /*select quotename(abc, ) quotename(abc) plXvJ+Z2)i 运行结果如下 *X/!,LY - =SY%9? abc abc*/ JO5W =b6R$_ 9 7OtP: cV,Z/71 rIu(Ok REPLICATE() -函数返回一个重复character_expression 指定次数的字符串 cQMHJ7Z*6 /*select replicate(abc, 3) replicate( abc, -2) EYHY 运行结果如下 1RJl - - VaWyV abcabcabc NULL*/ Pvebsr t?evW *T1O xk2kj?m $U0SLM SPACE() -函数返回一个有指定长度的空白字符串 3RJk?a) STUFF() -函数用另一子串替换字符串指定位置长度的子串 lF%7lg3% ,;_sp*WsW J/$b)91g wg3?k0r ,9S$!;EL mg!4S( -数据类型转换函数- (mc9vhl? CAST() 函数语法如下 a, fe7D CAST() ( AS length ) R4RSo&(| CONVERT() 函数语法如下 T:H8? CONVERT() ( length , , style) ZGz7$8s W$WdOz NX_3lTiK Hxfo N QCKv4tg select cast(100+99 as char) convert(varchar(12), getdate() gp750i 运行结果如下 .g-Jj - - H7GY 199 Jan 15 2000 gbgTpJb fL9iDVIp e?62xSl tWpB_0h9 nhqSeYi -日期函数- $E:g!m,%4 DAY() -函数返回date_expression 中的日期值 :2yNx1 MONTH() -函数返回date_expression 中的月份值 a mou7y YEAR() -函数返回date_expression 中的年份值 4&NI1Jxit DATEADD( , ,) sh5qq s -函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期 LKDIdg9 DATEDIFF( , ,) 7vng.ro -函数返回两个指定日期在datepart 方面的不同之处 OORx ye DATENAME( , ) -函数以字符串的形式返回日期的指定部分 gwbh 1v DATEPART( , ) -函数以整数值的形式返回日期的指定部分 ZoBf;/pE GETDATE() -函数以DATETIME 的缺省格式返回系统当前的日期和时间 P%_ub IFogP.M 0Bq.bTW 8c0ld7D jD)qdxD -系统函数- oZ8*2Y0 APP_NAME() -函数返回当前执行的应用程序的名称 2q%igH/ COALESCE() -函数返回众多表达式中第一个非NULL 表达式的值 N8*PEyP COL_LENGTH(, ) -函数返回表中指定字段的长度值 L#xl.; or COL_NAME(, ) -函数返回表中指定字段的名称即列名 J2V p DATALENGTH() -函数返回数据表达式的数据的实际长度 bOZN,J DB_ID(database_name) -函数返回数据库的编号 _PqWGx DB_NAME(database_id) -函数返回数据库的名称 vRyUY,T HOST_ID() -函数返回服务器端计算机的名称 r|d5B3 HOST_NAME() -函数返回服务器端计算机的名称 P5t3- IDENTITY(, seed increment) AS column_name) gW*Sstdgb -IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中 uIpA /*select identity(int, 1, 1) as column_name LdyQHT_uw into newtable M,e Cn ) from oldtable*/ #eaVn+t ISDATE() -函数判断所给定的表达式是否为合理日期 g :Zv$ ISNULL(, ) -函数将表达式中的NULL 值用指定值替换 p*c.fJe ISNUMERIC() -函数判断所给定的表达式是否为合理的数值 mkt. NEWID() -函数返回一个UNIQUEIDENTIFIER 类型的数值 Dtk,C NULLIF(, ) =Ujn#9 -NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值 vV|9L4 精妙SQL语句 Bcr(8UJ 说明:复制表(只复制结构,源表名:a 新表名:b) N0j5xJ SQL: select * into b from a where 11 FuDDY7w 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) z (UC3# SQL: insert into b(a, b, c) select d,e,f from b; *$n6ek| 说明:显示文章、提交人和最后回复时间 &ddcr3A SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b m$T7B+b_ 说明:外连接查询(表名1:a 表名2:b) $solB|i% SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 3JFGU06D 说明:日程安排提前五分钟提醒 dPM$oo SQL: select * from 日程安排 where datediff(minute,f开始时间,getdate()5 cm2YYE? OuhG izG 说明:两张关联表,删除主表中已经在副表中没有的信息 !QyJ SQL: &Wks8Mq5E delete from info where not exists ( select * from infobz where info.infid=infobz.infid ) x)9DX 3+5f 说明:- C13J| Bd SQL: 70WJgM# SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE jBaq+K& FROM TABLE1, |bVAX. (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE C/F:yls FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND WqIgNLw FROM TABLE2 iYt ld 2 WHERE TO_CHAR(UPD_DATE,YYYY/MM) = TO_CHAR(SYSDATE, YYYY/MM) X, Kv |Go (SELECT NUM, UPD_DATE, STOCK_ONHAND #UCm.U FROM TABLE2 )aelaLL WHERE TO_CHAR(UPD_DATE,YYYY/MM) = QAam4oFX- TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, YYYY/MM) | /01,YYYY/MM/DD) - 1, YYYY/MM) ) Y, z6U4BC WHERE X.NUM = Y.NUM (+) YrCP9Q AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) X.STOCK_ONHAND ) B 1lNIc(Y+ WHERE A.NUM = B.NUM 2JV0tT 说明:- XN3Psc!K/8 SQL: oL 4ArR select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称=&strdepartmentname& and 专业名称=&strprofessionname& order by 性别,生源地,高考总成绩 OE2F:1 说明: pC3,+pqUU 从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源) #_S?Eef SQL: 6cP* SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, yyyy) AS telyear, euSHM7 SUM(decode(TO_CHAR(a.telfeedate, mm), 01, a.factration) AS JAN, K0Lq&|f SUM(decode(TO_CHAR(a.telfeedate, mm), 02, a.factration) AS FRI, Xic+9$rf SUM(decode(TO_CHAR(a.telfeedate, mm), 03, a.factration) AS MAR, ,C C4 SUM(decode(TO_CHAR(a.telfeedate, mm), 04, a.factration) AS APR, HW*v*F SUM(decode(TO_CHAR(a.telfeedate, mm), 05, a.factration) AS MAY, o 8+Zy SUM(decode(TO_CHAR(a.telfeedate, mm), 06, a.factration) AS JUE, bVqGy,(j SUM(decode(TO_CHAR(a.telfeedate, mm), 07, a.factration) AS JUL, KU9LAh$ SUM(decode(TO_CHAR(a.telfeedate, mm), 08, a.factration) AS AGU, HiL7GRq SUM(decode(TO_CHAR(a.telfeedate, mm), 09, a.factration) AS SEP, sQ0 ju SUM(decode(TO_CHAR(a.telfeedate, mm), 10, a.factration) AS OCT, DvXY5dA SUM(decode(TO_CHAR(a.telfeedate, mm), 11, a.factration) AS NOV, 54 #P1KZ SUM(decode(TO_CHAR(a.telfeedate, mm), 12, a.factration) AS DEC a_uG_h FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration m3CuZA? FROM TELFEESTAND a, TELFEE b |segS WHERE a.tel = b.telfax) a ;ago*!k GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, yyyy) F 6A%.+! 说明:四表联查问题: ?_tzE9: SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where . sG rU. 说明:得到表中最小的未使用的ID号 |lz SQL: _LjJ /6O8 SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID uqYvGmXJ FROM Handle tfGp5kSZ WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a) #FKo *t*E% l : 我在ms sql中建了一个表,可由于种种原因有些记录重复了 VLfJbZZ : 记录完全的一模一样。 E,w3l%A M= fGL7 select distinct * into #table_name from table_name mIYiHMM1 delete from table_name NAl0TwLJ0 select * into table_name from #table_name Ly , mLc drop table #table_name !9+|& DfQWalh # 与此相关的是“select into”选项,可以在数据库属性 2=hqf6- 对话框中,勾起来此项,或者在Query Analyzer中执行 3;nx6_yns execute sp_dboption db_name,select into,true a$

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论