<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Transact SQL 常用語句以及函數簡易說明(含示例)

    Transact 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? -- 描述準備好的查詢  ?

      
    -- -局部變量?

      ?
    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   ?

      ?
    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 ?

      ?
    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 )  ?

    ????轉換函數

    ????
    convert (數據類型,值,格式)

      統計函數?

      
    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 ()?(? AS ? [ ?length? ] )?
      
    CONVERT ()?函數語法如下?
      
    CONVERT ()?( [ ?length? ] ,? [ ,?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 (?,?,)?
      ?
    -- ---函數返回指定日期date?加上指定的額外日期間隔number?產生的新日期?
       DATEDIFF (?,?,)?
      ?
    -- ---函數返回兩個指定日期在datepart?方面的不同之處?

    注:本文轉自:http://www.lemongtree.com/286.html.aspx,特此說明

      
    DATENAME (?,?? -- ----函數以字符串的形式返回日期的指定部分?
       DATEPART (?,?? -- ----函數以整數值的形式返回日期的指定部分?
       GETDATE ()? -- ----函數以DATETIME?的缺省格式返回系統當前的日期和時間  ?

      系統函數?

      
    APP_NAME ()? -- ----函數返回當前執行的應用程序的名稱?
       COALESCE ()? -- ---函數返回眾多表達式中第一個非NULL?表達式的值?
       COL_LENGTH ( < ' table_name ' > ,? < ' column_name ' > ? -- --函數返回表中指定字段的長度值?
       COL_NAME (,?? -- --函數返回表中指定字段的名稱即列名?
       DATALENGTH ()? -- ---函數返回數據表達式的數據的實際長度?
       DB_ID ( [ 'database_name' ] )? -- ----函數返回數據庫的編號?
       DB_NAME (database_id)? -- ----函數返回數據庫的名稱?
       HOST_ID ()? -- ---函數返回服務器端計算機的名稱?
       HOST_NAME ()? -- ---函數返回服務器端計算機的名稱?
       IDENTITY ( [ ,?seed?increment ] )? [ AS?column_name ] )?
      ?
    -- IDENTITY()?函數只在SELECT?INTO?語句中使用用于插入一個identity?column列到新表中?
       /* select?identity(int,?1,?1)?as?column_name?
      ?into?newtable?
      ?from?oldtable
    */
    ?

      
    ISDATE ()? -- --函數判斷所給定的表達式是否為合理日期?
       ISNULL (,?? -- 函數將表達式中的NULL?值用指定值替換?
       ISNUMERIC ()? -- --函數判斷所給定的表達式是否為合理的數值?
       NEWID ()? -- --函數返回一個UNIQUEIDENTIFIER?類型的數值?
       NULLIF (,??
      ?
    -- --NULLIF?函數在expression1?與expression2?相等時返回NULL?值若不相等時則返回xpression1?的值?



    posted on 2006-08-07 11:58 nbt 閱讀(436) 評論(0)  編輯  收藏 所屬分類: 數據庫技術

    <2006年8月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術網站

    友情鏈接

    國內一些開源網站

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线精品亚洲一区二区小说| 一个人免费播放在线视频看片| 国产亚洲情侣一区二区无码AV| 日本免费网址大全在线观看 | 99re6在线视频精品免费下载| 污网站在线观看免费| 亚洲av无码一区二区三区天堂古代 | 日韩在线免费播放| 久久99国产综合精品免费| jizz免费观看| 精品亚洲国产成人av| 亚洲Av高清一区二区三区| 亚洲色图在线播放| 亚洲真人无码永久在线| 亚洲AV之男人的天堂| 国产大片线上免费看| 最近免费中文字幕4| h视频在线免费看| 91免费国产精品| 日韩av无码久久精品免费| 国产线视频精品免费观看视频| 日韩精品免费一线在线观看| 苍井空亚洲精品AA片在线播放| 亚洲日本VA午夜在线影院| 亚洲宅男精品一区在线观看| 亚洲最新在线视频| 亚洲欧洲自拍拍偷综合| 亚洲精品中文字幕乱码影院| 中文字幕亚洲精品资源网| 亚洲系列国产精品制服丝袜第| 亚洲视频网站在线观看| 亚洲黄网在线观看| 亚洲女人影院想要爱| 国产成人亚洲合集青青草原精品| 亚洲成在人线电影天堂色| 亚洲女人18毛片水真多| 在线精品亚洲一区二区| 亚洲av最新在线观看网址| 国产亚洲成在线播放va| 国产精品免费视频观看拍拍| 中文成人久久久久影院免费观看|