項(xiàng)目5--在-MySQL數(shù)據(jù)庫中插入、更新與刪除數(shù)據(jù)--_第1頁
項(xiàng)目5--在-MySQL數(shù)據(jù)庫中插入、更新與刪除數(shù)據(jù)--_第2頁
項(xiàng)目5--在-MySQL數(shù)據(jù)庫中插入、更新與刪除數(shù)據(jù)--_第3頁
項(xiàng)目5--在-MySQL數(shù)據(jù)庫中插入、更新與刪除數(shù)據(jù)--_第4頁
項(xiàng)目5--在-MySQL數(shù)據(jù)庫中插入、更新與刪除數(shù)據(jù)--_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、任務(wù)1在數(shù)據(jù)庫表中插入數(shù)據(jù)項(xiàng)目5 在MySQL 數(shù)據(jù)庫中插入、更新與刪除數(shù)據(jù)任務(wù)2在數(shù)據(jù)庫表中更新數(shù)據(jù)任務(wù)3在數(shù)據(jù)庫表中刪除數(shù)據(jù)向數(shù)據(jù)表 中 添 加 記 錄 的 操 作 通 常 使 用 INSERT 語 句 來 完 成 。 在 My SQL 數(shù) 據(jù) 庫 中 , INSERT 語句有四種語法格式 , 分別是 INSERT VALUES 語句 、I NSERT SELECT 語句 、INSERT R EPLACE 語 句 、I NSERT SET 語 句 。 其 中 INSERT V ALUES 語 句 是 My SQL 中最常用的插入語句 。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù)使用 INSERT VAL

2、UES 語句可以一次性向表中插入一條新記錄 , 語法格式為 : INSERT INTO table_ name ( field1, field2, ,f ield N ) VALUES( value1, value2, ,v alues N) ; 其中 ,t able_ name 為表名 ,f ield1、 field2、 field N 為表中的字段名 ,v alue1、 value2、 values N 為字段對應(yīng)的值 。 如果數(shù)據(jù)為字符型 , 則必須使用單引號或者雙引號 , 如 ”v alue” 。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT VALUES 語句插入新記錄【 例 5

3、- 1 】 向表 department 中 , 插入一條新記錄 , 內(nèi)容如下 : 財(cái)務(wù)金融學(xué)院 ,id 為 0。演示結(jié)果如下:任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT VALUES 語句插入新記錄【 例 5 - 2 】 在表 books 中 , 插入一條新記錄 , 其內(nèi)容如下 : 作者韓三春 , 書名為java 語言程序設(shè)計(jì)教程 , 于 2017 年 3 月 12 日由科學(xué)出版社出版 , 書號為 9345678431221, 定價(jià)為 28.9 元 。演示結(jié)果如下:任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT VALUES 語句插入新記錄【 例 5 - 3 】 在例 5-2 操作的基

4、礎(chǔ)上 ( 仍然在表 books 中 ), 插入一條新記錄 , 內(nèi)容如下 : 作者 張三 , 書名V B 程序設(shè)計(jì)教程 , 書號為 9345678653212, 定價(jià)為 40 元 。 注意此條記錄沒有出 版社信息 (press字段值 ) 和版本信息 (version字段值 )。演示結(jié)果如下:任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT VALUES 語句插入新記錄通過 INSERT VALUES 語句的上述用法只能一次插入一條新記錄 , 如需插入多條新記 錄 , 就得多次調(diào)用該語句 , 意味著需要多次與數(shù)據(jù)庫建立連接 , 這樣一來 , 就會增加服務(wù)器的 負(fù)荷 。 為了 可 以 批 量 插 入

5、 新 記 錄 ,M y SQL 數(shù) 據(jù) 庫 提 供 了 另 一 種 解 決 方 案 , 就 是 使 用 一 條 INSERT VALUES 語句來實(shí)現(xiàn)插入多條新記錄 。 任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT VALUES 語句插入新記錄在實(shí)際生產(chǎn)環(huán)境中 , 有時(shí)候需要一次性插入多條新記錄 , 可以使用 INSERT VALUES 語句實(shí)現(xiàn)一次性插入多條新記錄 。 語法格式為 : INSERT INTO table_ name ( field1, field2, ,f ield N) VALUES( value1, value2, ,v alues N) , (v alue1, va

6、lue2, ,v alues N) , (v alue1, value2, ,v alues N) , (v alue1, value2, ,v alues N) , (v alue1, value2, ,v alues N) ;其中 ,t able_ name 為表名 ,f ield1、 field2、 field N 為表中的字段名 ,v alue1、 value2、 values N 為字段對應(yīng)的值 。 如果數(shù)據(jù)為字符型 , 則必須使用單引號或者雙引號 , 如 “value” 。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄【 例 5 - 4 】 在表 department 中 , 插

7、入多條新記錄 , 內(nèi)容見表 5-1。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄【 例 5 - 5 】 在表 books 中 , 插入多條新記錄 , 這些記錄內(nèi)容見表 5-2。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄【 例 5 - 5 】演示結(jié)果如下:任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄【 例 5 - 6 】 在表 courses 中 , 插入多條新記錄 , 這些記錄內(nèi)容見表 5-2。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄【 例 5 - 6 】演示結(jié)果如下:任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄可以看出 , 使用 INSERT VALUES 語句一次

8、插 入多條 新 記 錄 和 使 用 INSERT VALUES 語 句 一 次 插 入 一 條 新 記 錄 的 區(qū) 別 , 僅 僅 是 在 VALUES 后面增加每條新記錄的字段對應(yīng)值 , 每條新記錄之間用英文輸入法狀態(tài)下的逗號 隔開 。 在實(shí)際應(yīng)用中 , 插入批量數(shù)據(jù)時(shí) , 最好使用一條 INSERT VALUES 語句來一次插入多 條新記錄 。 這樣可以避免程序和數(shù)據(jù)庫之間建立多次連接 , 從而達(dá)到降低服務(wù)器負(fù)荷的目的 。 任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 批量插入多條新記錄INSERT 語句是數(shù)據(jù)庫操作中的常用語句 , 用來向數(shù)據(jù)表中添加數(shù)據(jù) 。 同時(shí) INSERT VALUES 這種形式在

9、應(yīng)用程序開發(fā)中必不可少 。 但是在開發(fā) 、 測試過程中 , 經(jīng)常會遇到這種情況 : 首先需要復(fù)制某一個(gè)表中的信息 , 然后再將這些信息插入到另一個(gè)表中 。 這時(shí)候就需要使用 INSERT SELECT 語句了 。 INSERT SELECT 語 句 , 可 以 從 一 個(gè) 表 復(fù) 制 信 息 到 另 一 個(gè) 表 。 使 用 INSERT SELECT 語句首先從一個(gè)表 Table1 復(fù)制需要的數(shù)據(jù) , 然后把這些數(shù)據(jù)插入到一個(gè)已存在的 目標(biāo)表 Table2 中 , 在插入過程中 , 不會影響目標(biāo)表 Table2 中任何已存在的行任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT SELECT 語

10、句插入結(jié)果集語法格式為 : INSERT INTO Table2 ( field1, field2, ) SELECT value1, value2, FROM Table1 WHERE( condition) ; 其中 ,T able2 指目標(biāo)表 ;f ield1, field2, 指目標(biāo)表中需要插入數(shù)據(jù)的字段名 ;T able1 指 數(shù)據(jù)來源表 ;v alue1, value2, 指數(shù)據(jù)來源表的字段名 , 該字段名必須與目標(biāo)表中 field1, field2, 字段名中的字段個(gè)數(shù)及數(shù)據(jù)類型相同 ;c ondition 指向目標(biāo)表復(fù)制數(shù)據(jù)前選擇合理 數(shù)據(jù)的查詢條件 。 注意 : (1 ) 要

11、求目標(biāo)表 Table2 必須存在 , 并且字段名 field, field2, 也必須存在 。 (2 ) 注意目標(biāo)表 Table2 的主鍵約束 , 如果目標(biāo)表 Table2 已設(shè)置主鍵字段而且該主鍵字段 不為空 , 則字段名 field1, field2, 中必須包括主鍵字段 。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT SELECT 語句插入結(jié)果集在本小節(jié)中 , 將介紹如何使用 My SQL 的 REPLACE INTO 語句來插入或更新數(shù)據(jù)庫 表中的數(shù)據(jù) 。M y SQL 的 REPLACE INTO 語句是一個(gè)擴(kuò)展于 SQL 標(biāo)準(zhǔn)的語句 。 REPLACE INTO 語句的工作過程

12、如下 : (1 ) 如果待插入的新記錄在表中不存在 , 則 REPLACE 語句直接插入該新記錄 。 (2 ) 如果待插入的新記錄在表中已經(jīng)存在 , 則 REPLACE INTO 語句首先刪除表中舊的 記錄 , 然后重新插入該新記錄 。 要確定待插入的新記錄是否已經(jīng)存在于表中 ,M y SQL 使用 PRIMARY KEY 或唯一鍵 (U NIQUE KEY) 索引 。 如果表中沒有使用主鍵字段或者唯一鍵索引 , 則 REPLACE INTO 語句相當(dāng)于 INSERT 語句任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 REPLACE 語句插入新記錄語法格式為 : REPLACE INTO table_

13、name ( field1, field2, ,f ield N ) VALUES( value1, value2, ,v alues N) ; 其中 ,t able_ name 為表名 ,f ield1、 field2、 field N 為表中的字段名 ,v alue1、 value2、 values N 為字段對應(yīng)的值 。 如果數(shù)據(jù)為字符型 , 則必須使用單引號或者雙引號 , 如 :”v alue” 。 任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 REPLACE 語句插入新記錄REPLACE 語句在向表中插入記錄的時(shí)候 , 遵循以下步驟進(jìn)行 :(1) 首先判斷待插入的記錄是否已經(jīng)存在于表中 。 (

14、2) 如果記錄不存在 , 則直接插入 。 (3) 如果記錄已經(jīng)存在 , 則新記錄更新原來的舊記錄 。 REPLACE INTO 語句跟 INSERT VALUES 語句功能類似 , 不同點(diǎn)在于 :REPLACE INTO 語句首先嘗試插入記錄到表中 , 如果發(fā)現(xiàn)表中已經(jīng)有此行記錄(根據(jù)主鍵或者唯一索 引判斷 ) 則先刪除此行記錄 , 然后插入該新記錄 ; 否則 , 直接插入該新記錄 。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 REPLACE 語句插入新記錄通過 INSERT SET 語句插入新記錄清晰明了 , 容易查錯(cuò) 。 但是使用 INSERT SET 語 句插入記錄時(shí) , 不能一次性批量插入多條

15、新記錄 。 INSERT.VALUES 和 INSERT.SET 兩種語句都是將指定的數(shù)據(jù)插入到已經(jīng)存在 的表中 , 而 INSERT.SELECT 語句是將一個(gè)表中的數(shù)據(jù)篩查出來并復(fù)制插入到已經(jīng)存在 的另一表中 。任務(wù)1 在數(shù)據(jù)庫表中插入數(shù)據(jù) 使用 INSERT SET 語句插入新記錄在 My SQL 數(shù)據(jù)庫中 , 成功創(chuàng)建數(shù)據(jù)庫和表 , 有時(shí)需要根據(jù)特定要求修改更新表的屬性信 息 , 比如修改表默認(rèn)的字符集 、 字段默認(rèn)的字符集等 , 同時(shí)也可以使用 UPDATE 語句更新表 中的記錄 , 不僅可以更新特定的行 , 也可以更新所有的行 。任務(wù)2 在數(shù)據(jù)庫表中更新記錄根據(jù)需要可以修改其默認(rèn)

16、的字符集 。 更新數(shù)據(jù)表的字符集使用 ALTER 命令 , 語法格式如下 : ALTER table 表名 CONVERT to character SET 新字符集 ; 更新數(shù)據(jù)表中字段的字符集同樣使用 ALTER 命令 , 語法格式如下 : ALTER table 表名 MODIFY column 字段名 character SET 新字符集 not null; 任務(wù)2 在數(shù)據(jù)庫表中更新記錄 更新操作與字符集在數(shù)據(jù)庫應(yīng)用中 , 經(jīng)常希望在每次插入新記錄時(shí) , 系統(tǒng)會自動生成字段的主鍵值 , 這可以 通過為表主鍵添加 AUTO_ INCREMENT 關(guān)鍵字來實(shí)現(xiàn) 。 一個(gè)表只能有一個(gè)字段使用

17、 AUTO_ INCREMENT 約束 , 且該字段必須為主鍵的一部 分 。A UTO_ INCREMENT 約束的字段可以是任何整數(shù)類型 (t inyint、 smallint、 int、 bigint) 。 默認(rèn)的 , 在 My SQL 中由 AUTO_ INCREMENT 約束 的字段初始值為 1, 每新增一條記 項(xiàng)目五 在 My SQL 數(shù)據(jù)庫中插入 、 更新與刪除數(shù)據(jù) 167 錄 , 字段值自動加 1。 任務(wù)2 在數(shù)據(jù)庫表中更新記錄 設(shè)置自增字段如果在創(chuàng)建表的時(shí)候 , 未為字段設(shè)置 AUTO_ INCREMENT 約束 , 那么可以使用 ALTER 命令設(shè)置該字段的 AUTO_ IN

18、CREMENT 約束 。 在為字段設(shè)置 AUTO_ INCREMENT 約束 時(shí) , 必須已經(jīng)確定該字段是表的主鍵字段 。 任務(wù)2 在數(shù)據(jù)庫表中更新記錄 設(shè)置自增字段在 My SQL 數(shù)據(jù)庫中 , 可以使用 UPDATE 語句更新表中的記錄 , 可以更新特定的行或者 同時(shí)更新所有的行 。 語法格式如下 : UPDATE 表名 SET 變更后的信息 WHERE 子句 ; 任務(wù)2 在數(shù)據(jù)庫表中更新記錄 使用 UPDATE 語句更新表中數(shù)據(jù)1. 單表的 UPDATE 語句 : UPDATE L OW_ PRIORITY I GNORE 表名 SET 字段 1= 值 1 , 字段 2= 值 2 W H

19、ERE 條件表達(dá)式 O RDER BY L IMIT row_ count任務(wù)2 在數(shù)據(jù)庫表中更新記錄 使用 UPDATE 語句更新表中數(shù)據(jù)2. 多表的 UPDATE 語句 : UPDATE L OW_ PRIORITY I GNORE 表名 SET 字段 1= 值 1 , 字段 2= 值 2 W HERE 條件表達(dá)式 SET 子句指示要修改哪些字段以及這些字段相應(yīng)的字段值 。W HERE 子句指定應(yīng)更新 哪些行 。 如果沒有 WHERE 子句 , 則更新所有的行 。 如果指定了 ORDER BY 子句 , 則按照被 指定的順序?qū)π羞M(jìn)行更新 。L IMIT 子句用于給定一個(gè)限值 , 限制可以被

20、更新的行的數(shù)目 。任務(wù)2 在數(shù)據(jù)庫表中更新記錄 使用 UPDATE 語句更新表中數(shù)據(jù)在數(shù)據(jù)庫中 , 有時(shí)某些數(shù)據(jù)已經(jīng)失去意義或者錯(cuò)誤時(shí)就需要將它們刪除 。 在 My SQL 中 有兩種方法可以刪除數(shù)據(jù) , 一種是 DELETE 語句 , 另一種是 TRUNCATE TABLE 語句 。 DELETE 語句可以通過 WHERE 子句對要?jiǎng)h除的記錄進(jìn)行選擇 。 而使用 TRUNCATE T ABLE 語句將刪除表中的所有記錄 。 因此 , 在使用時(shí) DELETE 語句更靈活 。任務(wù)3 在數(shù)據(jù)庫表中刪除記錄通??梢允褂?DELETE FROM 語句來刪除 My SQL 數(shù)據(jù)表中的記錄 。 語法格式如

21、下 : DELETE FROM 表名 W HERE 條件表達(dá)式 (1 ) 如果沒有指定 WHERE 子句 ,M y SQL 表中的所有記錄將被刪除 。 (2 ) 可以在 WHERE 子句中指定任何條件 (3 ) 可以在單個(gè)表中一次性刪除記錄 。任務(wù)3 在數(shù)據(jù)庫表中刪除記錄 使用 DELETE 語句刪除表中記錄在 My SQL 數(shù)據(jù)庫中 , 還有一種方式可以刪除表中的所有記錄 , 即使用 TRUNCATE TABLE 語句 。 使用 TRUNCATE TABLE 語 句 可 以 刪 除 表 中 的 所 有 記 錄 , 但 是 TRUNCATE TABLE 語句不能與 WHERE 子句一起使用 。

22、 語法格式如下 : TRUNCATE TABLE 表名 ; 任務(wù)3 在數(shù)據(jù)庫表中刪除記錄 使用 TRUNCATE 清空表記錄在使用 這 DELETE 語 句 和 TRUNCATE TABLE 語 句 刪 除 記 錄 時(shí) , 請 注 意 二 者 的 區(qū)別 : (1 )D ELETE 語句 , 后面可以跟 WHERE 子句 , 通常指定 WHERE 子句中的條件表達(dá)式 , 只刪除滿足條 件 的 部 分 記 錄 , 而 TRUNCATE TABLE 語 句 , 只 能 用 于 刪 除 表 中 的 所 有 記錄 。 (2 ) 使用 DELETE 語句 , 刪除表中所有記錄后 , 向表中添加記錄時(shí) ,

23、自動增加字段的值 , 其 新值為刪除時(shí)該字段的最大值加 1, 也就是在原來的基礎(chǔ)上遞增 ( 如刪除時(shí)該字段最大值為 100, 則再次添加記錄時(shí) , 新記錄的該字段值為 101) 。 而使用 TRUNCATE 語句 , 刪除表中的 數(shù)據(jù)后 , 向表中添加記錄時(shí) , 自動增加字段的默認(rèn)初始值重新從 1 開始 , 任務(wù)3 在數(shù)據(jù)庫表中刪除記錄 使用 TRUNCATE 清空表記錄3.DELETE 語句 , 每刪除一條記錄 , 都會在日志中記錄 , 而使用 TRUNCATE TABLE 語句 , 不 會 在 日 志 中 記 錄 刪 除 的 內(nèi) 容 , 因 此 ,T RUNCATE TABLE 語 句 的 執(zhí) 行 效 率 比 DELETE 語句高 。 不管使用 DELETE 語句或者 TRUNCATE TABLE 語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論