首頁 > 軟體

SQL Server修改資料的幾種語句詳解

2022-10-28 14:04:45

本篇主要講解的是SQL Server 中修改資料的幾種語句:

  • INSERT語句
  • INSERT INTO SELECT語句
  • UPDATE語句
  • DELETE語句

一:INSERT語句

INSERT語句向表中新增新行,以下是INSERT語句的最基本形式:

  1. 首先:table_name指定要插入的表的名稱;
  2. 其次,column_list指定要在其中插入資料的一個或多個列的列表。必須將列的列表包括在括號中並用逗號分隔離列
  3. 如果列在列列表中沒有出現,則SQL Server必須能夠提供插入值,否則無法插入行。
  4. SQL Server自動對錶中可用的列使用以下值,但不會出現在 INSERT 語句的列列表中:
    • 如果列具有[IDENTITY]屬性,則為下一個增量值。 如果列具有指定的預設值,則為預設值。
    • 如果列的資料型別是時間戳資料型別(timestamp),則預設為當前時間戳值。
    • 如果列可以為 NULL 值,則使用 NULL 。
  5. 第三,要在 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修改資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com