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

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

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

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    sql語句大全

     
     
    下列語句部分是Mssql語句,不可以在access中使用。
     
    SQL分類:
    DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
    DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
    DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)
     
    首先,簡要介紹基礎語句:
    1、說明:創建數據庫
    CREATE DATABASE database-name
    2、說明:刪除數據庫
    drop database dbname
    3、說明:備份sql server
    --- 創建 備份數據的 device
    USE master
    EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
    --- 開始 備份
    BACKUP DATABASE pubs TO testBack
    4、說明:創建新表
    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
    根據已有的表創建新表:
    A:create table tab_new like tab_old (使用舊表創建新表)
    B:create table tab_new as select col1,col2… from tab_old definition only
    5、說明:刪除新表drop table tabname
    6、說明:增加一個列
    Alter table tabname add column col type
    注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
    7、說明:添加主鍵: Alter table tabname add primary key(col)
    說明:刪除主鍵: Alter table tabname drop primary key(col)
    8、說明:創建索引:create [unique] index idxname on tabname(col….)
    刪除索引:drop index idxname
    注:索引是不可更改的,想更改必須刪除重新建。
    9、說明:創建視圖:create view viewname as select statement
    刪除視圖:drop view viewname
    10、說明:幾個簡單的基本的sql語句
    選擇:select * from table1 where 范圍
    插入:insert into table1(field1,field2) values(value1,value2)
    刪除:delete from table1 where 范圍
    更新:update table1 set field1=value1 where 范圍
    查找:select * from table1 where field1 like ’%value1%’ ---like的語法很精妙,查資料!
    排序:select * from table1 order by field1,field2 [desc]
    總數:select count * as totalcount from table1
    求和:select sum(field1) as sumvalue from table1
    平均:select avg(field1) as avgvalue from table1
    最大:select max(field1) as maxvalue from table1
    最小:select min(field1) as minvalue from table1
    11、說明:幾個高級查詢運算詞
    A: UNION 運算符
    UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
    B: EXCEPT 運算符
    EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
    C: INTERSECT 運算符
    INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
    注:使用運算詞的幾個查詢結果行必須是一致的。
    12、說明:使用外連接
    A、left outer join:
    左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
    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
    B:right outer join:
    右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
    C:full outer join:
    全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
     
    其次,大家來看一些不錯的sql語句
    1、說明:復制表(只復制結構,源表名:a 新表名:b) (Access可用)
    法一:select * into b from a where 1<>1
    法二:select top 0 * into b from a
     
    2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)
    insert into b(a, b, c) select d,e,f from b;
     
    3、說明:跨數據庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)
    insert into b(a, b, c) select d,e,f from b in ‘具體數據庫’ where 條件
    例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
     
    4、說明:子查詢(表名1:a 表名2:b)
    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
     
    5、說明:顯示文章、提交人和最后回復時間
    select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
     
    6、說明:外連接查詢(表名1:a 表名2:b)
    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
     
    7、說明:在線視圖查詢(表名1:a )
    select * from (SELECT a,b,c FROM a) T where t.a > 1;
     
    8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 數值1 and 數值2
     
    9、說明:in 的使用方法
    select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
     
    10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
     
    11、說明:四表聯查問題:
    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 .....
     
    12、說明:日程安排提前五分鐘提醒
    SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5
     
    13、說明:一條sql 語句搞定數據庫分頁
    select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段
     
    14、說明:前10條記錄
    select top 10 * form table1 where 范圍
     
    15、說明:選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)
    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
     
    16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重復行而派生出一個結果表
    (select a from tableA ) except (select a from tableB) except (select a from tableC)
     
    17、說明:隨機取出10條數據
    select top 10 * from tablename order by newid()
     
    18、說明:隨機選擇記錄
    select newid()
     
    19、說明:刪除重復記錄
    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
     
    20、說明:列出數據庫里所有的表名
    select name from sysobjects where type='U'
     
    21、說明:列出表里的所有的
    select name from syscolumns where id=object_id('TableName')
     
    22、說明:列示type、vender、pcs字段,以type字段排列,case可以方便地實現多重選擇,類似select 中的case。
    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
    顯示結果:
    type vender pcs
    電腦 A 1
    電腦 A 1
    光盤 B 2
    光盤 A 2
    手機 B 3
    手機 C 3
     
    23、說明:初始化表table1
    TRUNCATE TABLE table1
     
    24、說明:選擇從10到15的記錄
    select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc
      
    隨機選擇數據庫記錄的方法(使用Randomize函數,通過SQL語句實現)
      對存儲在數據庫中的數據來說,隨機數特性能給出上面的效果,但它們可能太慢了些。你不能要求ASP“找個隨機數”然后打印出來。實際上常見的解決方案是建立如下所示的循環:
    Randomize
    RNumber = Int(Rnd*499) +1
     
    While Not objRec.EOF
    If objRec("ID") = RNumber THEN
    ... 這里是執行腳本 ...
    end if
    objRec.MoveNext
    Wend
     
      這很容易理解。首先,你取出1到500范圍之內的一個隨機數(假設500就是數據庫內記錄的總數)。然后,你遍歷每一記錄來測試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執行由THEN 關鍵字開始的那一塊代碼。假如你的RNumber 等于495,那么要循環一遍數據庫花的時間可就長了。雖然500這個數字看起來大了些,但相比更為穩固的企業解決方案這還是個小型數據庫了,后者通常在一個數據庫內就包含了成千上萬條記錄。這時候不就死定了?
      采用SQL,你就可以很快地找出準確的記錄并且打開一個只包含該記錄的recordset,如下所示:
    Randomize
    RNumber = Int(Rnd*499) + 1
     
    SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
     
    set objRec = ObjConn.Execute(SQL)
    Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
     
      不必寫出RNumber 和ID,你只需要檢查匹配情況即可。只要你對以上代碼的工作滿意,你自可按需操作“隨機”記錄。Recordset沒有包含其他內容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時間。
    再談隨機數
      現在你下定決心要榨干Random 函數的最后一滴油,那么你可能會一次取出多條隨機記錄或者想采用一定隨機范圍內的記錄。把上面的標準Random 示例擴展一下就可以用SQL應對上面兩種情況了。
      為了取出幾條隨機選擇的記錄并存放在同一recordset內,你可以存儲三個隨機數,然后查詢數據庫獲得匹配這些數字的記錄:
    SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
     
      假如你想選出10條記錄(也許是每次頁面裝載時的10條鏈接的列表),你可以用BETWEEN 或者數學等式選出第一條記錄和適當數量的遞增記錄。這一操作可以通過好幾種方式來完成,但是 SELECT 語句只顯示一種可能(這里的ID 是自動生成的號碼):
    SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
     
      注意:以上代碼的執行目的不是檢查數據庫內是否有9條并發記錄。
     
     
    隨機讀取若干條記錄,測試過
    Access語法:SELECT top 10 * From 表名 ORDER BY Rnd(id)
    Sql server:select top n * from 表名 order by newid()
    mysqlelect * From 表名 Order By rand() Limit n
    Access左連接語法(最近開發要用左連接,Access幫助什么都沒有,網上沒有Access的SQL說明,只有自己測試, 現在記下以備后查)
    語法elect table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
    使用SQL語句 用...代替過長的字符串顯示
    語法:
    SQL數據庫:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
    Access數據庫:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
     
    Conn.Execute說明
    Execute方法
      該方法用于執行SQL語句。根據SQL語句執行后是否返回記錄集,該方法的使用格式分為以下兩種:
        1.執行SQL查詢語句時,將返回查詢得到的記錄集。用法為:
        Set 對象變量名=連接對象.Execute("SQL 查詢語言")
       Execute方法調用后,會自動創建記錄集對象,并將查詢結果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以后對象變量就代表了該記錄集對象。
     
        2.執行SQL的操作性語言時,沒有記錄集的返回。此時用法為:
        連接對象.Execute "SQL 操作性語句" [, RecordAffected][, Option]
          ·RecordAffected 為可選項,此出可放置一個變量,SQL語句執行后,所生效的記錄數會自動保存到該變量中。通過訪問該變量,就可知道SQL語句隊多少條記錄進行了操作。
          ·Option 可選項,該參數的取值通常為adCMDText,它用于告訴ADO,應該將Execute方法之后的第一個字符解釋為命令文本。通過指定該參數,可使執行更高效。
     
    ·BeginTrans、RollbackTrans、CommitTrans方法
      這三個方法是連接對象提供的用于事務處理的方法。BeginTrans用于開始一個事物;RollbackTrans用于回滾事務;CommitTrans用于提交所有的事務處理結果,即確認事務的處理。
      事務處理可以將一組操作視為一個整體,只有全部語句都成功執行后,事務處理才算成功;若其中有一個語句執行失敗,則整個處理就算失敗,并恢復到處里前的狀態。
      BeginTrans和CommitTrans用于標記事務的開始和結束,在這兩個之間的語句,就是作為事務處理的語句。判斷事務處理是否成功,可通過連接對象的Error集合來實現,若Error集合的成員個數不為0,則說明有錯誤發生,事務處理失敗。Error集合中的每一個Error對象,代表一個錯誤信息。

    posted on 2007-09-21 11:22 gembin 閱讀(669) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    free counters
    主站蜘蛛池模板: 亚洲av网址在线观看| 亚洲av无码成人影院一区 | 日韩在线永久免费播放| 亚洲日韩国产精品无码av| 日本成人免费在线| 嫩草成人永久免费观看| 美女视频黄免费亚洲| 亚洲情侣偷拍精品| 青娱乐免费视频在线观看| 人妖系列免费网站观看| 亚洲一级毛片中文字幕| 亚洲欧洲久久久精品| 免费下载成人电影| 两个人看的www高清免费观看| 亚洲一区中文字幕在线观看| 中文国产成人精品久久亚洲精品AⅤ无码精品| 99re免费99re在线视频手机版| 看免费毛片天天看| 亚洲国语在线视频手机在线| 亚洲中文无韩国r级电影| 国产精品免费观看久久| 久久国产乱子伦精品免费强| 精品一区二区三区无码免费直播| 中文字幕亚洲第一在线| 久久亚洲中文字幕精品一区四| 成人人免费夜夜视频观看| 亚洲精品免费在线观看| 国产免费人成视频在线播放播| 亚洲人成无码网站在线观看| 久久亚洲精品无码aⅴ大香| 久久久久亚洲精品无码网址| 特级淫片国产免费高清视频| 91成人在线免费观看| 中文字幕的电影免费网站| 国产成人亚洲精品蜜芽影院| 国产精品高清视亚洲精品| 久久久婷婷五月亚洲97号色| 国产成人A亚洲精V品无码| 免费a级毛片在线观看| 午夜神器成在线人成在线人免费 | 亚洲成av人片天堂网老年人|