CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

求SQL SERVER命令大全

楼主fionazou(为事业不懈的奋斗)2006-11-02 09:18:11 在 MS-SQL Server / 基础类 提问

我以前用的数据库是ORACLE,现在要用SQL   SERVER,但一些基本的命令都不知道(当然象select   *   from   table这些还是知道),例如oracle的desc   tablename查看一个表的基本结构信息在SQL   SERVER就不知道用什么命令了,谢谢了,在线等! 问题点数:20、回复次数:87Top

1 楼CSDMN(冒牌经理 V0.4)回复于 2006-11-02 09:20:13 得分 0

多看看帮助吧,sql   server的帮助比较容易看  
   
  Top

2 楼fionazou(为事业不懈的奋斗)回复于 2006-11-02 09:21:29 得分 0

好的,谢谢你Top

3 楼being21(民谣)回复于 2006-11-02 09:22:24 得分 0

哈哈,看来原始人到现代的效果还是很不错的啊!!!  
   
  这里很多基础的东西是用鼠标点出来看的!Top

4 楼fionazou(为事业不懈的奋斗)回复于 2006-11-02 09:32:30 得分 0

呵呵Top

5 楼dawugui(潇洒老乌龟)回复于 2006-11-02 09:33:30 得分 10

SQLServer和Oracle的常用函数对比  
   
    1.绝对值    
    S:select   abs(-1)   value  
    O:select   abs(-1)   value   from   dual  
   
    2.取整(大)    
    S:select   ceiling(-1.001)   value    
    O:select   ceil(-1.001)   value   from   dual  
   
    3.取整(小)    
    S:select   floor(-1.001)   value    
    O:select   floor(-1.001)   value   from   dual  
   
    4.取整(截取)  
    S:select   cast(-1.002   as   int)   value    
    O:select   trunc(-1.002)   value   from   dual    
   
    5.四舍五入  
    S:select   round(1.23456,4)   value   1.23460  
    O:select   round(1.23456,4)   value   from   dual   1.2346  
   
    6.e为底的幂    
    S:select   Exp(1)   value   2.7182818284590451    
    O:select   Exp(1)   value   from   dual   2.71828182  
   
    7.取e为底的对数  
    S:select   log(2.7182818284590451)   value   1  
    O:select   ln(2.7182818284590451)   value   from   dual;   1  
   
    8.取10为底对数  
    S:select   log10(10)   value   1  
    O:select   log(10,10)   value   from   dual;   1  
   
    9.取平方  
    S:select   SQUARE(4)   value   16  
    O:select   power(4,2)   value   from   dual   16  
   
    10.取平方根  
    S:select   SQRT(4)   value   2  
    O:select   SQRT(4)   value   from   dual   2  
   
    11.求任意数为底的幂  
    S:select   power(3,4)   value   81  
    O:select   power(3,4)   value   from   dual   81  
   
    12.取随机数  
    S:select   rand()   value    
    O:select   sys.dbms_random.value(0,1)   value   from   dual;  
   
    13.取符号  
    S:select   sign(-8)   value   -1  
    O:select   sign(-8)   value   from   dual   -1  
    ----------数学函数  
   
    14.圆周率  
    S:SELECT   PI()   value   3.1415926535897931  
    O:不知道  
   
    15.sin,cos,tan   参数都以弧度为单位  
    例如:select   sin(PI()/2)   value   得到1(SQLServer)  
   
    16.Asin,Acos,Atan,Atan2   返回弧度  
   
    17.弧度角度互换(SQLServer,Oracle不知道)  
    DEGREES:弧度-〉角度  
    RADIANS:角度-〉弧度  
   
    ---------数值间比较  
   
    18.   求集合最大值  
    S:select   max(value)   value   from    
    (select   1   value  
    union  
    select   -2   value  
    union  
    select   4   value  
    union  
    select   3   value)a  
   
    O:select   greatest(1,-2,4,3)   value   from   dual  
   
    19.   求集合最小值  
    S:select   min(value)   value   from    
    (select   1   value  
    union  
    select   -2   value  
    union  
    select   4   value  
    union  
    select   3   value)a  
   
    O:select   least(1,-2,4,3)   value   from   dual  
   
    20.如何处理null值(F2中的null以10代替)  
    S:select   F1,IsNull(F2,10)   value   from   Tbl  
    O:select   F1,nvl(F2,10)   value   from   Tbl  
  Top

6 楼dawugui(潇洒老乌龟)回复于 2006-11-02 09:33:58 得分 0

--------数值间比较  
   
    21.求字符序号  
    S:select   ascii('a')   value  
    O:select   ascii('a')   value   from   dual  
   
    22.从序号求字符  
    S:select   char(97)   value  
    O:select   chr(97)   value   from   dual  
   
    23.连接  
    S:select   '11'+'22'+'33'   value  
    O:select   CONCAT('11','22')||33   value   from   dual  
   
    23.子串位置   --返回3  
    S:select   CHARINDEX('s','sdsq',2)   value    
    O:select   INSTR('sdsq','s',2)   value   from   dual  
   
    23.模糊子串的位置   --返回2,参数去掉中间%则返回7  
    S:select   patindex('%d%q%','sdsfasdqe')   value    
    O:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR>  select   INSTR('sdsfasdqe','sd',1,2)   value   from   dual   返回6  
   
    24.求子串  
    S:select   substring('abcd',2,2)   value    
    O:select   substr('abcd',2,2)   value   from   dual  
   
    25.子串代替   返回aijklmnef  
    S:SELECT   STUFF('abcdef',   2,   3,   'ijklmn')   value  
    O:SELECT   Replace('abcdef',   'bcd',   'ijklmn')   value   from   dual  
   
    26.子串全部替换  
    S:没发现  
    O:select   Translate('fasdbfasegas','fa','我'   )   value   from   dual  
   
    27.长度  
    S:len,datalength  
    O:length  
   
    28.大小写转换   lower,upper  
   
    29.单词首字母大写  
    S:没发现  
    O:select   INITCAP('abcd   dsaf   df')   value   from   dual  
   
    30.左补空格(LPAD的第一个参数为空格则同space函数)  
    S:select   space(10)+'abcd'   value  
    O:select   LPAD('abcd',14)   value   from   dual  
   
    31.右补空格(RPAD的第一个参数为空格则同space函数)  
    S:select   'abcd'+space(10)   value  
    O:select   RPAD('abcd',14)   value   from   dual  
   
    32.删除空格  
    S:ltrim,rtrim  
    O:ltrim,rtrim,trim  
   
    33.   重复字符串  
    S:select   REPLICATE('abcd',2)   value    
    O:没发现  
   
    34.发音相似性比较(这两个单词返回值一样,发音相同)  
    S:SELECT   SOUNDEX   ('Smith'),   SOUNDEX   ('Smythe')  
    O:SELECT   SOUNDEX   ('Smith'),   SOUNDEX   ('Smythe')   from   dual  
    SQLServer中用SELECT   DIFFERENCE('Smithers',   'Smythers')   比较soundex的差  
    返回0-4,4为同音,1最高  
   
    --------------日期函数  
   
    35.系统时间  
    S:select   getdate()   value  
    O:select   sysdate   value   from   dual  
   
    36.前后几日  
    直接与整数相加减  
   
    37.求日期  
    S:select   convert(char(10),getdate(),20)   value  
    O:select   trunc(sysdate)   value   from   dual  
    select   to_char(sysdate,'yyyy-mm-dd')   value   from   dual  
   
    38.求时间  
    S:select   convert(char(8),getdate(),108)   value  
    O:select   to_char(sysdate,'hh24:mm:ss')   value   from   dual  
   
    39.取日期时间的其他部分  
    S:DATEPART   和   DATENAME   函数   (第一个参数决定)    
    O:to_char函数   第二个参数决定  
  Top

7 楼dawugui(潇洒老乌龟)回复于 2006-11-02 09:34:09 得分 0

参数---------------------------------下表需要补充  
    year   yy,   yyyy    
    quarter   qq,   q   (季度)  
    month   mm,   m   (m   O无效)  
    dayofyear   dy,   y   (O表星期)  
    day   dd,   d   (d   O无效)  
    week   wk,   ww   (wk   O无效)  
    weekday   dw   (O不清楚)  
    Hour   hh,hh12,hh24   (hh12,hh24   S无效)  
    minute   mi,   n   (n   O无效)  
    second   ss,   s   (s   O无效)  
    millisecond   ms   (O无效)  
    ----------------------------------------------  
   
    40.当月最后一天  
    S:不知道  
    O:select   LAST_DAY(sysdate)   value   from   dual  
   
    41.本星期的某一天(比如星期日)  
    S:不知道  
    O:SELECT   Next_day(sysdate,7)   vaule   FROM   DUAL;  
   
    42.字符串转时间  
    S:可以直接转或者select   cast('2004-09-08'as   datetime)   value  
    O:SELECT   To_date('2004-01-05   22:09:38','yyyy-mm-dd   hh24-mi-ss')   vaule   FROM   DUAL;  
   
    43.求两日期某一部分的差(比如秒)  
    S:select   datediff(ss,getdate(),getdate()+12.3)   value  
    O:直接用两个日期相减(比如d1-d2=12.3)  
    SELECT   (d1-d2)*24*60*60   vaule   FROM   DUAL;  
   
    44.根据差值求新的日期(比如分钟)  
    S:select   dateadd(mi,8,getdate())   value  
    O:SELECT   sysdate+8/60/24   vaule   FROM   DUAL;  
   
    45.求不同时区时间  
    S:不知道  
    O:SELECT   New_time(sysdate,'ydt','gmt'   )   vaule   FROM   DUAL;  
   
    -----时区参数,北京在东8区应该是Ydt-------  
    AST   ADT   大西洋标准时间  
    BST   BDT   白令海标准时间  
    CST   CDT   中部标准时间  
    EST   EDT   东部标准时间  
    GMT   格林尼治标准时间  
    HST   HDT   阿拉斯加—夏威夷标准时间  
    MST   MDT   山区标准时间  
    NST   纽芬兰标准时间  
    PST   PDT   太平洋标准时间  
    YST   YDT   YUKON标准时间Top

8 楼chenjunjarysky(非洲小白脸)回复于 2006-11-02 09:44:03 得分 0

学习,收藏了!Top

9 楼marco08(天道酬勤)回复于 2006-11-02 09:46:39 得分 0

SQL   SERVER   提供了很多系統存儲過程Top

10 楼marco08(天道酬勤)回复于 2006-11-02 09:47:29 得分 0

收藏先Top

11 楼mysummer2003()回复于 2006-11-02 09:47:29 得分 0

看帮助   
  Top

12 楼allright_flash()回复于 2006-11-02 09:52:22 得分 0

领教了,收藏。Top

13 楼fionazou(为事业不懈的奋斗)回复于 2006-11-02 10:08:26 得分 0

dawugui(潇洒老乌龟)   ,真是太感谢了,叫我不知如何是好了!Top

14 楼Darc(注册真烦)回复于 2006-11-02 10:48:39 得分 0

dawugui(潇洒老乌龟)   ,真是太感谢了,叫我不知如何是好了!  
  ============================  
  还说啥,给分呗。Top

15 楼gawz(小蟲)回复于 2006-11-02 10:58:38 得分 0

thanks    
  收藏ingTop

16 楼dawugui(潇洒老乌龟)回复于 2006-11-02 11:04:03 得分 0

dawugui(潇洒老乌龟)   ,真是太感谢了,叫我不知如何是好了!  
  ============================  
  还说啥,给分呗。  
  Top

17 楼fionazou(为事业不懈的奋斗)回复于 2006-11-02 11:08:07 得分 0

我不知道怎么给分啊?Top

18 楼dawugui(潇洒老乌龟)回复于 2006-11-02 11:09:16 得分 0

点页面上的'管理'Top

19 楼jinjazz(近身剪)回复于 2006-11-02 11:12:58 得分 0

偶来收点版权费可以不?  
  http://borland.mblogger.cn/jinjazz/posts/18954.aspx  
  http://blog.csdn.net/jinjazz/archive/2004/09/23/114499.aspxTop

20 楼fionazou(为事业不懈的奋斗)回复于 2006-11-02 11:33:37 得分 0

给了分了.Top

21 楼bign_hdl(人善天不欺(www.bigner.org))回复于 2006-11-02 12:02:55 得分 0

多看文档Top

22 楼penglewen(昨日如梦)回复于 2006-11-02 12:07:17 得分 0

收藏ingTop

23 楼xiangjin0106(千载难_feng)回复于 2006-11-02 12:44:49 得分 0

我也收藏Top

24 楼xiangyuen(成绩是汗)回复于 2006-11-02 13:02:06 得分 0

upTop

25 楼luk_rookie1983()回复于 2006-11-02 13:06:03 得分 0

upTop

26 楼RobinHZ(熊掌)回复于 2006-11-02 13:31:25 得分 0

MarkTop

27 楼xwffwx(Don't call me chinese)回复于 2006-11-02 13:37:51 得分 0

谢谢Top

28 楼hbjmdx008(http://www.biserver.cn)回复于 2006-11-02 13:56:38 得分 0

upTop

29 楼widegoose(阳光小子)回复于 2006-11-02 13:58:31 得分 0

http://community.csdn.net/Expert/topic/5127/5127911.xml?temp=.1057093Top

30 楼renfeiyang(任飞扬)回复于 2006-11-02 13:59:21 得分 0

谢谢,收藏了Top

31 楼dreamer001(天涯客)回复于 2006-11-02 14:07:48 得分 0

mark   tksTop

32 楼wangjunyan(【寻⊙找】)回复于 2006-11-02 14:25:34 得分 0

好东西,非常感谢!  
              我正需要这个呢Top

33 楼ml0527(52ll(为你痴狂))回复于 2006-11-02 14:29:50 得分 0

好东西,收藏了。。。Top

34 楼swizard(草稚)回复于 2006-11-02 14:35:29 得分 0

看一下   Sql   server2000的联机手册,里面比较全  
  另外可以看一下   SQL   Server   2000   开发人员指南  
                                SQL   Server   2000编程员指南  
  还不错Top

35 楼Radar2006(中华英雄)回复于 2006-11-02 15:11:45 得分 0

markTop

36 楼tung_us()回复于 2006-11-02 16:11:51 得分 0

up  
  Top

37 楼qpl007(蓝色闪电)回复于 2006-11-02 16:32:00 得分 0

收藏Top

38 楼wxg1008(嘻嘻哈哈)回复于 2006-11-02 17:41:55 得分 0

收藏Top

39 楼fancystyle(鳞)回复于 2006-11-02 20:10:23 得分 0

收藏Top

40 楼xyxfly(All things are difficult before they are easy.)回复于 2006-11-02 21:39:11 得分 0

:)Top

41 楼zjjjacky(kiky)回复于 2006-11-02 21:39:34 得分 10

更全的在这儿呢,呵呵  
  Oracle支持的字符函数和它们的Microsoft   SQL   Server等价函数:  
   
  函数   Oracle   Microsoft   SQL Server    
  把字符转换为ASCII   ASCII   ASCII    
  字串连接   CONCAT   (expression   +   expression)    
  把ASCII转换为字符   CHR   CHAR    
  返回字符串中的开始字符(左起)   INSTR   CHARINDEX    
  把字符转换为小写   LOWER   LOWER    
  把字符转换为大写   UPPER   UPPER    
  填充字符串的左边   LPAD   N/A    
  清除开始的空白   LTRIM   LTRIM    
  清除尾部的空白   RTRIM   RTRIM    
  字符串中的起始模式(pattern)   INSTR   PATINDEX    
  多次重复字符串   RPAD   REPLICATE    
  字符串的语音表示   SOUNDEX   SOUNDEX    
  重复空格的字串   RPAD   SPACE    
  从数字数据转换为字符数据   TO_CHAR   STR    
  子串   SUBSTR   SUBSTRING    
  替换字符   REPLACE   STUFF    
  将字串中的每个词首字母大写   INITCAP   N/A    
  翻译字符串   TRANSLATE   N/A    
  字符串长度   LENGTH   DATELENGTH   or   LEN    
  列表中最大的字符串   GREATEST   N/A    
  列表中最小的字符串   LEAST   N/A    
  如果为NULL则转换字串   NVL   ISNULL    
   
     
   
  日期函数  
   
  函数   Oracle   Microsoft   SQL Server    
  日期相加   (date   column   +/-   value)   or  
  ADD_MONTHS   DATEADD    
  两个日期的差   (date   column   +/-   value)   or  
  MONTHS_BETWEEN   DATEDIFF    
  当前日期和时间   SYSDATE   GETDATE()    
  一个月的最后一天   LAST_DAY   N/A    
  时区转换   NEW_TIME   N/A    
  日期后的第一个周日   NEXT_DAY   N/A    
  代表日期的字符串   TO_CHAR   DATENAME    
  代表日期的整数   TO_NUMBER  
  (TO_CHAR))   DATEPART    
  日期舍入   ROUND   CONVERT    
  日期截断   TRUNC   CONVERT    
  字符串转换为日期   TO_DATE   CONVERT    
  如果为NULL则转换日期   NVL   ISNULL    
   
     
   
  转换函数  
   
  函数   Oracle   Microsoft   SQL Server    
  数字转换为字符   TO_CHAR   CONVERT    
  字符转换为数字   TO_NUMBER   CONVERT    
  日期转换为字符   TO_CHAR   CONVERT    
  字符转换为日期   TO_DATE   CONVERT    
  16进制转换为2进制   HEX_TO_RAW   CONVERT    
  2进制转换为16进制   RAW_TO_HEX   CONVERT    
   
     
   
  其它行级别的函数  
   
  函数   Oracle   Microsoft   SQL Server    
  返回第一个非空表达式   DECODE   COALESCE    
  当前序列值   CURRVAL   N/A    
  下一个序列值   NEXTVAL   N/A    
  如果exp1   =   exp2,   返回null   DECODE   NULLIF    
  用户登录账号ID数字   UID   SUSER_ID    
  用户登录名   USER   SUSER_NAME    
  用户数据库ID数字   UID   USER_ID    
  用户数据库名   USER   USER_NAME    
  当前用户   CURRENT_USER   CURRENT_USER    
  用户环境(audit   trail)   USERENV   N/A    
  在CONNECT   BY子句中的级别   LEVEL   N/A    
   
     
   
  合计函数  
   
  函数   Oracle   Microsoft   SQL Server    
  Average   AVG   AVG    
  Count   COUNT   COUNT    
  Maximum   MAX   MAX    
  Minimum   MIN   MIN    
  Standard   deviation   STDDEV   STDEV   or   STDEVP    
  Summation   SUM   SUM    
  Variance   VARIANCE   VAR   or   VARP  
   
  Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:  
  EXTRACT(YEAR   FROM   日期)  
  Top

42 楼happy_wangyu_1985()回复于 2006-11-02 21:52:21 得分 0

大哥  
  谢谢啊!~Top

43 楼rgb_rgb(rgb_rgb)回复于 2006-11-03 08:45:38 得分 0

收藏Top

44 楼ysc918(白纸人生)回复于 2006-11-03 10:08:51 得分 0

签个名Top

45 楼yjlhch(爱拼才会赢)回复于 2006-11-03 10:32:56 得分 0

markTop

46 楼haojielyb(豪杰QQ 53489022)回复于 2006-11-03 11:16:19 得分 0

好贴  
    收藏  
  Top

47 楼shirley_qi(小菜鸟++ == 学海无崖 ==)回复于 2006-11-03 11:34:12 得分 0

markTop

48 楼cangwu_lee(橙子)回复于 2006-11-03 12:10:55 得分 0

SQL   SERVER   2000   的帮助里面啥都有了  
       
  Top

49 楼zjsfdxbao(不笑红尘)回复于 2006-11-03 12:27:42 得分 0

果然强悍~顶了~Top

50 楼kofkyo(一步一步)回复于 2006-11-03 13:07:25 得分 0

收藏Top

51 楼zblaoshu1979(周博)回复于 2006-11-03 13:44:07 得分 0

收藏Top

52 楼wubaowang(Knowledge is power)回复于 2006-11-03 14:50:46 得分 0

收藏+保存...Top

53 楼lulu123ma(抵制虚黄,支持实黄(扫黄现状))回复于 2006-11-03 15:49:34 得分 0

markffffffffTop

54 楼bjgzxx(食人一族)回复于 2006-11-03 15:53:16 得分 0

我感觉帮助很好了Top

55 楼zczb(zczb)回复于 2006-11-03 17:27:32 得分 0

markTop

56 楼youqiong(牙齿冻的咯咯的响,肚子饿得咕咕的叫...)回复于 2006-11-03 19:03:19 得分 0

谢谢啊...  
  汗~~~Top

57 楼koposo(不知不是错,不问就是过)回复于 2006-11-03 19:52:47 得分 0

markTop

58 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2006-11-03 19:53:07 得分 0

联机帮助是最好的老师Top

59 楼rgwfeng2(编程刚入门)回复于 2006-11-03 23:01:30 得分 0

goodTop

60 楼john_huang(追梦者)回复于 2006-11-03 23:59:40 得分 0

upTop

61 楼cecoo(小风)回复于 2006-11-04 13:21:20 得分 0

收藏了  
  谢谢Top

62 楼losedxyz(我真的一无所有)回复于 2006-11-04 22:34:03 得分 0

收藏了  
  谢谢Top

63 楼chegan_1()回复于 2006-11-05 00:04:17 得分 0

哪个大哥帮哈忙~~  
  怎么查询字符串的长度?谢谢哈`~~Top

64 楼terry1021_82(小狐狸)回复于 2006-11-05 11:58:05 得分 0

收藏Top

65 楼wxspll(HDU)回复于 2006-11-05 13:38:47 得分 0

markTop

66 楼liujietoer(刘杰)回复于 2006-11-05 13:52:22 得分 0

谢谢你们了Top

67 楼Joahon(褪色草)回复于 2006-11-05 22:05:54 得分 0

不懂就看帮助文件Top

68 楼Freeze_Soul(冻结灵魂)回复于 2006-11-05 23:07:53 得分 0

这个东西可是好啊Top

69 楼zzxing()回复于 2006-11-06 08:17:49 得分 0

联机帮助Top

70 楼hank212(IT民工)回复于 2006-11-06 08:35:32 得分 0

收藏Top

71 楼lxmfll2000(lxm)回复于 2006-11-06 08:55:06 得分 0

不错,珍藏Top

72 楼zincy(1231)回复于 2006-11-06 10:17:55 得分 0

gggTop

73 楼flash520(一生有你-我的爱)回复于 2006-11-06 10:41:52 得分 0

dawugui(潇洒老乌龟)   ,多提点SELECT的语句啊,还要创建更新表的语句我都不会呢  
  Top

74 楼ren0594(ren)回复于 2006-11-06 12:48:39 得分 0

markTop

75 楼yangyangxie(想飞的鱼)回复于 2006-11-06 13:26:54 得分 0

markTop

76 楼Carol_zyr()回复于 2006-11-06 15:44:35 得分 0

学习Top

77 楼baggio328(将狼踩尽)回复于 2006-11-06 15:45:54 得分 0

markTop

78 楼dali88888(负载均衡、双机容错、群集http://www.pcticorp.com.cn)回复于 2006-11-06 16:18:54 得分 0

谢谢分享.Top

79 楼littlekeen(keen)回复于 2006-11-07 12:02:48 得分 0

mark  
  Top

80 楼ljl_7880(ljl)回复于 2006-11-07 13:48:04 得分 0

upTop

81 楼summersong(夏颂)回复于 2006-11-07 15:00:18 得分 0

这张贴子很有收藏价值  
   
  谢谢高手们Top

82 楼livan1038(李枫)回复于 2006-11-07 15:47:00 得分 0

T_SQL命令大全  
   
     
   
  --语   句   功   能  
  --数据操作  
  SELECT   --从数据库表中检索数据行和列  
  INSERT   --向数据库表添加新数据行  
  DELETE   --从数据库表中删除数据行  
  UPDATE   --更新数据库表中的数据  
  --数据定义  
  CREATE   TABLE   --创建一个数据库表  
  DROP   TABLE   --从数据库中删除表  
  ALTER   TABLE   --修改数据库表结构  
  CREATE   VIEW   --创建一个视图  
  DROP   VIEW   --从数据库中删除视图  
  CREATE   INDEX   --为数据库表创建一个索引  
  DROP   INDEX   --从数据库中删除索引  
  CREATE   PROCEDURE   --创建一个存储过程  
  DROP   PROCEDURE   --从数据库中删除存储过程  
  CREATE   TRIGGER   --创建一个触发器  
  DROP   TRIGGER   --从数据库中删除触发器  
  CREATE   SCHEMA   --向数据库添加一个新模式  
  DROP   SCHEMA   --从数据库中删除一个模式  
  CREATE   DOMAIN   --创建一个数据值域  
  ALTER   DOMAIN   --改变域定义  
  DROP   DOMAIN   --从数据库中删除一个域  
  --数据控制  
  GRANT   --授予用户访问权限  
  DENY   --拒绝用户访问  
  REVOKE   --解除用户访问权限  
  --事务控制  
  COMMIT   --结束当前事务  
  ROLLBACK   --中止当前事务  
  SET   TRANSACTION   --定义当前事务数据访问特征  
  --程序化SQL  
  DECLARE   --为查询设定游标  
  EXPLAN   --为查询描述数据访问计划  
  OPEN   --检索查询结果打开一个游标  
  FETCH   --检索一行查询结果  
  CLOSE   --关闭游标  
  PREPARE   --为动态执行准备SQL   语句  
  EXECUTE   --动态地执行SQL   语句  
  DESCRIBE   --描述准备好的查询  
  Top

83 楼livan1038(李枫)回复于 2006-11-07 15:47:48 得分 0

 
  ---局部变量  
  declare   @id   char(10)  
  --set   @id   =   '10010001'  
  select   @id   =   '10010001'  
   
  ---全局变量  
  ---必须以@@开头  
   
  --IF   ELSE  
  declare   @x   int   @y   int   @z   int  
  select   @x   =   1   @y   =   2   @z=3  
  if   @x   >   @y  
  print   'x   >   y'   --打印字符串'x   >   y'  
  else   if   @y   >   @z  
  print   'y   >   z'  
  else   print   'z   >   y'  
   
  --CASE  
  use   pangu  
  update   employee  
  set   e_wage   =  
  case  
  when   job_level   =   ’1’   then   e_wage*1.08  
  when   job_level   =   ’2’   then   e_wage*1.07  
  when   job_level   =   ’3’   then   e_wage*1.06  
  else   e_wage*1.05  
  end  
   
  --WHILE   CONTINUE   BREAK  
  declare   @x   int   @y   int   @c   int  
  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   语句  
  waitfor   delay   ’01:02:03’  
  select   *   from   employee  
  --例   等到晚上11   点零8   分后才执行SELECT   语句  
  waitfor   time   ’23:08:00’  
  select   *   from   employee  
   
   
   
  ***SELECT***  
   
  select   *(列名)   from   table_name(表名)   where   column_name   operator   value  
  ex   宿主)  
  select   *   from   stock_information   where   stockid   =   str(nid)  
  stockname   =   'str_name'    
  stockname   like   '%   find   this   %'    
  stockname   like   '[a-zA-Z]%'   ---------   ([]指定值的范围)  
  stockname   like   '[^F-M]%'   ---------   (^排除指定范围)  
  ---------   只能在使用like关键字的where子句中使用通配符)  
  or   stockpath   =   'stock_path'  
  or   stocknumber   <   1000  
  and   stockindex   =   24  
  not   stocksex   =   'man'  
  stocknumber   between   20   and   100  
  stocknumber   in(10,20,30)  
  order   by   stockid   desc(asc)   ---------   排序,desc-降序,asc-升序  
  order   by   1,2   ---------   by列号  
  stockname   =   (select   stockname   from   stock_information   where   stockid   =   4)  
  ---------   子查询  
  ---------   除非能确保内层select只返回一个行的值,  
  ---------   否则应在外层where子句中用一个in限定符  
  select   distinct   column_name   form   table_name   ---------   distinct指定检索独有的列值,不重复  
  select   stocknumber   ,"stocknumber   +   10"   =   stocknumber   +   10   from   table_name  
  select   stockname   ,   "stocknumber"   =   count(*)   from   table_name   group   by   stockname  
  ---------   group   by   将表按行分组,指定列中有相同的值  
  having   count(*)   =   2   ---------   having选定指定的组  
   
  select   *    
  from   table1,   table2    
  where   table1.id   *=   table2.id   --------   左外部连接,table1中有的而table2中没有得以null表示  
  table1.id   =*   table2.id   --------   右外部连接    
   
  select   stockname   from   table1  
  union   [all]   -----   union合并查询结果集,all-保留重复行  
  select   stockname   from   table2  
  Top

84 楼livan1038(李枫)回复于 2006-11-07 15:48:16 得分 0

 
  ***insert***  
   
  insert   into   table_name   (Stock_name,Stock_number)   value   ("xxx","xxxx")  
  value   (select   Stockname   ,   Stocknumber   from   Stock_table2)---value为select语句  
   
  ***update***  
   
  update   table_name   set   Stockname   =   "xxx"   [where   Stockid   =   3]  
  Stockname   =   default  
  Stockname   =   null  
  Stocknumber   =   Stockname   +   4  
   
  ***delete***  
   
  delete   from   table_name   where   Stockid   =   3  
  truncate   table_name   -----------   删除表中所有行,仍保持表的完整性  
  drop   table   table_name   ---------------   完全删除表  
   
  ***alter   table***   ---   修改数据库表结构  
   
  alter   table   database.owner.table_name   add   column_name   char(2)   null   .....  
  sp_help   table_name   ----   显示表已有特征  
  create   table   table_name   (name   char(20),   age   smallint,   lname   varchar(30))  
  insert   into   table_name   select   .........   -----   实现删除列的方法(创建新表)  
  alter   table   table_name   drop   constraint   Stockname_default   ----   删除Stockname的default约束  
   
  ***function(/*常用函数*/)***  
   
  ----统计函数----  
  AVG   --求平均值  
  COUNT   --统计数目  
  MAX   --求最大值  
  MIN   --求最小值  
  SUM   --求和  
   
  --AVG  
  use   pangu  
  select   avg(e_wage)   as   dept_avgWage  
  from   employee  
  group   by   dept_id  
   
  --MAX  
  --求工资最高的员工姓名  
  use   pangu  
  select   e_name  
  from   employee  
  where   e_wage   =  
  (select   max(e_wage)  
  from   employee)  
   
  --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()   --函数返回被特定字符括起来的字符串  
  /*select   quotename('abc',   '{')   quotename('abc')  
  运行结果如下  
  ----------------------------------{  
  {abc}   [abc]*/  
   
  REPLICATE()   --函数返回一个重复character_expression   指定次数的字符串  
  /*select   replicate('abc',   3)   replicate(   'abc',   -2)  
  运行结果如下  
  -----------   -----------  
  abcabcabc   NULL*/  
   
  REVERSE()   --函数将指定的字符串的字符排列顺序颠倒  
  REPLACE()   --函数返回被替换了指定子串的字符串  
  /*select   replace('abc123g',   '123',   'def')  
  运行结果如下  
  -----------   -----------  
  abcdefg*/  
   
  SPACE()   --函数返回一个有指定长度的空白字符串  
  STUFF()   --函数用另一子串替换字符串指定位置长度的子串  
   
   
  ----数据类型转换函数----  
  CAST()   函数语法如下  
  CAST()   (<expression>   AS   <data_   type>[   length   ])  
  CONVERT()   函数语法如下  
  CONVERT()   (<data_   type>[   length   ],   <expression>   [,   style])  
   
  select   cast(100+99   as   char)   convert(varchar(12),   getdate())  
  运行结果如下  
  ------------------------------   ------------  
  199   Jan   15   2000  
   
  ----日期函数----  
  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>[,   seed   increment])   [AS   column_name]}  
  --IDENTITY()   函数只在SELECT   INTO   语句中使用用于插入一个identity   column列到新表中  
  /*select   identity(int,   1,   1)   as   column_name  
  into   newtable  
  from   oldtable*/  
  ISDATE()   --函数判断所给定的表达式是否为合理日期  
  ISNULL(<check_expression>,   <replacement_value>   )   --函数将表达式中的NULL   值用指定值替换  
  ISNUMERIC()   --函数判断所给定的表达式是否为合理的数值  
  NEWID()   --函数返回一个UNIQUEIDENTIFIER   类型的数值  
  NULLIF(<expression1>,   <expression2>   )  
  --NULLIF   函数在expression1   与expression2   相等时返回NULL   值若不相等时则返回expression1   的值  
  Top

85 楼Mapleleaf123(为分而努力)回复于 2006-11-07 15:58:27 得分 0

MARKTop

86 楼zouqiang122(先天不足)回复于 2006-11-07 16:17:25 得分 0

支持一下!!!Top

87 楼kaowa(靠挖)回复于 2006-12-04 08:56:41 得分 0

也学习一下!!!Top

相关问题

关键词

得分解答快速导航

  • 帖主:fionazou
  • dawugui
  • zjjjacky

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo