官术网_书友最值得收藏!

t1

3.1 單行新增

單行新增一次只向表中插入一條記錄。單行新增主要包括兩種方式,一種通過關鍵字values完成,另一種通過關鍵字select完成。接下來,分別對values單行新增和select單行新增進行詳細介紹。

3.1.1 values單行新增

values單行新增語法如以下代碼所示。

        insert into table_name [(column[, column...])]
        values(value[, value...]);

代碼中各關鍵字的解釋如下。

? insert into:關鍵字,標識當前命令屬于SQL插入命令。

? table_name:代表要插入數據的表名。

? column:代表列名。

? values:關鍵字,后面跟列值。

? value:代表列值。

注:列值與列名要一一對應。

接下來,通過幾個例子來幫助讀者掌握values單行新增的用法。

例3-1:將員工工號為3030的員工插入員工表中,同時指定列名和列值。

SQL Server數據庫的寫法如圖3-1所示。

圖3-1

Oracle數據庫的寫法如圖3-2所示。

圖3-2

例3-2:將員工工號為3031的員工插入員工表中,省略列名,只指定列值。

table_name后面如果不帶任何列名,表示要向所有列里面插入數據,values后面必須跟齊所有列對應的值。并且,列值的順序與表結構中列屬性的順序要完全一致。

SQL Server數據庫的寫法如圖3-3所示。

圖3-3

Oracle數據庫的寫法如圖3-4所示。

圖3-4

例3-3:將員工工號為3032的員工插入員工表中,只指定非空列的列名及列值。

對于非空列,如果沒有創建默認值約束,在插入的時候,values后面必須指定要插入的列值。在EMP表中,EMPNO、HIREDATE兩列建有非空約束,HIREDATE建有默認值約束。所以,EMPNO列必須指定要插入的列值,而HIREDATE列可以指定列值也可以不指定列值,指定的時候插入指定的列值,不指定的時候,插入默認值;也可以指定DEFAULT插入默認值。

對于SQL Server數據庫,缺省列指定固定值的寫法如圖3-5所示。

圖3-5

對于Oracle數據庫,缺省列指定固定值的寫法如圖3-6所示。

圖3-6

例3-4:將員工工號為3033的員工插入員工表中,用關鍵字default指定包含默認值約束的列值。

SQL Server數據庫與Oracle數據庫中缺省列指定default的共同寫法如圖3-7所示。

圖3-7

例3-5:將員工工號為3034的員工插入員工表中,只指定建有非空約束并且未建默認值約束的列名及列值。

SQL Server數據庫與Oracle數據庫中建有默認值約束的列、不指定列值的共同寫法如圖3-8所示。在這種情況下,數據庫會將默認值插入HIREDATE列中。

圖3-8

3.1.2 select單行新增

用select實現單行新增,除了default關鍵字不能使用外,其他情況跟values基本相同。在SQL Server數據庫中,select后面一系列的常量值可以直接用逗號隔開,而不需要from關鍵字。但是,Oracle數據庫必須跟上from關鍵字及表名。此處我們可以使用系統表DUAL,該表只有一行一列,這樣可以只返回一行記錄。select單行新增是一種特殊的查詢結果新增方式,查詢結果新增將在3.3節詳細介紹。用select替換values后,values語法中的例子轉換成如下情況。

SQL Server數據庫中的寫法如圖3-9~圖3-12所示。

圖3-9

圖3-10

圖3-11

圖3-12

Oracle數據庫中的寫法如圖3-13~圖3-16所示。

圖3-13

圖3-14

圖3-15

圖3-16

主站蜘蛛池模板: 新疆| 内江市| 南木林县| 虹口区| 大同县| 柘城县| 三穗县| 乌鲁木齐市| 黄石市| 荔波县| 晴隆县| 洮南市| 湖北省| 教育| 噶尔县| 阿拉尔市| 津南区| 固始县| 乌拉特后旗| 开化县| 瑞丽市| 岗巴县| 额敏县| 龙游县| 永年县| 镇安县| 铜川市| 嫩江县| 阳新县| 建德市| 乐陵市| 雷山县| 泸溪县| 读书| 镇赉县| 徐汇区| 宣威市| 吉木乃县| 伊川县| 县级市| 尼木县|