MySQL培訓(xùn)教程:mysql修改數(shù)據(jù)命令
最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請(qǐng)盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請(qǐng)聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!
我要咨詢MySQL培訓(xùn)教程:mysql修改數(shù)據(jù)命令,你可以使用幾個(gè)不同的方法修改表中的數(shù)據(jù),最基本的、可能也是最常用的方法就是使用UPDATE語句了。使用這個(gè)語句,你能夠修改所有的行或是基于WHERE子句的指定記錄中的數(shù)據(jù)。回顧一下以前顯示的查詢結(jié)果,我們可以看到GrahamGreene的作品BrightonRock的版權(quán)年份是1937年。這是錯(cuò)誤的,實(shí)際年份應(yīng)該是1938年。我們將輸入下面的SQL語句,來修改更新這個(gè)錯(cuò)誤信息:
- UPDATE books
- SET pub_year = '1938'
- WHERE book_id = '2';
- Query OK, 1 row affected (0.00 sec)
- Rows matched: 1 Changed: 1 Warnings: 0
首先,我們要聲明即將被更新的表名。接下來我們要在SET關(guān)鍵字后面指定將要修改的列以及相應(yīng)的新值。如果想修改的列不止一列,那么應(yīng)提供一個(gè)由逗號(hào)分開的列表,列表中每個(gè)列后跟隨著等號(hào)操作符以及各自的新值。SET只需輸入一次即可。
前面的SQL語句中通過WHERE子句指定必需的匹配條件,限定了將要更新的行。在這種情況下,限定條件是針對(duì)于不同列的特定值的,因此只修改了一行數(shù)據(jù)。查詢結(jié)果顯示只有一行數(shù)據(jù)受影響,一行記錄符合條件,一行記錄被修改,沒有任何問題引發(fā)警告信息。
有時(shí),在向表中插入數(shù)據(jù)時(shí),如果表中已存在此數(shù)據(jù),則會(huì)引發(fā)重復(fù)行的問題。例如,假設(shè)我們想執(zhí)行SQL語句,將幾本書的相關(guān)數(shù)據(jù)添加到books表中,而其中一本書的數(shù)據(jù)已存在于表中。如果我們使用INSERT語句,重復(fù)行會(huì)引發(fā)拒絕添加的警告信息。為防止這種情況發(fā)生,可以使用REPLACE語句,該語句向表中插入一行新數(shù)據(jù),并可以用新數(shù)據(jù)替代已存在的數(shù)據(jù)。
從MySQL的角度看,一般情況下,只有在列被定義成惟一值的情況下才會(huì)發(fā)生重復(fù)數(shù)據(jù)的錯(cuò)誤。由于book_id列的值是自動(dòng)分配的,我們添加記錄時(shí)不用指定它的值,所以不可能發(fā)生重復(fù)值的現(xiàn)象。在圖書交易中,每本書的唯一性是根據(jù)它的ISBN碼來區(qū)分的,ISBN碼就是書后面的條形碼。為了確保不會(huì)有ISBN碼相同的行,我們將再次修改books表,將ISBN列設(shè)置成UNIQUE列,該列的值必須是唯一的。使用此種方式,我們就不會(huì)在不經(jīng)意中多次為一本書添加數(shù)據(jù)了:
- ALTER TABLE books
- CHANGE COLUMN isbn isbn VARCHAR(20) UNIQUE;
現(xiàn)在我們已經(jīng)準(zhǔn)備好添加更多圖書的數(shù)據(jù),而不必?fù)?dān)心由于ISBN碼重復(fù)而帶來的重復(fù)行問題。下面的例子中,我們?cè)噲D將GrahamGreene的二個(gè)作品數(shù)據(jù)添加到books表中,而其中一本已經(jīng)存在于表中:
- REPLACE INTO books
- (title, author_id, isbn, genre, pub_year)
- VALUES('Brighton Rock',1,'0099478471','novel','1938'),
- ('The Quiet American',1,'0099478393','novel','1955');
REPLACE語句與INSERT語句的語法是相同的。注意,我們?cè)谝粭l語句中添加了二行記錄。如果想使用INSERT語句添加更多的記錄,使用的語法和上面的相同。如上面顯示的,每行數(shù)據(jù)都列在圓括號(hào)中,并且值與值間用逗號(hào)分隔。在上例中,表中已存在ISBN碼為0099478471的圖書數(shù)據(jù)(例如:BrightonRock),因此新數(shù)據(jù)會(huì)替代表中已存在的數(shù)據(jù)。目前表中沒有Greene的作品TheQuietAmerican的記錄,因此,該數(shù)據(jù)將被添加到表中。
- 冉乃綱-老師CUUG金牌講師
- 冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]
