SQL Server修改數據的幾種語句詳解
目錄
- 一:INSERT語句
- 二:INSERT INTO SELECT語句
- 三:UPDATE語句
- 四:DELETE語句
- 總結
本篇主要講解的是SQL Server 中修改數據的幾種語句:
- INSERT語句
- INSERT INTO SELECT語句
- UPDATE語句
- DELETE語句
一:INSERT語句
INSERT語句向表中添加新行,以下是INSERT語句的最基本形式:
- 首先:table_name指定要插入的表的名稱;
- 其次,column_list指定要在其中插入數據的一個或多個列的列表。必須將列的列表包括在括號中并用逗號分隔離列
- 如果列在列列表中沒有出現,則SQL Server必須能夠提供插入值,否則無法插入行。
- SQL Server自動對表中可用的列使用以下值,但不會出現在 INSERT 語句的列列表中:
- 如果列具有[IDENTITY]屬性,則為下一個增量值。 如果列具有指定的默認值,則為默認值。
- 如果列的數據類型是時間戳數據類型(timestamp),則默認為當前時間戳值。
- 如果列可以為 NULL 值,則使用 NULL 。
- 第三,要在 VALUES 子句中提供插入的值列表。列列表中的每列必須在值列表中具有相應的 值。 此外,必須將值列表括在括號中。
以下是創建一個名為promotions 的新表:
(在sales模式中創建了一個名為promotions的新表。 promotions表有五列,包括:促銷標識號 (promotion_id),名稱(name),折扣(discount),開始日期(start_date)和過期日期 (expired_date)。 promotion_id是標識列,因此當向表中添加新行時,SQL Server會自動填充其值。)
注:promotions表暫無任何數據
以下語句是將新行添加到promotions表中 (添加行數據):
注:在此示例中,為 promotions 表中的四列指定了值。但沒有為 promotion_id 列指定值,這是為什么呢?
因為SQL Server會自動為此列提供值。
查詢結果為:
將顯示值插入標識列:
通常情況下,不為標識列指定值,因為SQL Server將自動提供,但是,在某些情況下,可能希望在標識列中插入值,例如數據的遷移。
要為標識列 插入顯示值,必須首先執行以下語句:(開啟)
若要關閉標識插入,請使用以下語句:(關閉)
以下是在promotions 表中插入標識列的值:
INSERT 一次添加多行數據:
若要一次向表中添加多行數據,請使用以下形式的INSERT語句:
在此語法中,不使用單個值列表,而是使用多個以逗號分隔的值列表進行插入。 使用此形式的 INSERT 語句,一次可以插入的行數為 1000 行
二:INSERT INTO SELECT語句
要將其他表中的數據插入另一個表中,請使用以下SQL Server INSERT INTO SELECT 語句:
在此語法中,查詢語句返回的行將插入 target_table 。該查詢是從任何其他表中檢索數據的有效 SELECT 語句。它必須返回與 column_list 中指定的列對應的數據
以下所寫的語句是將customers表中的所有地址都插入到addresses表中:
注:列值要一一對應
三:UPDATE語句
要修改表中的現有數據,請使用以下 UPDATE 語句語法:
在上面語法中:
1.首先,指定要從中更新數據的表的名稱;
2.其次,指定要更新的列 c1 ,c2 ... ,cn 和值 v1 ,v2 ... vn 的列表;
3.第三,在 WHERE 子句中指定條件以選擇更新的行。WHERE子句是可選的。 如果不指定 WHERE 子 句,則表中的所有行都將更新;
四:DELETE語句
刪除表中的現有數據,請使用以下 DELETE 語句語法:
在上面語法中:
1.首先,指定要從中刪除數據的表的名稱。
2.其次,在 WHERE 子句中指定條件以選擇刪除的行。WHERE子句是可選的。 如果不指定 WHERE子句,則表中的所有行都將被刪除。
總結
到此這篇關于SQL Server修改數據的幾種語句的文章就介紹到這了,更多相關SQL Server修改數據內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
