在mysql中要向數據庫中保存數據我們最常用的一種方法就是直接使用Insert into語句來實現了,下面我來給大家詳細介紹Insert into語句用法.
INSERT用于向一個已有的表中插入新行。INSERT…VALUES語句根據明確指定的值插入行。讓我們先來看一下insert語句標準的定義,放在[]內的都是可以省略的:
語法:
- INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
- [INTO] tbl_name [(col_name,...)]
- VALUES ({expr | DEFAULT},...),(...),...
- [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
實例:create table links (name varchar(255) not null default '', address varchar(255) not null default '');
最簡單的插入方法,代碼如下:
- Mysql>insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
- --或
- insert into links values('jerichen','gdsz');
批量保存數據
假如我們想一次性的往數據庫里插入多條數據咋辦?一定要寫多條語句嗎?肯定是不會的,因為MySQL設計的還是很人性的,其提供insert語句的一種非標準格式,即,values(字段值1,字段值2,字段值3),(另一個字段1的值,另一個字段2的值,另一個字段3的值);
同時插入兩條數據,看語法說明,那個into被我省略了,代碼如下:
insert links (name,url) values('jerichen','gdsz'),('alone','gdgz');
使用INSERT…SELECT語句插入從其他表選擇的行,當我們在上一節學習創建表時,知道可以使用select從其它表來直接創建表,甚至可以同時復制數據記錄。如果你已經擁有了一個表,你同樣可以從select語句的配合中獲益。
從其它表中錄入數據,代碼如下:
mysql>insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;
你也可以略去目的表的列列表,如果你每一列都有數據錄入,代碼如下:
mysql>insert into tbl_name1 select col3,col4 from tbl_name2;
INSERT INTO ... SELECT語句滿足下列條件:
查詢不能包含一個ORDER BY子句.
關于insert語句的幾點說明:
其實也不是啥說明了,都是書上面的例子,不過懶的敲了,而且感覺沒有啥太大意義,都是需要大家理解的。給不給例子是一樣的。
1. 因為之前我在日志中介紹創建表結構的時候,字段是可以有默認值的,在MySQL4.0.3及更高版本都支持一個DEFAULT關鍵字,在我們使用 insert 語句的時候,可以使字段的值等于DEFAULT關鍵字,來使其等于數據庫創建的時候的default值。
2. AUTOINCREMENT自增字段,這個我們是不用給出值的,因為系統會自動為該字段來進行自增,但是如果您愿意,也是可以傳值的,看您心情。
3. UNIQUE這個我們也說過,就是字段唯一的意思,比如說用戶的id設置UNIQUE,已經存在一條用戶id為1的數據,如果此時您再想插入一條用戶id為1的數據是不會成功的,系統會出錯的。
4. 如果數據庫字段允許存在NULL值的話,我們在insert插入語句中,也是可以將字段值設為NULL的。
新聞熱點
疑難解答