產(chǎn)品操作MySQL第4篇 – 數(shù)據(jù)操作

MYSQL

本資料為產(chǎn)品崗位作為日常工作參考私恬,語言口語化

At 2019/4/15 By David.Yang


數(shù)據(jù)操作最近本的4中情況,增炼吴、刪本鸣、改、查缺厉,

即添加數(shù)據(jù)永高、刪除數(shù)據(jù)、修改數(shù)據(jù)提针、查詢數(shù)據(jù)命爬。


增(INSERT語句)

往數(shù)據(jù)表當中插入數(shù)據(jù)可以單條插入,也可以批量多條插入辐脖,


語法:

INSERT INTO table_name ( field1, field2,...fieldN )

? ? ? ? ? ? ? ? ? ? ? VALUES

? ? ? ? ? ? ? ? ? ? ? ( value1, value2,...valueN );

table_name:要插入數(shù)據(jù)的表名

field*:插入數(shù)據(jù)的字段

value*:插入數(shù)據(jù)字段對應(yīng)的數(shù)據(jù)值


數(shù)據(jù)單條插入

演示:

還記得我們之前設(shè)計的學(xué)生表么饲宛?

就是準備放楊過的那個表。

我們現(xiàn)在準備在學(xué)生表當中把楊過這小子登記進去嗜价,

表示這小子報名入班艇抠,準備學(xué)武功了幕庐。



根據(jù)INSERT語句我們組裝一下把楊過錄入學(xué)生表的SQL語句改怎么寫。


SQL

INSERT INTO students(name, gender, age, dynasty, address, class)

VALUES

('楊過', 2, '14', '南宋', '', 1);


Query OK, 1 row affected (0.01 sec)


看到Query OK,說明執(zhí)行成功了家淤,

1 row affected 代表一條數(shù)據(jù)受影響進去了异剥,


如果不放心,想看看數(shù)據(jù)絮重,執(zhí)行select查看就可以了


SQL

mysql>select * from students;

select語句后面會詳細講解


SQL解釋:

INSERT INTO students (name, gender, age,dynasty, address, class)

VALUES

('楊過', 2, '14', '南宋', '', 1);


準備往學(xué)生表插入數(shù)據(jù)冤寿,


疑問:

? 為什么沒有學(xué)號number呢?

我們在設(shè)計數(shù)據(jù)表時使number(學(xué)號)這個字段擁有了自增屬性:

`number` int(11) NOT NULL AUTO_INCREMENT COMMENT '學(xué)號',

這表示數(shù)據(jù)庫會自己把這個字段進行填充青伤,

并且時12345…按照順序自增的督怜,


這樣的好處是我們不需要自己去維護學(xué)生的學(xué)號,

而且數(shù)據(jù)庫能保證每個學(xué)生的學(xué)號是不會重復(fù)狠角,具有唯一性号杠。


所以我們在插入數(shù)據(jù)時,就不需要指定number了丰歌,

當然也就不需要給他賦值了姨蟋,因為數(shù)據(jù)庫幫我們把這件事做了。


當然动遭,你也可以自己維護一個學(xué)生號字段芬探,

插入數(shù)據(jù)時使用自己生成的學(xué)生號,不使用數(shù)據(jù)庫的厘惦。


? 為什么沒有deleted字段呢偷仿?

因為我們在設(shè)計數(shù)據(jù)表的時候,deleted字段指定了默認值呀宵蕉。

`deleted` int(2) NOT NULL DEFAULT '0' COMMENT '是否刪除 0未刪除 1已刪除',


所以數(shù)據(jù)庫自己會默認填寫0進去酝静,

你可以傳值,這樣數(shù)據(jù)庫就以你的數(shù)據(jù)為準了羡玛。


? INSERT插入數(shù)據(jù)時别智,非空值有什么需要注意的么?

如果設(shè)計數(shù)據(jù)表時稼稿,限定字段是NOT NULL薄榛,

但是又沒有給默認值DEFAULT XX,

這時候在插入數(shù)據(jù)時一定要有這個字段以及對應(yīng)的數(shù)據(jù)让歼。


比如

假使有學(xué)生成績表敞恋,設(shè)計了score(分數(shù))是NOT NULL,

這個地方肯定不能給定默認值谋右,

因為業(yè)務(wù)上分數(shù)是學(xué)生真實的考分硬猫,

總不能有默認60分,


這時候在插入數(shù)據(jù)時,需要有score字段啸蜜,且給score字段的分數(shù)值寫上坑雅。

INSERT INTO examsxxx(name, score, xxx)

VALUES

('楊過', 59, 'xxx');


數(shù)據(jù)批量插入

演示:

一條一條插入太累?

我們可以對數(shù)據(jù)庫進行數(shù)據(jù)的批量插入衬横。


根據(jù)INSERT語句我們組裝一下把所有學(xué)生錄入學(xué)生表的SQL語句改怎么寫裹粤。


SQL

INSERT INTO students (name, gender, age, dynasty, address, class)

VALUES

('小龍女', 1, '18', '南宋', '', 1),

('公孫綠萼', 1, '16', '南宋', '', 1),

('郭襄', 1, '6', '南宋', '', 1),

('郭芙', 1, '18', '南宋', '', 1),

('郭破虜', 2, '6', '南宋', '', 1),

('耶律齊', 2, '18', '南宋', '', 1),

('耶律燕', 1, '16', '南宋', '', 1),

('完顏萍', 1, '16', '南宋', '', 1),

('程英', 1, '14', '南宋', '', 1),

('陸無雙', 1, '14', '南宋', '', 1),

('霍都', 2, '20', '南宋', '', 1),

('達爾巴', 2, '21', '南宋', '', 1),

('武敦儒', 2, '18', '南宋', '', 1),

('武修文', 2, '18', '南宋', '', 1),

('趙志敬', 2, '18', '南宋', '', 1),

('洪凌波', 1, '18', '南宋', '', 1);


Query OK, 16 rows affected (0.02 sec)

Records: 16? Duplicates: 0? Warnings: 0


16條數(shù)據(jù)插進去了,


如果不放心冕香,想看看數(shù)據(jù)蛹尝,執(zhí)行select查看就可以了

SQL

mysql> select * from students;


再補一些數(shù)據(jù),后面會用到

SQL

INSERT INTOstudents (name, gender, age, dynasty, address, class)

VALUES

('路人1', 1, '18', '南宋', '', 1),

('路人2', 1, '16', '南宋', '', 1),

('路人3', 1, '6', '南宋', '', 1),

('路人4', 1, '18', '南宋', '', 1),

('路人5', 2, '6', '南宋', '', 1),

('路人6', 2, '18', '南宋', '', 1),

('路人7', 1, '16', '南宋', '', 1),

('路人8', 1, '16', '南宋', '', 1),

('路人9', 1, '14', '南宋', '', 1),

('路人10', 1, '14', '南宋', '', 1);


mysql>select * from students;


到此我們已經(jīng)學(xué)會了兩種數(shù)據(jù)的插入方式悉尾。


刪(DELETE語句)

數(shù)據(jù)刪除是一個敏感的事情,

一般線上進行數(shù)據(jù)操作挫酿,都不會進行數(shù)據(jù)的真刪除构眯,

而是在每一張數(shù)據(jù)表中放一個字段,

專門用來標記數(shù)據(jù)的狀態(tài)早龟,

比如我們就使用deleted字段來表述數(shù)據(jù)的刪除狀態(tài)

0未刪除 1已刪除


偽刪除

我們將楊過惫霸,這小子的登記狀態(tài)有正常的數(shù)據(jù)狀態(tài),

修改為已刪除葱弟。


通過偽刪除來實現(xiàn)本質(zhì)其實是修改楊過這條數(shù)據(jù)deleted的值壹店,

將他有0改成1,

在邏輯上他就是一條已刪除的數(shù)據(jù)了芝加。


語法:

UPDATE `數(shù)據(jù)表名` SET `更新的字段` = 更新的值 [完整的更新條件]


示范

示范:


SQL

mysql> UPDATE `students` SET `deleted` = 1 WHERE `number` = 1;

Query OK, 1 row affected (0.06 sec)

Rows matched: 1? Changed: 1? Warnings: 0


SQL解釋:

楊過的學(xué)號是1硅卢,

即將學(xué)號 = 1的數(shù)據(jù),

deleted改為1


簡單示范藏杖,下文會講解UPDATE


mysql> select * from students;


真刪除

真刪除就是把這條數(shù)據(jù)進行物理上的刪除将塑,

就是說刪完這條數(shù)據(jù)就不在了,

你就找不到這條數(shù)據(jù)了蝌麸,


也就不能進行簡單的數(shù)據(jù)誤刪除恢復(fù)点寥。


語法:

DELETE FROM `table_name` [WHERE Clause]

table_name:要操作的數(shù)據(jù)表名

WHERE Clause:刪除數(shù)據(jù)的條件(即滿足這個條件,就將數(shù)據(jù)刪除)


WHERE可以接多個條件来吩,用AND拼接敢辩,

比如:

WHERE id = 1 AND name=‘金輪法王’


示范

示范:

我們通過沒什么用的test表來操作

先看看有哪些數(shù)據(jù)

SQL

mysql> select * from test;


SQL

mysql>DELETE FROM `test` WHERE `int` = '0001';

Query OK, 1 row affected (0.01 sec)


mysql>select * from test;


SQL解釋:

DELETE FROM `test` WHERE `int` = '0001';

DELETE:是執(zhí)行刪除語句,


FROM `test`:表示‘從’數(shù)據(jù)表‘test’去執(zhí)行刪除


WHERE `int` = '0001':WHERE是刪除條件關(guān)鍵字弟疆,后面接刪除數(shù)據(jù)滿足的條件是什么戚长。


改(UPDATE語句)

語法:

UPDATE table_name

SET

? ? column_name1 = expr1,

? ? column_name2 = expr2,

? ? ...

WHERE

? ? condition;


示范

示范:

將學(xué)號>=18的,并且未刪除的學(xué)生兽间,

分配到民兵班去历葛,

并且地址都改為未知


SQL

UPDATE `students`

SET

`address` = '未知',

`class` = 2

WHERE

`deleted` = 0 AND `number` >= 18;



SQL解釋:


查(SELECT語句:基礎(chǔ)查詢)

數(shù)據(jù)的查詢是我們?nèi)粘9ぷ鲬?yīng)用最多的場景,

不管是數(shù)據(jù)的驗證,

統(tǒng)計恤溶、分析乓诽,

查詢是一切的基礎(chǔ)。


語法:

SELECT column_name,column_name

FROM table_name

[WHERE Clause]

[LIMIT N][ OFFSET M]


SELECT column:查詢語句咒程,SELECT 要查詢的字段(1-n)

FROM table_name:從目標數(shù)據(jù)表查詢

WHER:滿足查詢的條件

LIMIT OFFSET:查詢偏移量鸠天,比如查詢第10 – 20的數(shù)據(jù)



示范

示范:

SQL

SELECT

number, name, age, dynasty

FROM

students

WHERE

deleted = 0

LIMIT 4 OFFSET 2;



SQL解釋:

SELECT結(jié)果只顯示你需要的字段,

所以你指定你想要看到的字段他就給你帐姻;


查詢需要指定你查詢的表


WHERE條件如果有需要可以加上


LIMIT表示你想要返回的數(shù)據(jù)量有幾條稠集,查詢時請一定加上LIMIT


OFFSET表示數(shù)據(jù)查詢的偏移量

默認從0開始


比如:

|?????9 |完顏萍??????|? 16 |南宋??? |

|????10 |程英????????|? 14 |南宋??? |

|????11 |陸無雙??????|? 14 |南宋??? |

|????12 |霍都????????|? 20 |南宋??? |

|????13 |達爾巴??????|? 21 |南宋??? |

|????14 |武敦儒??????|? 18 |南宋??? |

|????15 |武修文??????|? 18 |南宋??? |


LIMIT 4 OFFSET 10;

會返回11 12 13 14數(shù)據(jù)


+--------+-----------+-----+---------+

| number | name????? | age | dynasty |

+--------+-----------+-----+---------+

|????11 |陸無雙???|? 14 |南宋??? |

|????12 |霍都?????|? 20 |南宋??? |

|????13 |達爾巴???|? 21 |南宋??? |

|????14 |武敦儒???|?18 |南宋??? |

+--------+-----------+-----+---------+


如果你想返回所有數(shù)據(jù)字段,可以通過*來實現(xiàn)


示范:


SQL

SELECT

?????? *

FROM

?????? students

WHERE

?????? deleted = 0

LIMIT 4 OFFSET2;

SQL解釋:

SELECT * 表示你要求查詢結(jié)果中返回所有數(shù)據(jù)字段


到此為止饥瓷,基本的增剥纷、刪、改呢铆、查就講完了晦鞋。


后續(xù)將需要了解條件查詢、通配符棺克、排序等悠垛。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娜谊,隨后出現(xiàn)的幾起案子确买,更是在濱河造成了極大的恐慌,老刑警劉巖纱皆,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件湾趾,死亡現(xiàn)場離奇詭異,居然都是意外死亡抹剩,警方通過查閱死者的電腦和手機撑帖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澳眷,“玉大人胡嘿,你說我怎么就攤上這事∏唬” “怎么了衷敌?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拓瞪。 經(jīng)常有香客問我缴罗,道長,這世上最難降的妖魔是什么祭埂? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任面氓,我火速辦了婚禮兵钮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舌界。我一直安慰自己掘譬,他們只是感情好,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布呻拌。 她就那樣靜靜地躺著葱轩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藐握。 梳的紋絲不亂的頭發(fā)上靴拱,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音猾普,去河邊找鬼袜炕。 笑死,一個胖子當著我的面吹牛抬闷,可吹牛的內(nèi)容都是我干的妇蛀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼笤成,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了眷茁?” 一聲冷哼從身側(cè)響起炕泳,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎上祈,沒想到半個月后培遵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡登刺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年籽腕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纸俭。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡皇耗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出揍很,到底是詐尸還是另有隱情郎楼,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布窒悔,位于F島的核電站呜袁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏简珠。R本人自食惡果不足惜阶界,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膘融,春花似錦芙粱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屯耸,卻和暖如春拐迁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疗绣。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工线召, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人多矮。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓缓淹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親塔逃。 傳聞我的和親對象是個殘疾皇子讯壶,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容