小編給大家分享一下中數據表如何實(shí)現數據插入、更新、刪除操作,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、插入數據
格式:INSERT INTO 表名(字段名...)VALUES(值...);
創(chuàng )建環(huán)境
使用person表
CREATE TABLE person
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(40) NOT NULL DEFAULT '',
age INT NOT NULL DEFAULT 0,
info CHAR(50) NULL,
PRIMARY KEY(id)
);
1.1、為表的所有字段插入數據
方式一:INSERT INTO person(id,name,age,info) VALUES(1,'Green',21,'Lawyer');
方式二:INSERT INTO person VALUES(2,'aaa',18,'MAN');
方式三:INSERT INTO person (name,id,age,info) VALUES('bbb',3,17,'haha');
總結:
方式一和方式三說(shuō)明插入數據時(shí)可以不用按照表結構中的順序來(lái),只要給的值與前面字段名一一對應即可,
方式二表明可以忽略字段名,但是其值必須跟表結構中的字段順序一樣。
使用這三種方式去為所有字段插入數據都可以。
1.2、為表的指定字段插入數據
在有時(shí)候,給表中插入記錄行時(shí),字段值不一定要全部都需要手動(dòng)插入,可能id自動(dòng)增長(cháng)的,也有時(shí)某個(gè)字段使用默認值,不用插入值也行,這時(shí)候就需要為表指定字段來(lái)插入數據了。
INSERT INTO person(name,age,info) VALUES('Willam',20,'sports man');
這里就缺少了id字段,但是id字段是AUTO_INCREMENT,不用我們手動(dòng)插入值
1.3、同時(shí)插入多條記錄
格式:INSERT INTO 表名(字段名) VALUES(記錄行值1),(記錄行值2),...;
解釋?zhuān)阂簿褪窍喈斢谝粭l語(yǔ)句插入多條記錄,就不用每次只插入一條數據了
INSERT INTO person(name,age,info) VALUES('qqq',19,'haha'),('eee',14,'heihei'); //插入兩條數據。
同時(shí)插入多條記錄時(shí),會(huì )出現三個(gè)名詞 Records:表明插入的記錄條數 Duplicates:表名插入時(shí)被忽略的記錄,原因可能是這些記錄包含了重復的主鍵值 Warnings:表明有問(wèn)題的數據值,例如發(fā)生數據類(lèi)型轉換。 上面提示的是 2個(gè)Records,確實(shí)是插入了兩條記錄數
1.4、將查詢(xún)結果插入到表中
在有的時(shí)候,可能需要將一張表中的數據搬到另一張表中,但是一條條輸入記錄,很慢,所以就有了這個(gè)將查詢(xún)結果插入到表中,也就是說(shuō),將一張表中查詢(xún)到的結果,全部一次性插入到另一張表中,這樣就很方便了,但是也有前提條件,那就是查詢(xún)的結果的字段個(gè)數和插入到目標表的字段個(gè)數是一樣的,并且數據類(lèi)型也要相同。具體下下面這個(gè)例子。
上面一張person表不夠用,現在在創(chuàng )建一張表。
CREATE TABLE person_old
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(40) NOT NULL DEFAULT '',
age INT NOT NULL DEFAULT 0,
info CHAR(50) NULL,
PRIMARY KEY(id)
);
增加兩條記錄
INSERT INTO person_id VALUES(11,'Harry',20,'studeng'),(12,'Beck',18,'polic');
現在將person_old表中的所有數據轉移到person表中。
INSERT INTO person(id,name,age,info) SELECT id,name,age,info FROM person_old;
這樣看一下,id中間就好像斷了一塊,其實(shí)可以不用添加id字段,只添加后面三個(gè)字段的值
INSERT INTO person(name,age,info) SELECT name,age,info FROM person_old;
不指定id,那么就會(huì )按照person表中id的規則,AUTO_INCREMENT,這里說(shuō)明一下AUTO_INCREMENT的原理,先檢查表中最大的id值,然后往上面加1,每次做就會(huì )先檢測最大的id值是多少?! ?/p>
二、更新數據
格式:UPDATE 表名 SET 字段名=值,字段名=值... WHERE 條件;
解釋?zhuān)和ㄟ^(guò)條件找到要更新數據的那一行記錄,然后通過(guò)SET 字段名=值這樣的形式,寫(xiě)出要更改哪個(gè)字段,并更改為什么值。
UPDATE person SET name = 'xxx' WHERE name='aaa'; //將person表中name=aaa的記錄行更新為name=xxx。
解釋?zhuān)涸镜诙械挠涗沶ame=aaa?,F在改為了xxx??梢酝瑫r(shí)改好多個(gè)值,不一定就只更改名字。主鍵id也能更改,只要主鍵不沖突,隨便改成什么值
UPDATE person SET id = 7 WHERE id = 14; //將id=14的記錄行的id改為7
三、刪除數據
格式:DELETE FROM 表名[WHERE <condition>];
解釋?zhuān)簵l件如果沒(méi)有的話(huà),那么就把表中所有數據度給刪除了。如果有條件的話(huà),就將符合條件的記錄行刪除。
DELETE FROM person WHERE id = 13; //將person表中id=13的記錄行給刪除。
DELETE FROM person; //將person表中所有數據度刪除
四、綜合案例
下面這個(gè)例題想做的人可以做一下,環(huán)境已經(jīng)教大家搭建好了,這些由于比較簡(jiǎn)單,我就不在這里一一解答了。
4.1、創(chuàng )建實(shí)驗環(huán)境
創(chuàng )建books表
CREATE TABLE books
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(40) NOT NULL,
author VARCHAR(200) NOT NULL,
PRICE INT(11) NOT NULL,
pubdate YEAR NOT NULL,
note VARCHAR(255) NULL,
num INT NOT NULL DEFAULT 0
);
4.2、將下表中的路基插入books表中,分別使用不同的方法插入記錄。
4.2.1、指定所有字段名稱(chēng)插入記錄
4.2.2、不指定字段名稱(chēng)插入記錄
4.2.3、同時(shí)插入多條記錄
4.3、將小說(shuō)類(lèi)型novel的書(shū)的價(jià)格度增加5
4.4、將名稱(chēng)為趙六的書(shū)的價(jià)格改為40,并將庫存量num改為26
4.7、刪除庫存為5的記錄
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站