MySQL 24小時入門筆記(3),插入和刪除,刪庫到跑路 原

MySQL 24小時入門筆記

插入

INSERT

INSERT用法非常簡單。現在我們有表students如下。

列名類型約束
idintprimary key
namechar(16)NOT NULL

向裏面插入一條學號爲1,姓名爲學姐的學生,只需要寫如下SQL語句。

INSERT INTO students VALUES (1, '學姐');

語法

INSERT INTO [表] VALUES (列值1,列值2,...);

其中INSERT語句有一個簡單的變體,能比較明確地指明將值交付給哪個列。

INSERT INTO students (id, name) VALUES (1, '學妹');

這樣寫相當於指明瞭1應該是id'學妹'應該是name

插入多條也很簡單,只要在VALUES後面跟更多小括號包圍的值集合就行了,記得拿括號分隔,下面給個例子。

INSERT INTO students (id, name)
VALUES (1, '學渣'), (2, '學霸'), (3, '學神');

INSERT SELECT

這個寫法比較有意思,從一個表查詢出數據,並插入另一個表。

舉個例子來說,我們有兩個班級表,分別叫學渣班補習班,一旦學渣成績爛到一定程度,那麼我們就要把他分配到補習班裏去強制補習。

怎麼做呢?看下面啦。

INSERT INTO 補習班(name,score) 
	SELECT 學渣班.name, 學渣班.score 
    FROM 學渣班 
    	WHERE 學渣班.score < 10;

值得注意的是,INSERT 填充補習班表時用的並不是你SELECT的列名,而是SELECT後列名的順序,來對應到要INSERT的表的列上。

其他的寫法和SELECT相同。

修改

UPDATE

UPDATE語句的作用是修改現存行的數據,非常值得注意的是用UPDATE語句時一定要小心寫WHERE子句,不然就等着刪庫跑路吧。

依然舉個實際栗子,學號爲10的學生成績由於作弊而被取消了,我們要更新他的成績爲0分,這真是個悲傷的故事:P

UPDATE students SET score = 0 WHERE id = 10;

語法是這樣的。

UPDATE [表名] SET [列名] = [新值] WHERE [條件];

更新多條的話是這樣的

UPDATE [表名] 
SET [列1] = [新值],
    [列2] = [新值],
    ...
    [列N] = [新值]
WHERE [條件];

千萬小心,如果沒有 WHERE子句的話,指定的列會全部被設置成這個值。這樣一來,所有的學生都變成了0分......你會被手撕了的。

刪除

DELETE

DELETE的作用是刪除行,同樣的,萬分注意WHERE子句一定要正確編寫,不然真的要刪庫跑路了。

同樣以之前那位作弊的同學爲例,很遺憾,他又一次作弊被抓住了,傳說中的高科技AR技術作弊眼鏡也沒能讓他逃過監考員的火眼金睛,於是他被退學了......

另一個悲傷的故事:P

DELETE FROM students WHERE id = 10;

語法是這樣子的。

DELETE FROM [表名] WHERE [條件];

如果不寫WHERE的話......找個好點的新工作吧,不要再去寫SQL了,ORM多好。

注意,不寫WHERE子句會刪除這個表裏的所有行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章