回顧一下之前的MySQL漂流記(一):
增加數據:
這里我們要說一下,如果增加多條數據,應該怎么做?
語法:insert ?into 表名 values(…,…,…)
case: ?insert ?into ?table04 ?values(‘wangwu’,19,’beijing’),(‘gaojin’,31,’nanjing’);
其中,values寫的是對應建表時的字段,必須按照建表時候的次序一次賦值,如果此時你忘記了建表時字段的順序,沒有關系,使用:
語法:describe ?表名
可以幫助我們查看建表時的順序
可以給出要賦值的那個列,然后再列出值。這對于希望建立只有幾個列需要初始設置 的記錄是很有用的:
(1)insert ?test04(name) ?values(‘Jack’);
(2)insert ?test01_01(name) ?values(‘Jack’),(‘baidu’);
(3)insert ?test01_01 ?set ?name=’Tencent’;
//使用(3)這種形式的 insert 語句不能插入多行
insert…into…select..語句:
之前我們介紹過可以用select語句創建表格,現在我們用insert…into…select語句來為我們提供便利:
使用insert into … select語句滿足下列條件:
1:查詢不能包含一個order by子句
2:insert語句的目的表不能出現在select查詢部分的from子句,因為這在ANSI SQL中被禁止讓從你正在插入的表中select.問題是select將可能發 現在同一個運行期間內先前被插入的記錄。當使用子選擇子句時,情況能很容易混淆
語法示例:
1)insert ?into table01_01 select * from table01_01;//相當于拷貝,表結構完全一致
2)insert ?into table01_01(name) ?select name from ?table04;//拷貝時–只取某個值添加
回顧一下之前的MySQL漂流記(一):
增加數據:
這里我們要說一下,如果增加多條數據,應該怎么做?
語法:insert ?into 表名 values(…,…,…)
case: ?insert ?into ?table04 ?values(‘wangwu’,19,’beijing’),(‘gaojin’,31,’nanjing’);
其中,values寫的是對應建表時的字段,必須按照建表時候的次序一次賦值,如果此時你忘記了建表時字段的順序,沒有關系,使用:
語法:describe ?表名
可以幫助我們查看建表時的順序
可以給出要賦值的那個列,然后再列出值。這對于希望建立只有幾個列需要初始設置 的記錄是很有用的:
(1)insert ?test04(name) ?values(‘Jack’);
(2)insert ?test01_01(name) ?values(‘Jack’),(‘baidu’);
(3)insert ?test01_01 ?set ?name=’Tencent’;
//使用(3)這種形式的 insert 語句不能插入多行
insert…into…select..語句:
之前我們介紹過可以用select語句創建表格,現在我們用insert…into…select語句來為我們提供便利:
使用insert into … select語句滿足下列條件:
1:查詢不能包含一個order by子句
2:insert語句的目的表不能出現在select查詢部分的from子句,因為這在ANSI SQL中被禁止讓從你正在插入的表中select.問題是select將可能發 現在同一個運行期間內先前被插入的記錄。當使用子選擇子句時,情況能很容易混淆
語法示例:
1)insert ?into table01_01 select * from table01_01;//相當于拷貝,表結構完全一致
2)insert ?into table01_01(name) ?select name from ?table04;//拷貝時–只取某個值添加