前提要述:參考書籍《MySQL必知必會》mysql
《MySQL必知必會》是先講了查詢,可是沒有記錄就沒法查詢,因此先將如何添加數據。sql
表已經知道怎麼建立了,隨便創兩張。數據庫
MySQL使用 INSERT來插入(或添加)行(記錄)到數據庫表中。插入可用如下幾種方式使用:安全
什麼叫完整的行,即插入的有效數據均可以對應表中的每一列。性能
把數據插入表中,最簡單的方法是使用基本的INSERT語法,須要指定表名和被插入到新行中的值,格式:code
# 寫法: INSERT INTO <table_name> VALUES(value1,value2,...); # 規範寫法: INSERT INTO <table_name>(field1, field2, ...) VALUES(value1,value2,...);
解釋:索引
例子:在學生表中插入數據開發
INSERT INTO student(stu_id, stu_name, stu_sex) VALUES(1, '張三', '男');
注意:字符串或字符須要使用''(單引號)圈起來。字符串
輸出:若是成功的話table
Query OK, 1 row affected (0.01 sec)
而若是在主鍵使用了自增加(AUTO_INCREMENT),那麼則能夠這樣寫
INSERT INTO student(stu_id, stu_name, stu_sex) VALUES(null, '張三', '男');
或者,不寫主鍵:
INSERT INTO student(stu_name, stu_sex) VALUES('張三', '男');
也就是插入時,在主鍵的位置直接插入null或者不寫默認就是賦給null,MySQL會由於AUTO_INCREMENT本身給它賦值。
INSERT LOW_PRIORITY INTO
INSERT能夠插入一行到一個表中,也能夠插入多行到一個表中,第一種方式就是寫多條INSERT語句,還有一種方式就是在一條INSERT語句中插入多行。
語法:
INSERT INTO <table_name>( field1, field2, ... ) VALUES( valueA1, valueA2, ... ), ( valueB1, valueB2, ... );
此寫法能夠提供INSERT的性能,由於MySQL用單條INSERT語句處理多個插入比使用多條INSERT快。
INSERT語句能夠利用一條SELECT語句查詢的結果插入到表中。也就是所謂的INSERT SELECT,它是由一條INSERT語句和一條SELECT語句構成。
好比我須要把一張表的數據複製到另外一張表,語法:
INSERT INTO <new_table_name>(field1, field2, ...) SELECT field1, field2 FROM <old_table_name>; # 或 也就是列名能夠不一樣 INSERT INTO <new_table_name>(field1, field2, ...) SELECT f1, f2 FROM <old_table_name>;
注意:若是新表不存在則報錯。
解釋: