mysql> insert into customers -> values(NULL, -> 'Pep E.LaPew' -> ,'100 Main Street', -> 'Los Angeles', -> 'CA', -> '90046', -> 'USA', -> NULL, -> NULL);
像這種插入方式,意在給每一行的全部字段都插入一個值。可是在表的結構改變的時候,這種方式就起不到效果了。因此咱們最好仍是指定字段名字的形式插入數據。mysql
mysql> insert into customers(cust_name, -> cust_address, -> cust_city, -> cust_state, -> cust_zip, -> cust_country, -> cust_contact, -> cust_email) -> values('Pep E.LaPew', -> '100 Main Street', -> 'Los Angeles', -> 'CA', -> '90046', -> 'USA', -> NULL, -> NULL);
咱們在表名的後面加一個括號指定了字段名,不管表結構是否改變,均可以插入。sql
注意點:數據庫
如上圖兩個框中所示,用一個values,把要插入的數據分別用括號括起來,中間逗號隔開便可。函數
此技術能夠提升數據庫處理的性能,由於MySQL用單條 INSERT 語句處理多個插入比使用多條 INSERT語句快。性能
咱們能夠把從一張表中檢索出的數據直接插入到另外一張表中,經過使用insert ... select語句。設計
mysql> insert into customers(cust_id, -> cust_contact, -> cust_email, -> cust_name, -> cust_address, -> cust_city, -> cust_zip, -> cust_country) -> select cust_id, //檢索的數據 -> cust_contact, -> cust_email, -> cust_name, -> cust_address, -> cust_city, -> cust_zip, -> cust_country from custnew;
上述就是把select...from custnew中的數據檢索出來,而後插入到customers表指定的字段中去。code
注意:blog
update關鍵字用於修改表中數據,分爲三部分:索引
以下:事務
mysql> update customers -> set cust_email = 'elmer@fudd.com' -> where cust_id = 10005;
若是用 UPDATE 語句更新多行,而且在更新這些
行中的一行或多行時出一個現錯誤,則整個 UPDATE 操做被取消(錯誤發生前更新的全部行被恢復到它們原來的值)。爲使是發生錯誤,也繼續進行更新,可以使用IGNORE關鍵字,以下所示:
UPDATE IGNORE customers…
更加簡單:
過濾條件。
以下:
mysql> delete from customers
-> where cust_id = 10006;
咱們再進行更新和刪除操做以前,應該先使用select語句,看過濾檢索出來的數據是否是咱們想要更新或者刪除的記錄,確保正確的值被更新。
格式爲:
create table 表名
(字段名1 數據類型1 備註1
字段名2 數據類型2 備註2...主鍵(字段名)
)引擎=引擎名;
例子:
CREATE TABLE customers ( cust_id int NOT NULL AUTO_INCREMENT, cust_name char(50) NOT NULL , cust_address char(50) NULL , cust_city char(50) NULL , cust_state char(5) NULL , cust_zip char(10) NULL , cust_country char(50) NULL , cust_contact char(50) NULL , cust_email char(255) NULL , PRIMARY KEY (cust_id) ) ENGINE=InnoDB;
最後理解NULL的意思:
不要把 NULL 值與空串相混淆。NULL值是沒有值,它不是空串。==若是指定''(兩個單引號,其間沒有字符),這在 NOT NULL 列中是容許的。空串是一個有效的值,它不是無值。NULL 值用關鍵字 NULL 而不是空串指定。==
CREATE TABLE orderitems ( ... quantity int NOT NULL DEFAULT 1, ... ) ENGINE=InnoDB;
如上,咱們能夠指定默認值,當不給插入數據的時候不給quanlity指定值時,就用默認值1寫入。
不容許函數做爲默認值。
理想狀態下,當表中存儲數據之後,該表就不該該再被更新。在表的設計過程當中須要花費大量時間來考慮,以便後期不對該表進行大的改動。
操做爲:
mysql> ALTER TABLE vendors -> ADD vend_phone CHAR(20);
這條語句給 vendors表增長一個名爲vend_phone的列,必須明確其數據類型。
mysql> ALTER TABLE vendors -> DROP COLUMN vend_phone;
注意要使用DROP COLUMN關鍵詞。
drop table table_name;
RENAME TABLE table_name1 TO table_name2;