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

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

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

    戀戀冬季

    有你的冬天很溫暖

    與SQL語言有關

    SQL 語言

    SQL Structure Query Language 結構化查詢語言)標準的關系數據庫語言, 用于建立、儲存、修改、檢索和管理數據庫中的信息。

    SQL 語言的組成
        
    數據定義語言 DDL 用來創建、刪除或者修改數據模式對象的結構。一般包括: CREATE,DROP,ALTER
        
    數據操作語言( DML ): 用來操作數據。包括: UPDATE,INSERT,DELETE
        
    數據查詢語言:查詢數據: SELECT

    三、進入 SQL*PLUS ORACLE 自帶的 PL/SQL 使用器)
       
    進入 ORACLE 目錄中 BIN/PLUS33W(5.0) 或者 BIN/PLUS80W(6.0)
       
    編輯、運行,   在命令苻后輸入 SQL 命令, 如果上一個 sql 輸入有問題,鍵入 ed 進行編輯

    四、表
        1.
    創建表(創建表用 CREATE TABLE 語句):        
            CREATE TABLE <TABLE_NAME>(
              Column_name1 Datetype1 [Constraint_Type]

           
    ,Column_name2 Datatype2 [Constraint_Type]
           
    ,
           
    ,[CONSTRAINT Constraint_Name1 Constraint_Type (column_name) USING INDEX]

    )

        /
         Constraint_Type 有以下幾種類型
           
    PRIMARY KEY(column_name)- 主鍵約束
               FOREIGN KEY(column_name) REFERENCES Table_Name(Colunm)-
    外鍵約束
               UNIQUE KEY (column_name)-
    唯一鍵約束  
        DateType 一般是 ORACLE 可以支持的數據類型比較常用的有:
            A.
    NUMBER
            B.VARCHAR(n)
            C.VARCHAR2(n)
            D.LONG
            E.DATE
            F.CHAR(n)
            G.INTGER
            例子: 創建一個工人信息表, GRID,XM,XB,CSRQ  和一個工人工資表,包括 GRID,SZBM( 所在部門 ) GZ,RQ  其中工人信息表是主表,工人工資表是從表
           
    CREATE TABLE GR_XX(

       GRID  VARCHAR2(10)

      ,GRXM  VARCHAR2(50)  NOT NULL

      ,XB    VARCHAR2(2)   NOT NULL

      ,CSRQ  DATE

      ,CONSTRAINT GR_XX$_GRID PRIMARY KEY (GRID) USING INDEX

      )

        /
            CREATE TABLE GR_GZ(

       GRID  VARCHAR2(10)

      ,SZBM  VARCHAR2(10)

      ,GZ    NUMBER(10,2)

      ,RQ    DATE

      ,CONSTRAINT GR_GZ$_GRID FOREIGN KEY (GRID) REFERENCES GR_XX(GRID)

      ,CONSTRAINT  GR_GZ$_GRID_RQ UNIQUE (GRID,RQ)

      )

        /
        2.
    對表插入數據
           
    插入一條記錄
                INSERT INTO Table_Name [(column_name1,Column_name2,...)] VALUES(value1,value2,...);
                
    例子:向工人信息表中插入數據
                Insert into gr_xx (grid,grxm,xb,csrq) values (‘001’,’xjf’,’
    ’,SYSDATE);
                Insert into gr_gz values(‘001’,’008’,560.92);
           
    插入多條記錄
                INSERT INTO Table_Name1 [(column_name1,Column_Name2,...)]
        3.
    修改表  
             UPDATE Table_Name SET column1=val1,column2=val2,… WHERE …
            
    例子: update gr_gz set gz=80000 where grid='sw'or grid='dn';
        4.
    刪除數據
            DELETE FROM TABLE_NAME WHERE ...
        5.
    提交數據
            COMMIT--
    提交
            ROLLBACK--
    回滾
           
    例子:主表和從表需要同時更新數據時,需要更新兩條 sql 語句,為避免數據庫中的垃圾數據,當一條記錄失敗,即回滾。
        6.
    刪除表
            DROP TABLE TABLE_NAME;
            DELETE TABLE TABLE_NAME;
    刪記錄  
       
    7. 修改表結構
           
    增加列
                ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE ;
                alter table gr_gz add sl varchar(4)
            
    刪除列
                ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME ;
                alter table gr_gz  drop column sl;
                
    刪除列時,該列不能有數據。

         修改列
                ALTER TABLE TABLE_NAME MODIFY COLUMN_NAME DATATYPE;
                alter table gr_gz modify sl varcher2(10)
               
    注意:修改列時,可以將已有類型轉為新得類型,也可以擴大或者縮小原來得數據類型。當將已有類型轉為新得類型時,表中 此字段不能有數,擴大可以不受影響,縮小時,表中得數據大小不能超過修改后得大小。
            
    虛表
                SELECT SYSDATE FROM DUAL; 
                select 5*7 from dual;
    五、視圖(由一個或者多個表建的視圖)
        1.
    創建視圖
            CREATE OR REPLACE VIEW VIEW_NAME AS

    SELECT COLUMN1,COLUMN2,… FROM TABLE_NAME1 A, TABLE_NAME2 …  
        2.
    刪除視圖
           
    DROP VIEW VIEW_NAME
         
         例子:創建一個視圖,可以查出工人的姓名和工人的工資
            create or replace view v_gz as
            select a.grid.a.xm,b.gz 
            from gr_xx a,gr_gz b
            where a.grid=b.grid
    六、數據查詢
            
    一般使用 select 語句進行查詢
          
    基本結構:
           SELECT COLUMN1,COLUMN2,
       
           FROM TABLE_NAME
                 [WHERE CONDTION ]
                 [GROUP BY COLUMN]
                 [HAVING CONDITION]

         [ORDER BY COLUMN]
        1.
    查詢所有得列
            SELECT * FROM TABLE_NAME [WHERE CONDTION]
           
    例子:查詢工人信息表中 grid 0001 的所有列的信息
            select * from gr_xx where grid='0001'
        2.
    查詢指定的列
            SELECT COLUMN1,COLUMN2,.. FROM TABLE_NAME [WHERE CONDITION]
            
    例子: select grid,grxm from gr_xx where grid = ‘0001’ ;  
        3.
    用被選擇的列的別名來指定顯示選擇結果時的列名
            SELECT COLUMN1 BYNAME1,COLUMN2 BYNAME2 FROM TABLE_NAME [WHERE]
            select grid,grxm,grgz from gr_xx where grid='0001';
        4. select 語句中使用表達式
           
    SELECT EXPRESSION FROM TABLE_NAME [WHERE ]
            select cgdz,300+100 from cg_xx ;

        5.distinct 查關鍵字,消除冗余行 , 統計
            SELECT DISTINCT(COLUMN) BYNAME FROM TABLE_NAME [WHERE CONDITION]
           
    例子:如果有兩個記錄的姓氏字段皆包含 Smith ,則下列 SQL 語句只返回包含 Smith 的記錄
            select distinct Smith from employees;
           
    如果省略 DISTINCT ,則查詢將返回兩個包含 Smith 的記錄
        6.
    where 子句
            where
    子句中常用的比較運算符 :<, >, <> , = ,!=,<= , >=
           
    常用的關系運算符 :in(val1,val2,…),between val1 and val2,like ‘%tin%’ 百分號表示零個或任意多個字符 _ 表示任意一個字符
            select * from gr_xx where grid in (‘0001’,’0002’);
            select * from gr_xx where csrq between ’01-jan-1960’ and sysdate
            select * from gr_xx where grxm like ‘%y%’ ;
           
    組合查詢條件 :and ,or ,not
            select * from gr_xx where csrq > 'june-01-1980' and xb='
    ';
            select * from gr_xx where csrq > 'june-01-1980' or xb='
    ';
            select * from gr_xx where grid not in('0001','0002');
        7.order by
    排序子句
           
    按照定義字段的順序顯示查詢結果
            Select * from gr_gz order by gz;
            Asc
    正序排列(由低到高)   Desc 倒序排列
            select * from gr_gz order by gz desc;
        8.Group by having
    分組函數
           
    分組函數包括: max,min,avg,sum,conunt
            having
    where 的區別就在于 where 是執行前判斷條件,而 having 則是在執行查詢后判斷條件 ;group by 后只能用 having 而不能用 where
            select grid,count(gz) from gr_gz
            group by grid
    grid 相同的分成一組
            having grid = ‘yang’;
    取出的結果中包含 grid='yang'          
            select  xm , count(*) from gr_xx group by xm having count(*)>1 ;
    取出有相同姓名的人
        9.
    查詢的并 ( union ) 、交 (intersect) 、差 (minus) 操作
           
    union 去掉重復記錄, union all 全部保留 ( 按照缺省規定,使用 UNION 運算時不返回重復的記錄;然而,可以包含 ALL 謂詞來確保返回所有的記錄 )
            select grid from gr_xx where xb=’ ’  intersect select grid from gr_gz where gz > 400 ;
        10.
    連接查詢
           
    利用兩個表的相關列之間的比較關系,控制個表中的行的組合。從多個表中查詢數據  
            A.
    等值連接
            select a.grid,a.xm,b.gz from gr_xx a gr_gz b where a.grid=b.grid;
            B.
    非等值連接
            select a.grid,a.xm,b.gz from gr_xx a gr_gz b where a.grid='0001'and b.gz>'2000';
            C.
    自連接查詢:與本表進行連接查詢
        select a.grid from gr_xx a,gr_xx b  where a.grid=b.xm;
            CREATE TABLE GR_jl(
            GRID
            ,MGR
            )
            /
            select a.grid,b.grid from gr_jl a, gr_jl b where a.mgr = b.grid ;
            D.外連接:使用后,可以返回兩個表中相匹配的行,(+)跟在從表的列后。沒有匹配的數據為NULL
        select a.id, b.id, from dept a, emp b;
            a.id     b.id
            1         2
            2         2
            3         4
            where a.id(+) = b.id
            1         2
            2         2
                       4
            where a.id = b.id(+)
            1         2
            2         2
            3
        11. ORACLE 中的偽列
        ROWNUM ,ROWID 每個表中都有的列
        Select * from gr_xx where rownum < 10 ;
        12.嵌套查詢:在select語句中,還存在另一個select語句,叫嵌套查詢
        Select * from gr_xx
            Where grid in ( select grid from gr_gz where gz >300 );
            exists 的應用
        Select count(1) from dual where exists (select 1 from Gr_xx where grid = ‘yang’);
        13.||連接符
        select 'time is '||sysdate from dual;
    七、序列發生器
      1.創建
        create sequence a start with 10000 ;
        2.使用
        currval
            nextval
            select a.currval from dual;
           

     






     

    posted on 2006-12-07 16:01 戀戀冬季 閱讀(685) 評論(0)  編輯  收藏 所屬分類: 數據庫


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV日韩AV天堂久久| 亚洲日本视频在线观看| 久久国产免费观看精品| 亚洲国产av一区二区三区丶| 久久精品免费一区二区喷潮 | 精品丝袜国产自在线拍亚洲| 免费无码国产V片在线观看| 国产亚洲综合网曝门系列| ssswww日本免费网站片| 亚洲精品美女在线观看| 国产v片免费播放| 久久精品国产大片免费观看| 亚洲人成人77777网站| 欧美a级成人网站免费| 久久www免费人成精品香蕉| 亚洲一级片免费看| 亚洲毛片在线免费观看| 亚洲一级二级三级不卡| 成人片黄网站色大片免费观看APP| 亚洲日韩VA无码中文字幕| 蜜臀AV免费一区二区三区| 一级特黄色毛片免费看| 亚洲黄色激情视频| 久久精品国产亚洲麻豆| 国产高清免费在线| 在线视频精品免费| 99视频在线免费观看| 色九月亚洲综合网| 亚洲国产精品成人| 国产免费av片在线看| 无码精品人妻一区二区三区免费看| 男男gvh肉在线观看免费| 亚洲午夜爱爱香蕉片| 免费可以在线看A∨网站| 美女视频黄的免费视频网页| 免费国产污网站在线观看不要卡 | 亚洲熟妇av午夜无码不卡| 久久国产精品亚洲综合| 亚洲一区二区三区在线播放| 国产嫩草影院精品免费网址| 中国在线观看免费国语版|