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

MySQL 24小時入門筆記

插入

INSERT

INSERT用法很是簡單。如今咱們有表students以下。code

列名 類型 約束
id int primary key
name char(16) NOT NULL

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

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

語法table

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

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

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

這樣寫至關於指明瞭1應該是id'學妹'應該是name語法

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

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的表的列上。tab

其餘的寫法和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子句會刪除這個表裏的全部行。

相關文章
相關標籤/搜索