sql根据条件更新数据_SQL基础四:数据更新

3bcedeb7ed2474e73179fa08baa2c96c.png

4-1 数据的插入

插入数据使用INSERT INTO语句,语法:

1、不需要指定表中列名,但是插入的值的顺序、个数要与表中列的顺序、个数相对应。

INSERT INTO <表名>
VALUES 
              (value1,value2,value3,...),
              (valuea1,valuea2,valuea3,...),
              (valueb1,valueb2,valueb3,...),
               ……
              (valuen1,valuen2,valuen3,...);

2、指定列名,可以全表插入,也可以指定列插入

INSERT INTO <表名> (<列名1>,<列名2>,<列名3>,...)
VALUES 
              (value1,value2,value3,...),
              (valuea1,valuea2,valuea3,...),
              (valueb1,valueb2,valueb3,...),
               ……
              (valuen1,valuen2,valuen3,...);

例:

INSERT INTO Product (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
VALUES 
('0001', 'T恤衫', '衣服', 1000, 500, '2009-09-20'),
('0002', '打孔器', '办公用品', 500, 320, '2009-09-11'),
('0003', '运动T恤', '衣服', 4000, 2800, NULL),
('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20'),
('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15'),
('0006', '叉子', '厨房用具', 500, NULL, '2009-09-20'),
('0007', '擦菜板', '厨房用具', 880, 790, '2008-04-28'),
('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');

INSERT INTO语句中想给某列赋予NULL值时,可以在VALUES子句之中写入NULL。

但是想要插入NULL的列一定不能设置NOT NULL约束。

3、插入默认值,可以通过在创建表的语句中设置DEFAULT约束来设定默认值

例:

CREATE TABLE Product
(
	product_id CHAR(4) NOT NULL,
	product_name VARCHAR(100) NOT NULL DEFAULT 0
);

通过插入语句设置默认值:

INSERT INTO Product (product_name) VALUES (DEFAULT);

插入默认值时也可以不使用DEFAULT关键字,只要在列清单和VALUES中省略设定了默认值的列就可以。如果省略了没有默认值的列,该列的值会被设定为NULL;如果设置了NOT NULL约束的列,会报错。

4、从其他表中复制数据

创建 ProductCopy 表

-- 用来插入数据的商品复制表
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));

将 Product 表中的数据插入到ProductCopy 表中,使用 INSERT ... SELECT 语句

--  将商品表中的数据复制到商品复制表中
INSERT INTO ProductCopy (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
SELECT product_id, product_name, product_type, sale_price, purchase_price, regist_date
FROM Product;

4-2 数据的删除

4-3 数据的更新

4-4 事务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值