INSERT 語句基本語法
INSERT [INTO] table_or_view [(column_list)] VALUES (value_list)
比較穩(wěn)妥的寫法是
INSERT INTO brand
(id, name, logo, describe, url, sort, cat_name, parent_cat_id,cat_id,is_hot)
VALUES(347,'創(chuàng)維/Skyworth','/Public/upload/brand/2016/04-01/347586936.jpg','凝聚健康科技',
'www.Skyworth.com',50,'手機、數(shù)碼氏仗、配件',1,1,0);
INSERT
后面不省略 INTO
方便在數(shù)據(jù)庫之間兼容妖胀,表名或視圖名后跟上括號括起來的要插入數(shù)據(jù)的列杠输,這樣避免表結(jié)構(gòu)變動后語句出錯。不建議采用下面的方式:
INSERT INTO brand
VALUES(347,'創(chuàng)維/Skyworth','/Public/upload/brand/2016/04-01/347586936.jpg','凝聚健康科技',
'www.Skyworth.com',50,'手機歪玲、數(shù)碼迁央、配件',1,1,0);
因為省略了列名的列表,這樣就要求必須為每一列提供一個值滥崩,并且按照在表中出現(xiàn)的順序給出值岖圈,如果某列沒有值,且該列允許為 NULL
值钙皮,則可以使用 NULL
填充蜂科。
插入部分數(shù)據(jù)
如果某列允許為 NULL
則 INSERT
語句中可以省略該列顽决。例如:
INSERT INTO brand
(id,name,logo,describe,url,sort,parent_cat_id,cat_id,is_hot)
VALUES(348,'臺電/Teclast','/Public/upload/brand/2016/04-01/348396236.jpg','商科集團旗下品牌','www.teclast.com',50,1,1,0);
插入默認值
如果創(chuàng)建表時使用了 DEFAULT
關(guān)鍵字為列指定默認值,在插入新數(shù)據(jù)時沒有給出有默認值的列的值导匣,就會采用默認值才菠。例如:
INSERT INTO brand
(id,name,logo,describe,url,cat_name)
VALUES(349,'酷開/Coocaa','/Public/upload/brand/2016/04-01/350396326.jpg','酷開網(wǎng)絡(luò)科技','www.coocaa.com','手機、數(shù)碼贡定、配件');
插入多行數(shù)據(jù)
基本語法
INSERT [INTO] table_name
[(column_list)]
VALUES
(data11,data12,...),(data21,data22,...),...
例如:
INSERT INTO brand
(id,name,logo,describe,url,sort,cat_name,parent_cat_id,cat_id,is_hot)
VALUES
(350,'海力/horion','/Public/upload/brand/2016/04-01/351396632.jpg',",",50,'手機赋访、數(shù)碼、配件',1,1,0),
(351,'長虹/CHANGHONG','/Public/upload/brand/2016/04-01/352366226.jpg',",",50,'手機缓待、數(shù)碼蚓耽、配件',1,1,0);
通過查詢語句插入多行數(shù)據(jù)
基本語法
INSERT [INTO] table_name
SELECT {* | fieldname1 [, fieldname2...]}
FROM table_source [WHERE search_condition]
先創(chuàng)建一個新的表,用來測試上面的用法:
CREATE TABLE brand_new (
id int NOT NULL PRIMARY KEY,
name varchar(60) NOT NULL DEFAULT '',
logo varchar(80) NOT NULL DEFAULT '',
describe text NOT NULL,
url varchar(255) NOT NULL DEFAULT '',
sort int NOT NULL DEFAULT 50,
cat_name varchar(128) NULL DEFAULT '',
parent_cat_id int NULL DEFAULT 0,
cat_id int NULL DEFAULT 0,
is_hot int NULL DEFAULT 0
);
(發(fā)覺原來能指定可為 NULL
)
接下來就是測試通過查詢語句插入多行數(shù)據(jù):
INSERT INTO brand_new
SELECT * FROM brand
WHERE cat_name = '手機旋炒、數(shù)碼步悠、配件';
數(shù)據(jù)表的復(fù)制
使用 SELECT INTO
語句(SQL Server),基本語法如下:
SELECT [select_list]
INTO new_table
FROM table_name
WHERE search_condition
例如:
SELECT BookName, Type, Writer
INTO bookinfo_project
FROM bookinfo WHERE Type = '項目入門系列';
然后在 MySQL 則要使用 CREATE TABLE SELECT
語句瘫镇,語法如下:
CREATE TABLE new_table AS
SELECT [select_list]
FROM table_name
WHERE search_condition
例子:
CREATE TABLE newbrand AS
SELECT id,name,cat_name
FROM brand WHERE cat_name='手機鼎兽、數(shù)碼、配件';
然后結(jié)果是:
mysql> SELECT id, name, cat_name FROM newbrand;
+----+----------------+------------------+
| id | name | cat_name |
+----+----------------+------------------+
| 1 | 華為/HUAWEI | 手機汇四、數(shù)碼接奈、配件 |
| 4 | 索尼/SONY | 手機、數(shù)碼通孽、配件 |
| 5 | 諾基亞/NOKIA | 手機、數(shù)碼睁壁、配件 |
| 6 | TCL | 手機背苦、數(shù)碼、配件 |
| 7 | 飛利浦/PHILIPS | 手機潘明、數(shù)碼行剂、配件 |
| 8 | OPPO | 手機、數(shù)碼钳降、配件 |
| 9 | 蘋果/Apple | 手機厚宰、數(shù)碼、配件 |
| 14 | 海爾/Haier | 手機遂填、數(shù)碼铲觉、配件 |
| 15 | 三星/SAMSUNG | 手機、數(shù)碼吓坚、配件 |
| 19 | 海信/Hisense | 手機撵幽、數(shù)碼、配件 |
+----+----------------+------------------+
10 rows in set (0.00 sec)