日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

MySQL 增加、更新、删除

發(fā)布時(shí)間:2024/7/5 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 增加、更新、删除 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1. 增加 INSERT
    • 2. 更新 UPDATE
    • 3. 刪除 DELETE
    • 練習(xí) LeetCode 196. 刪除重復(fù)的電子郵箱
    • 練習(xí) LeetCode 627. 交換工資

學(xué)習(xí)自 廖雪峰的官方網(wǎng)站

1. 增加 INSERT

  • 添加一條記錄
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (1,2, ...);INSERT INTO students (class_id, name, gender, score) VALUES (2, '大牛', 'M', 80);

  • 沒(méi)有列出id字段,因?yàn)閕d字段是一個(gè)自增主鍵,由數(shù)據(jù)庫(kù)自己推算

  • 如果一個(gè)字段有默認(rèn)值,那么在INSERT語(yǔ)句中可以不出現(xiàn)

  • 字段順序隨意,前后兩個(gè)()內(nèi)一一對(duì)應(yīng)即可,如 INSERT INTO students (score, gender, name, class_id) …,對(duì)應(yīng)的VALUES變成(80, 'M', '大牛', 2)

  • 一次添加多條記錄,在VALUES子句中指定多個(gè)記錄值,每個(gè)記錄是由(...)包含的一組值

INSERT INTO students (class_id, name, gender, score) VALUES(1, '大寶', 'M', 87),(2, '二寶', 'M', 81);

2. 更新 UPDATE

  • 更新一條記錄
UPDATE <表名> SET 字段1=1, 字段2=2, ... WHERE ...;UPDATE students SET name='大牛', score=66 WHERE id=1; 把id=1的人的名字和得分改掉
  • 更新多條記錄
UPDATE students SET name='小牛', score=77 WHERE id>=5 AND id<=7;
  • 使用表達(dá)式更新
UPDATE students SET score=score+10 WHERE score<80; 得分小于80的,都加10
  • 如果where沒(méi)有匹配到行,不報(bào)錯(cuò),無(wú)操作
  • 操作時(shí),如果沒(méi)有where子句,會(huì)對(duì)整張表操作,小心

3. 刪除 DELETE

DELETE FROM <表名> WHERE ...;DELETE FROM students WHERE id=1; 刪除 id=1 的學(xué)生 DELETE FROM students WHERE id>=5 AND id<=7; 刪除 多個(gè)學(xué)生
  • 如果where沒(méi)有匹配到行,不報(bào)錯(cuò),無(wú)操作
  • 操作時(shí),如果沒(méi)有where子句,會(huì)刪除整張表,小心

練習(xí) LeetCode 196. 刪除重復(fù)的電子郵箱

題目:

編寫(xiě)一個(gè) SQL 查詢,來(lái)刪除 Person 表中所有重復(fù)的電子郵箱,重復(fù)的郵箱里只保留 Id 最小 的那個(gè)。

+----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | | 3 | john@example.com | +----+------------------+ Id 是這個(gè)表的主鍵。 例如,在運(yùn)行你的查詢語(yǔ)句之后,上面的 Person 表應(yīng)返回以下幾行: +----+------------------+ | Id | Email | +----+------------------+ | 1 | john@example.com | | 2 | bob@example.com | +----+------------------+ 提示: 執(zhí)行 SQL 之后,輸出是整個(gè) Person 表。 使用 delete 語(yǔ)句。

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/delete-duplicate-emails
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

解題:

自連接比對(duì) # Write your MySQL query statement below DELETE p1 FROM Person p1, Person p2 WHERE p1.Email = p2.Email AND p1.Id > p2.Id;

1436 ms

# Write your MySQL query statement below DELETE FROM Person WHERE Id NOT IN (SELECT Id FROM (SELECT MIN(Id) Id FROM Person GROUP BY Email) tempTableName );

1169 ms

練習(xí) LeetCode 627. 交換工資

題目:

給定一個(gè) salary 表,如下所示,有 m = 男性 和 f = 女性 的值。
交換所有的 f 和 m 值(例如,將所有 f 值更改為 m,反之亦然)。
要求只使用一個(gè)更新(Update)語(yǔ)句,并且沒(méi)有中間的臨時(shí)表。

注意,您必只能寫(xiě)一個(gè) Update 語(yǔ)句,請(qǐng)不要編寫(xiě)任何 Select 語(yǔ)句。

例如: | id | name | sex | salary | |----|------|-----|--------| | 1 | A | m | 2500 | | 2 | B | f | 1500 | | 3 | C | m | 5500 | | 4 | D | f | 500 |運(yùn)行你所編寫(xiě)的更新語(yǔ)句之后,將會(huì)得到以下表: | id | name | sex | salary | |----|------|-----|--------| | 1 | A | f | 2500 | | 2 | B | m | 1500 | | 3 | C | f | 5500 | | 4 | D | m | 500 |

來(lái)源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/swap-salary
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

解題:

case <變量> when <value1> then <newValue1> ELSE <newValue2> # Write your MySQL query statement below UPDATE salary SET sex=CASE sex WHEN 'm' THEN 'f'ELSE 'm'END;

or if(condition,true選擇1,not true 選擇2)

# Write your MySQL query statement below update salary set sex = IF(sex = 'm', 'f', 'm')

or 異或

# Write your MySQL query statement below update salary set sex = char(ASCII(sex)^ASCII('m')^ASCII('f'))

更多練習(xí):

  • LintCode 1927. 硬幣翻面
update coin set side=if(side='n','p','n') 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的MySQL 增加、更新、删除的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。