码迷,mamicode.com
首页 > 数据库 > 详细

SQL基础教程(第2版)第4章 数据更新:4-1 数据的插入(INSERT)

时间:2020-01-22 14:30:35      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:ice   数据   写入   arch   sel   tco   失败   create   完全   

插入NULL时需要在VALUES子句的值清单中写入NULL
可以为表中的列设定默认值(初始值),默认值可以通过在CREATE TABLE语句中为列设置DEFAULT约束来设定。
插入默认值可以通过两种方式实现,即在INSERT语句的VALUES子句中指定DEFAULT关键字(显式方法),或省略列清单(隐式方法)
使用INSERTSELECT可以从其他表中复制数据。  

要学习 INSERT 语句,我们得首先创建一个名为 ProductIns的表。请大家执行代码清单 4-1 中的 CREATE TABLE 语句。

该表除了为 sale_price 列(销售单价)设置了 DEFAULT 0 的约束之外,其余内容与之前使用的 Product(商品)表完全相同。

技术图片
CREATE TABLE ProductIns
(product_id      CHAR(4)      NOT NULL,
 product_name    VARCHAR(100) NOT NULL,
 product_type    VARCHAR(32)  NOT NULL,
 sale_price      INTEGER      DEFAULT 0,
 purchase_price  INTEGER      ,
 regist_date     DATE         ,
 PRIMARY KEY (product_id));
代码清单4-1 创建ProductIns表的CREATE TABLE语句

INSERT语句的基本语法

技术图片

技术图片

技术图片
INSERT INTO ProductIns (product_id, product_name, product_type, sale_price, purchase_price, regist_date) VALUES (0001, T恤 ,衣服, 1000, 500, 2009-09-20);
View Code

技术图片


列清单的省略

技术图片

技术图片
-- 使用列清单
INSERT INTO ProductIns (product_id, product_name, product_type, sale_price, purchase_price, regist_date) VALUES (0005, 高压锅, 厨房用具, 6800, 5000, 2009-01-15);

-- 不使用列清单
INSERT INTO ProductIns VALUES (0005, 高压锅, 厨房用具, 6800, 5000, 2009-01-15);
代码清单4-3 省略列清单

 

插入NULL

INSERT 语句中想给某一列赋予 NULL 值时,可以直接在 VALUES 子句的值清单中写入 NULL。 

但是,想要插入 NULL 的列一定不能设置 NOT NULL 约束。向设置了 NOT NULL 约束的列中插入 NULL 时, INSERT 语句会出错,导致数据插入失败。


插入默认值

像这样,我们可以通过“DEFAULT 默认值 >”的形式来设定默认值。

技术图片

技术图片

那么在实际使用中哪种方法更好呢?笔者建议大家使用显式的方法。


从其他表中复制数据
技术图片

技术图片
-- 插入数据用的复制商品表
CREATE TABLE ProductCopy
(product_id      CHAR(4)      NOT NULL,
 product_name    VARCHAR(100) NOT NULL,
 product_type    VARCHAR(32)  NOT NULL,
 sale_price      INTEGER      ,
 purchase_price  INTEGER      ,
 regist_date     DATE         ,
 PRIMARY KEY (product_id));
代码清单4-9 创建ProductCopy表

技术图片

技术图片

 

SQL基础教程(第2版)第4章 数据更新:4-1 数据的插入(INSERT)

标签:ice   数据   写入   arch   sel   tco   失败   create   完全   

原文地址:https://www.cnblogs.com/MarlonKang/p/12228446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!