計(jì)算機(jī)等級(jí)三級(jí)數(shù)據(jù)庫(kù):全面接觸SQL語(yǔ)法(7)

字號(hào):

表的刪除
    DELETE語(yǔ)句
    我們可以利用DELETE語(yǔ)句,將表格中的記錄刪除。(注意:記錄被刪除后,無(wú)法再?gòu)?fù)原,所以條件設(shè)置要正確)
    DELETE[table.*]
    FROM tableexpression
    WHERE criteria
    table
    欲刪除記錄的表格名稱,也可以用*來(lái)取代。
    tableexpression
    一個(gè)或一個(gè)以上表格的名稱。此一參數(shù)可以為單一的表格名稱或是從INNER JOIN,LEFT JOIN,或RIGHTJOIN 等運(yùn)算所得到的結(jié)果。
    criteria
    決定表格中記錄要被刪除的標(biāo)準(zhǔn)。
    例如:
    若是我們要將職員表格中姓名姓名叫做'李名'的記錄刪除,我們可以利用下面的SQL語(yǔ)句來(lái)完成。
    DELETE * FROM 職員表格
    WHERE 姓名='李名';
    數(shù)據(jù)庫(kù)表格相關(guān)的操作命令
    SQL除了可以作為查詢與數(shù)據(jù)庫(kù)表格的建立的工具外,對(duì)于數(shù)據(jù)庫(kù)與表格的新建、刪修、與維護(hù),與具有相當(dāng)不錯(cuò)的功能,若是讀者使用SQL命令得宜,對(duì)于整個(gè)效率的提高有著很大的幫助,所以對(duì)于SQL語(yǔ)句所帶來(lái)的優(yōu)勢(shì),常常會(huì)遇到一個(gè)情況,就是:“當(dāng)我們對(duì)多個(gè)表格作復(fù)雜與多步驟的處理時(shí),或許SQL只要一個(gè)語(yǔ)句就可以完成所有的需求與目標(biāo)”,乍看一下,或許覺得有些玄妙,但是接下來(lái)的章節(jié),會(huì)讓你了解其中的妙處 SELECT...INTO語(yǔ)句
    我們可以通過(guò)這個(gè)命令,利用既存表格查詢,來(lái)建立一個(gè)新表格的查詢語(yǔ)句。
    SELECT field1[,field2[,...]]INTO newtable[IN externaldatabase]
    FROM source
    field1,field2
    欲拷貝到新表格的字段名稱。
    newtable
    欲建立之新表格的名稱,不可是已經(jīng)存在的表格。
    externaldatabase
    若是該表格在另外的外部數(shù)據(jù)庫(kù)時(shí),該數(shù)據(jù)庫(kù)的名稱。
    source
    記錄數(shù)據(jù)拷貝的來(lái)源表格名稱,可以是單一的表格或是一段SQL查詢之語(yǔ)句。
    例如:
    你可以通過(guò)下面的SQL語(yǔ)句,來(lái)建立一個(gè)新的“訓(xùn)練名冊(cè)”表格。
    SELECT 職員表格.姓名,職員表格.部門
    INTO 訓(xùn)練名冊(cè) FROM 職員表格
    WHERE 職稱='新進(jìn)人員';
    INNER JOIN操作數(shù)
    當(dāng)某一個(gè)共同的字段數(shù)據(jù)相等時(shí),將兩個(gè)表格的記錄加以組合。
    SELECT fields
    FROM table1 INNER JOIN table2
    ON table1.field1 compopr table2.field2
    table1,table2
    欲進(jìn)行記錄組合的表格名稱。
    field1,field2
    欲組合的字段名稱。(必須具有相同的數(shù)據(jù)類型)
    compopr
    比較關(guān)系運(yùn)算符如下:“=”,“<”,“>”,“<=”,“<>”等。
    例如:
    若是你要把分類表格與產(chǎn)品表格作組合,可參考下面的SQL語(yǔ)句。
    SELECT 分類名稱,產(chǎn)品名稱
    FROM 分類表格 INNER JOIN 產(chǎn)品表格
    ON 分類表格.分類編號(hào)=產(chǎn)品表格.分類編號(hào)  UNION操作數(shù)
    我們可以通過(guò)UNION操作數(shù)來(lái)建立連接的查詢條件,UNION操作數(shù)可以將兩個(gè)以上的表格或是查詢的結(jié)果組合起來(lái)。
    [TABLE]query1 UNION [ALL][TABLE]query2 [UNION [ALL]
    [TABLE]queryn [...]]
    query1,query2,queryn
    為一個(gè)SELECT的語(yǔ)句,或是一個(gè)已存在的查詢名稱,或是一個(gè)已存在的表格名稱。
    例如:
    你可以利用下面的SQL語(yǔ)句,將訂單數(shù)量超過(guò)1000的顧客表格記錄,與新客戶表格作UNION的操作。
    TABLE 新客戶表格 UNION ALL
    SELECT *
    FROM 顧客表格
    WHERE 訂單數(shù)量>1000;
    ALTER語(yǔ)句
    在一個(gè)表格被建立之后,利用ALTER語(yǔ)句,我們可以去修改表格的字段設(shè)計(jì)。
    ALTER TABLE table
    {ADD {COLUMN field type[(size)][CONSTRAINT index]
    |CONSTRAINT multifieldindex}
    |DROP {COLUMN field|CONSTRAINT indexname}}
    table
    欲被ALTER的表格名稱。
    field
    要被增加或刪除的字段名稱。
    type
    字段數(shù)據(jù)類型。
    size
    字段大小。
    index
    對(duì)此字段的索引。
    例如:
    在職員表格中新建一個(gè)“薪水”的字段。
    ALTER TABLE 職員表格
    ADD COLUMN 薪水 CURRENCY;
    例如:
    在職員表格中刪除一個(gè)“薪水”的字段。
    ALTER TABLE 職員表格 DROP COLUMN 薪水;
    DROP語(yǔ)句
    針對(duì)所指定的表格或字段加以刪除,或是把索引刪除。
    DROP {TABLE table|INDEX index ON table}
    table
    欲刪除之表格或索引依附之表格名稱。
    index
    欲從表格中刪除的索引名稱。
    例如:
    從職員表格中,刪除編號(hào)索引。
    DROP INDEX MyIndex ON Employees;
    例如:
    從數(shù)據(jù)庫(kù)中,刪除整個(gè)表格。
    DROP TABLE 職員表格; 
    INSERT INTO語(yǔ)句
    新建一條數(shù)據(jù)到表格當(dāng)中。
    多條記錄新建查詢:
    INSERT INTO target [IN externaldatabase][(field1[,field2[,...]])]
    SELECT [source.]field1[,field2[,...]
    FROM tableexpression
    單條記錄新建查詢:
    INSERT INTO target[(field1[,field2[,...]])]
    VALUES(value1[,value2[,...])
    target
    新建記錄的表格名稱。
    externaldatabase
    外部數(shù)據(jù)庫(kù)的路徑,搭配IN條件子句使用。
    source
    若是記錄從其它表格中拷貝時(shí),指明該表格的名稱。
    field1,field2
    欲增加數(shù)據(jù)的字段名稱。
    tableexpression
    表格名稱或描述記錄是從哪一個(gè)表格中插入的表格名稱。配合INNER JOIN,LEFT JOIN,或 RIGHT JOIN 運(yùn)算符一起使用。
    value1,value2
    欲插入表格中的數(shù)值。
    例如:
    在客戶數(shù)據(jù)表格中,從新的表格插入數(shù)據(jù)。
    INSERT INTO 客戶數(shù)據(jù)表格
    SELECT 新客戶數(shù)據(jù)表格.*
    FROM 新客戶數(shù)據(jù)表格;
    例如:
    在職員表格中插入數(shù)據(jù)。
    INSERT INTO 職員表格(姓名,生日,職稱)
    VALUES("王榮","57/12/11","經(jīng)理");
    例如:
    從訓(xùn)練人員表格中,將職員雇用時(shí)間超過(guò)30天者,加入到正式職員表格中。
    INSERT INTO 職員表格
    SELECT 訓(xùn)練人員表格.*
    FROM 訓(xùn)練人員表格
    WHERE 雇用天數(shù)>30;
     UPDATE語(yǔ)句
    建立一個(gè)UPDATE的查詢,通過(guò)條件的限制來(lái)修改特定的數(shù)據(jù)。
    UPDATE table
    SET newvalue
    WHERE criteria;
    table
    欲修改數(shù)據(jù)的表格名稱。
    newvalue
    欲修改成的數(shù)值(將該項(xiàng)數(shù)值插入到特定的字段當(dāng)中)。
    criteria
    查詢條件,用來(lái)決定要修改哪些記錄。
    例如:
    若是要把訂單表格中的訂單數(shù)量修改成1.1倍,運(yùn)費(fèi)為1.03倍,可利用下列之SQL語(yǔ)句來(lái)完成。
    UPDATE 訂單表格
    SET 訂單數(shù)量=訂單數(shù)量 * 1.1,運(yùn)費(fèi)=運(yùn)費(fèi) * 1.03倍
    WHERE 運(yùn)達(dá)地點(diǎn)='美國(guó)';
    當(dāng)我們完成修改后,你可以利用 SELECT 語(yǔ)句,配合同樣的 WHERE 條件子句,來(lái)察看修改的數(shù)據(jù)是否正確。
    事實(shí)上,要利用SQL完成某些看似復(fù)雜的操作,并不需要繁瑣的SQL命令組合,或是許許多多的步驟才能完成,其實(shí)最重要的還是要活用SQL命令,才會(huì)在最精簡(jiǎn)的SQL語(yǔ)句里獲得的效率。