亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁(yè) | 考試用書 | 培訓(xùn)課程 | 模擬考場(chǎng) | 考試論壇  
      全國(guó)  |             |          |          |          |          |         
        當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > MySQL數(shù)據(jù)程序設(shè)計(jì) > MySQL 輔導(dǎo) > 文章內(nèi)容
        

      全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)MySQL教程(80)

      中華IT學(xué)院   【 】  [ 2016年3月10日 ]

        有些 MySQL 數(shù)據(jù)表中可能存在重復(fù)的記錄,有些情況我們?cè)试S重復(fù)數(shù)據(jù)的存在,但有時(shí)候我們也需要?jiǎng)h除這些重復(fù)的數(shù)據(jù)。

        本章節(jié)我們將為大家介紹如何防止數(shù)據(jù)表出現(xiàn)重復(fù)數(shù)據(jù)及如何刪除數(shù)據(jù)表中的重復(fù)數(shù)據(jù)。

        防止表中出現(xiàn)重復(fù)數(shù)據(jù)

        你可以在MySQL數(shù)據(jù)表中設(shè)置指定的字段為 PRIMARY KEY(主鍵) 或者 UNIQUE(唯一) 索引來保證數(shù)據(jù)的唯一性。

        讓我們嘗試一個(gè)實(shí)例:下表中無索引及主鍵,所以該表允許出現(xiàn)多條重復(fù)記錄。

        CREATE TABLE person_tbl

        (

        first_name CHAR(20),

        last_name CHAR(20),

        sex CHAR(10)

        );

        如果你想設(shè)置表中字段first_name,last_name數(shù)據(jù)不能重復(fù),你可以設(shè)置雙主鍵模式來設(shè)置數(shù)據(jù)的唯一性, 如果你設(shè)置了雙主鍵,那么那個(gè)鍵的默認(rèn)值不能為NULL,可設(shè)置為NOT NULL。如下所示:

        CREATE TABLE person_tbl

        (

        first_name CHAR(20) NOT NULL,

        last_name CHAR(20) NOT NULL,

        sex CHAR(10),

        PRIMARY KEY (last_name, first_name)

        );

        如果我們?cè)O(shè)置了唯一索引,那么在插入重復(fù)數(shù)據(jù)時(shí),SQL語(yǔ)句將無法執(zhí)行成功,并拋出錯(cuò)。

        INSERT IGNORE INTO與INSERT INTO的區(qū)別就是INSERT IGNORE會(huì)忽略數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù),如果數(shù)據(jù)庫(kù)沒有數(shù)據(jù),就插入新的數(shù)據(jù),如果有數(shù)據(jù)的話就跳過這條數(shù)據(jù)。這樣就可以保留數(shù)據(jù)庫(kù)中已經(jīng)存在數(shù)據(jù),達(dá)到在間隙中插入數(shù)據(jù)的目的。

        以下實(shí)例使用了INSERT IGNORE INTO,執(zhí)行后不會(huì)出錯(cuò),也不會(huì)向數(shù)據(jù)表中插入重復(fù)數(shù)據(jù):

        mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)

        -> VALUES( 'Jay', 'Thomas');

        Query OK, 1 row affected (0.00 sec)

        mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)

        -> VALUES( 'Jay', 'Thomas');

        Query OK, 0 rows affected (0.00 sec)

        INSERT IGNORE INTO當(dāng)插入數(shù)據(jù)時(shí),在設(shè)置了記錄的唯一性后,如果插入重復(fù)數(shù)據(jù),將不返回錯(cuò)誤,只以警告形式返回。 而REPLACE INTO into如果存在primary 或 unique相同的記錄,則先刪除掉。再插入新記錄。

        另一種設(shè)置數(shù)據(jù)的唯一性方法是添加一個(gè)UNIQUE索引,如下所示:

        CREATE TABLE person_tbl

        (

        first_name CHAR(20) NOT NULL,

        last_name CHAR(20) NOT NULL,

        sex CHAR(10)

        UNIQUE (last_name, first_name)

        );

      分享到:
      本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁(yè)地址,傳給QQ/MSN上的好友 | 申請(qǐng)鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved