使用insert向表中添加数据MySQL_使用INSERT语句向表中插入数据(MSSQLSERVER版)
做開發(fā)的同仁對于向數(shù)據(jù)庫中插入數(shù)據(jù)可謂是太普通不過了,也沒什么說的,一般都是采用常用的INSERT INTO [(字段列表)] VALUES(字段值列表),這樣的方式進(jìn)行操作。今天,我要給大家介紹的是其他一些非常規(guī)的方式,一定會(huì)讓你耳目一新,眼前一亮。
進(jìn)入今天的主題,以了便于操作,我們首先建立一個(gè)實(shí)例數(shù)據(jù)表:
USE?tempdb?;
GO
CREATE?TABLE?Fruit
(
Id?INT?NOT?NULL?,
Name?VARCHAR(100)?NOT?NULL?,
Color?VARCHAR(100)?NULL?,
Quantity?INT?DEFAULT?1
)?;
方式一:傳統(tǒng)方式
語法:INSERT(column_list)?VALUES(value_list);
我們插入一條數(shù)據(jù)到數(shù)據(jù)表中。
INSERT??INTO?Fruit
(?Id,?Name,?Color,?Quantity?)
VALUES(?1,?'Banana',?'Yellow',?1?)?;
這種方式是我們常用的一種插入數(shù)據(jù)的方式,給出所有的列名集合與值集合。
方式二:省略列集合
INSERT??INTO?Fruit
VALUES(?2,?'Grapes',?'Red',?15?)?;
這種方式我們省略了列名集合,這種方式值集合必須與數(shù)據(jù)表定義時(shí)列的順序相一至,必須賦的值不能省略。
方式三:插入部分字段
INSERT??INTO?Fruit
(?Id,?Name?)
VALUES(?3,?'Apples')?;
這種方式,我們不必給出所有字段列表,只插入我們需要的字段即可。
以上三種方式是我們在實(shí)際使用中最為常見的插入數(shù)據(jù)的方式,下面給出的也許會(huì)讓你眼前一亮。
方式四:一條插入語句插入多條數(shù)據(jù)
INSERT??INTO?Fruit
(?Id,?Name,?Color,?Quantity?)
VALUES(?4,?'Apples',?'Red',?10?),
(?5,?'Peaches',?'Green',?7?),
(?6,?'Pineapples',?'Yellow',?5?)?;
在這兒,我用一條插入語句同時(shí)插入了三條不同的數(shù)據(jù)到Fruit數(shù)據(jù)表中。
方式五:使用SELECT語句同時(shí)插入多條數(shù)據(jù)。
INSERT??INTO?Fruit
(?Id?,
Name?,
Color,
Quantity
)
SELECT? 7?+(?6?-?Id?)?,
Name,
'White',
Quantity
FROM????Fruit
WHERE???Id?>?3
ORDER?BY?Id?DESC?;
在方式五中,我通過選擇Fruit表中 Id 大于 3 記錄插入到Fruit表中。這是從水果表中現(xiàn)有的值派生出來的。
方式六:使用存儲過程插入數(shù)據(jù)。
首先、我們建立一個(gè)存儲過程如下:
CREATE?PROC?HybridFruit
AS
SELECT??b.Id?+?9?,
a.Name?+?b.name
FROM????Fruit?a
INNERJOIN?Fruit?b?ON?a.Id?=?9?-?b.Id?;
GO
現(xiàn)在我們使用上面建立的存儲過程進(jìn)行數(shù)據(jù)的插入,方法如下:
INSERT??INTO?Fruit
(?Id,?Name?)
EXECUTE?HybridFruit;
方式七:使用OUTPUT子句輸出插入的數(shù)據(jù)以供外部使用。
INSERT??INTO?Fruit
(?Id,?Name?)
OUTPUT??INSERTED.*
VALUES(?18,?'PieCherries'?)?;
在這兒,我們通過使用OUTPU子句輸出了同步插入的數(shù)據(jù)。
方式八:通過OUTPUT子句把結(jié)果返回給客戶端。
為了方便演示,我先把Fruit表的Id列設(shè)為自動(dòng)增長列。
ALTER?TABLE?Fruit
DROP?COLUMN?Id?;
ALTER?TABLE?Fruit
ADD?Id?INTIDENTITY?;
現(xiàn)在我們來通過OUTPUT子句插入值并把結(jié)果返回給客戶端。
DECLARE?@INSERTED?AS?TABLE(?Id?INT,?Name?VARCHAR(100)?)?;
--使用OUTPUT插入
INSERT??INTO?Fruit
(?Name,Color?)
OUTPUT??INSERTED.Id,?INSERTED.Name
INTO?@INSERTED
VALUES(?'Bing Cherries',?'Purple'?),
(?'Oranges',?'Orange'?)?;
--顯示插入的值
SELECT??*
FROM????@INSERTED?;
posted on 2012-09-18 15:09 kxbin 閱讀(15880) 評論(0) ?編輯 ?收藏 所屬分類: MYSQL 、MSSQL 、轉(zhuǎn)發(fā)
總結(jié)
以上是生活随笔為你收集整理的使用insert向表中添加数据MySQL_使用INSERT语句向表中插入数据(MSSQLSERVER版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aws java mysql_AWS S
- 下一篇: mysql查看比较大的数据表_mysql