最基本的crud操作:
增(insert into)
顧名思義,INSERT是用來插入(或添加)行到數(shù)據(jù)庫表的。插入可以用幾種方式使用:
- 插入完整的行;
- 插入行的一部分;
- 插入多行;
- 插入某些查詢的結(jié)果。
首先創(chuàng)建一個表
CREATE TABLE customers ( userid int NOT NULL AUTO_INCREMENT, name char(50) NOT NULL, address char(200) NOT NULL, email char(50) NOT NULL, PRIMARY KEY(userid) );
插入完整行
INSERT INTO customers values(10010,'李同學','北京市朝陽區(qū)','1234567@qq.com')

查詢已插入的數(shù)據(jù):SELECT是最常使用的SQL語句
SELECT * FROM customers;

雖然這種語法很簡單,但并不安全,應該盡量避免使用。上面的SQL語句高度依賴于表中列的定義次序,并且還依賴于其次序容易獲得的信息。即使可得到這種次序信息,也不能保證下一次表結(jié)構變動后各個列保持完全相同的次序。因此,編寫依賴于特定列次序的SQL語句是很不安全的。如果這樣做,有時難免會出問題。
根據(jù)列插入數(shù)據(jù)
編寫方法如下
INSERT INTO customers(userid,name,adress,email) values('10011','黃同學','北京市通州區(qū)','1234789@qq.com')
此例子完成與前一個INSERT語句完全相同的工作,但在表名后 的括號里明確地給出了列名。在插入行時,MySQL將用VALUES 列表中的相應值填入列表中的對應項。VALUES中的第一個值對應于第一個指定的列名。第二個值對應于第二個列名,如此等等。

注意:
- 一般不要使用沒有明確給出列的列表的INSERT語句。使用列的列表能使SQL代碼繼續(xù)發(fā)揮作用,即使表結(jié)構發(fā)生了變化。
- 不管使用哪種INSERT語法,都必須給出VALUES的正確數(shù)目。如果不提供列名,則必須給每個表列提供一個值。如果提供列名,則必須對每個列出的列給出一個值。如果不這樣,將產(chǎn)生一條錯誤消息,相應的行插入不成功。
多行插入:
INSERT INTO customers(userid,name,adress,email) values ('10011','黃同學','北京市通州區(qū)','1234789@qq.com'), ('10012','黃同學','北京市通州區(qū)','1234789@qq.com'), ('10013','黃同學','北京市通州區(qū)','1234789@qq.com');

將一個表里的數(shù)據(jù)插入到另一個表中
insert into 表 (列名,列名...) select 列名,列名... from 表
下面sql語句實現(xiàn)的功能是將customers中的字段插入到了customers1中

總結(jié): insert into 表 values (值,值,值...) insert into 表 (列名,列名...) values (值,值,值...) insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...) insert into 表 (列名,列名...) select (列名,列名...) from 表
刪除數(shù)據(jù)
為了從一個表中刪除(去掉)數(shù)據(jù),使用DELETE語句??梢詢煞N方式使用DELETE:
-
從表中刪除特定的行; 下面的語句從customers表中刪除一行:
DELETE FROM customers WHERE userid = 10010;
這條語句很容易理解。DELETE FROM要求指定表名(從哪個表中刪除數(shù)據(jù))。WHERE子句過濾要刪除的行。在這個例子中,只刪除同學10010 。如果省略WHERE子句,它將刪除表中每個同學。 DELETE不需要列名或通配符。DELETE刪除整行而不是刪除列。為了刪除指定的列.

-
從表中刪除所有行。
delete from 表
改(更新)
更新(修改)表中的數(shù)據(jù),可使用UPDATE語句??刹捎脙煞N方 式使用UPDATE:
- 更新表中特定行;
- 更新表中所有行。
UPDATE語句非常容易使用,甚至可以說是太容易使用了。基本的 UPDATE語句由3部分組成,分別是:
- 要更新的表;
- 列名和它們的新值;
- 確定要更新行的過濾條件。 示例如下:
UPDATE customers SET email='123@sina.com' where userid=10011;

UPDATE語句總是以要更新的表的名字開始。在此例子中,要更新的表的名字為customers。SET命令用來將新值賦給被更新的列。如這里所示,SET子句設置email列為指定的值:
SET email = ‘123@sina.com’
UPDATE語句以WHERE子句結(jié)束,它告訴MySQL更新哪一行。沒有 WHERE子句,MySQL將會用這個電子郵件地址更新customers表中所有行,這不是我們所希望的。
更新多個列
更新多個列的語法稍有不同:
在更新多個列時,只需要使用單個SET命令,每個“列=值”對之間 用逗號分隔(最后一列之后不用逗號)。在此例子中,更新userid為10012的email和name列。UPDATE customers SET email='345@qq.com', name = '劉起' where userid=10012;

為了刪除某個列的值,可設置它為NULL(注意:該字段在表中的定義必須允許為NULL值才可以)
UPDATE customers SET email = NULL WHERE userid = 10012;
其中NULL用來去除email列中的值。
更新和刪除的指導原則(注意事項)
使用的UPDATE和DELETE語句全都具有WHERE子句,這樣做的理由很充分。如果省略了WHERE子句,則UPDATE或DELETE將被應用到表中所有的行。換句話說,如果執(zhí)行UPDATE而不帶WHERE子句,則表中每個行都將用新值更新。類似地,如果執(zhí)行DELETE語句而不帶WHERE子句,表的所有數(shù)據(jù)都將被刪除。
除非確實打算更新和刪除每一行,否則絕對不要使用不帶WHERE子句的UPDATE或DELETE語句。
保證每個表都有主鍵盡可能像WHERE子句那樣使用它(可以指定各主鍵、多個值或值的范圍)。
在對UPDATE或DELETE語句使用WHERE子句前,應該先用SELECT進行測試,保證它過濾的是正確的記錄,以防編寫的WHERE子句不正確。 最后提示:對于數(shù)據(jù)庫的操作移動要嚴謹,數(shù)據(jù)庫一旦修改,沒有恢復的操作