目錄
前言:
一.DML添加數(shù)據(jù)
1.1給指定字段添加數(shù)據(jù)
1.2給全部字段添加數(shù)據(jù)
1.3批量添加數(shù)據(jù)
二.DML修改數(shù)據(jù)
三.DML刪除數(shù)據(jù)
四.結(jié)尾
前言:
? 時(shí)隔一周,啊蘇今天來更新啦,簡單說說這周在做些什么吧,上課、看書、放松等,哈哈哈,所以博客就這樣被擱了。
? 今天感覺不錯(cuò),給大家?guī)鞤ML操作數(shù)據(jù)的SQL語句和DQL查詢數(shù)據(jù)的SQL語句,分兩篇寫,再寫這周看書的收獲,開整。
一.DML添加數(shù)據(jù)
? 前面學(xué)習(xí)的DDL語句讓我們能夠創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表,創(chuàng)建字段,這就相當(dāng)于一個(gè)軀殼,本身表里是沒有內(nèi)容的。
? 學(xué)習(xí)完DML語句,就可以為表里添加數(shù)據(jù),不再是一張空表了。
1.1給指定字段添加數(shù)據(jù)
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
? 我們可以想成一張excel表格,假如現(xiàn)在有一張這樣的表格:
? 表名為員工表,字段有序號、姓名、性別、年齡、身份證號、工號、入職時(shí)間。
? 現(xiàn)在廠里開始招人了,招到了一位叫張三的員工,由于還沒入職,所以只需要給除了入職時(shí)間以外的其它字段加數(shù)據(jù)就可以啦。
? 上面是在DG這個(gè)圖形化軟件對數(shù)據(jù)庫進(jìn)行操作。
? 這句代碼的意思是,為emp表添加一條記錄,除entry_time字段沒有添加,效果如下:
? 沒有圖形化界面,用命令行窗口也是可以滴,只是會(huì)有點(diǎn)難記,開發(fā)效率不高。歡迎私信問我如何下載和鏈接MySQL噢。
1.2給全部字段添加數(shù)據(jù)
insert into 表名 values(值1,值2,...);
? 張三的朋友李四恰好也找到這家廠,發(fā)現(xiàn)張三是廠里第一個(gè)招的員工,李四說:“那不行,我得第一個(gè)入職”,于是:
? ?這句代碼中,表名emp后沒有加字段,表示為所有字段添加數(shù)據(jù),效果如下:
? 相信看完這兩個(gè)例子,大家收獲了知識(shí)點(diǎn),那就是如何指定字段添加數(shù)據(jù),如何為所有字段添加數(shù)據(jù)。
? 還有補(bǔ)充的是:在為字符串和日期數(shù)據(jù)類型添加數(shù)據(jù)的時(shí)候,它的值要加上引號括起來噢;字段和值的順序一 一對應(yīng)。
1.3批量添加數(shù)據(jù)
? 廠里花了一筆資金做了一次廣告,拉來許多想要進(jìn)廠的人,分別是小明、小紅、小藍(lán)由于他們迫不及待想工作。
? 所以在員工登記的時(shí)候,只登記了它們的序號、姓名、性別、工號和入職時(shí)間,身份證信息還沒來得及錄入。
/* 為字段1,字段2等多個(gè)指定字段添加多行數(shù)值 */
insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...);
? 代碼如下:
insert into emp(num,name,gender,age,work_id,entry_time)
values(3,'小明','男','23','00003','2023-06-05'),
(4,'小紅','女','22','00004','2023-06-05'),
(5,'小藍(lán)','男','25','00005','2023-06-05');
? 這段代碼執(zhí)行后,表格里一次性添加了三個(gè)人除身份證號以外的其它信息:
? 我們可以把字段當(dāng)成一個(gè)對象的屬性,每一個(gè)值括號包起來的數(shù)據(jù)都是在描述一個(gè)對象,多個(gè)描述的時(shí)候用逗號隔開。
/* 為所有字段添加多行數(shù)值 */
insert into 表名 values(值1,值2,...),(值1,值2,...)...;
? 為所有字段批量添加數(shù)據(jù)的代碼如上,不同的點(diǎn)就是表名后不要添加字段表示為所有字段添加數(shù)據(jù)。??
? 另外,當(dāng)表名指定所有字段的時(shí)候,和表名后不加字段等效。
二.DML修改數(shù)據(jù)
? 現(xiàn)在的表長這樣:
? ?管理數(shù)據(jù)庫的人核對了一下,發(fā)現(xiàn)張三在6月3號就入職了,現(xiàn)在要把張三那一行的入職時(shí)間修改一下。
update 表名 set 字段1 = 數(shù)值, 字段2 = 數(shù)值,... [where 條件];
? 這句代碼的意思是:update(更新)名為(emp)表中的(某)字段中的值,設(shè)為新的數(shù)值,符合條件的記錄才更改。
? 修改張三入職時(shí)間的代碼如下:
update emp set entry_time = '2023-06-03' where num = 1;
? where num = 1意即符合num為1的記錄進(jìn)行此次修改操作,它起到一個(gè)事前篩選記錄的作用。
? where條件是可以省略的,此時(shí)作用的對象就是整張表,相當(dāng)于對所有記錄的entry_time更改為6月3號。
? 工作完后,小明、小紅、小藍(lán)過來上報(bào)自己的身份證號,現(xiàn)在需要為它們的身份證號加上去。
update emp set id_card = '12345678901234567_' where num = 3 || num = 4 || num = 5;
? 由于每個(gè)人的身份證不一樣,這里博主用_象征性的代表一下,哈哈,翻車了,舉的例子不是很恰當(dāng)。
? 這里的知識(shí)點(diǎn)是,條件可以有多個(gè),它們用代表邏輯的符號連接起來,||(or)是或的意思,num為3或4或5都要進(jìn)行修改。
三.DML刪除數(shù)據(jù)
? 李四工作了半個(gè)月后,想跳槽了,此時(shí)員工信息里需要把李四這一行刪除掉。
delete from emp [where 條件]
? 刪除的一個(gè)代碼如下:
delete from emp where num = 2;
? 當(dāng)數(shù)據(jù)多的時(shí)候,可能查找它的序號是第幾需要多進(jìn)行一步操作,我們可以直接將名字當(dāng)條件進(jìn)行刪除,比如:
delete from emp where = '李四';
? 當(dāng)然重名的另當(dāng)別論,哈哈。
? 和上面的使用where指定記錄進(jìn)行修改一樣,當(dāng)刪除記錄的時(shí)候where條件省略了,就會(huì)刪除表中的所有數(shù)據(jù),很危險(xiǎn)噢(doge)。
delete from emp;
? 刪除表中的所有數(shù)據(jù),和在DDL語句里講的truncate table 表名; 的效果一模一樣。
? 此時(shí)這張表就回爐重造了:
四.結(jié)尾
? 好啦,DML數(shù)據(jù)操作語言就結(jié)束了,如果還留有余味,不妨關(guān)注一下唄~
? 我是小白啊蘇,謝謝你們的支持。
文章來源:http://www.zghlxwxcb.cn/news/detail-477899.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-477899.html
到了這里,關(guān)于【MySQL】數(shù)據(jù)庫SQL語句之DML的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!