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 INTO 補習班(name,score) SELECT 學渣班.name, 學渣班.score FROM 學渣班 WHERE 學渣班.score < 10;
值得注意的是,INSERT
填充補習班表時用的並非你SELECT
的列名,而是SELECT
後列名的順序,來對應到要INSERT
的表的列上。tab
其餘的寫法和SELECT
相同。
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
的做用是刪除行,一樣的,萬分注意WHERE
子句必定要正確編寫,否則真的要刪庫跑路了。
一樣以以前那位做弊的同窗爲例,很遺憾,他又一次做弊被抓住了,傳說中的高科技AR技術做弊眼鏡也沒能讓他逃過監考員的火眼金睛,因而他被退學了......
另外一個悲傷的故事:P
DELETE FROM students WHERE id = 10;
語法是這樣子的。
DELETE FROM [表名] WHERE [條件];
若是不寫WHERE
的話......找個好點的新工做吧,不要再去寫SQL
了,ORM多好。
注意,不寫
WHERE
子句會刪除這個表裏的全部行。