SQL基础学习笔记--3--数据更新

3.1 数据的插入(INSERT)

 

部分列插入:

INSERT INTO <表名> (列1,列2,列3...) VALUES (值1,值2,值3...);

全部列插入(省略了列清单):

INSERT INTO <表名> VALUES (值1,值2,值3...);

插入NULL :

INSERT INTO product (product_type, product_name,sale_price) VALUES ('茶杯', '生活用品',NULL);

插入NULL时,在对应的地方直接写NULL就行

但是,请注意:

如果该列的约束为NOT NULL 此时,插入NULL会报错

插入默认值

前提: 在创建表的时候设定了默认值(例: sale_price INTEGER DEFAULT 0;)

显式插入:

在VALUES子句中插入关键字DEFAULT

隐式插入:

使用插入部分列的方式,省略掉有默认值的列

注意 : 如果省略了没有设定默认值的列,那么该列就会被设定为NULL,因此,如果省略了设定为 NOT NULL为约束的列,那么INSERT语句就会报错.

从其他表中复制数据

INSERT INTO pp2 (id, type, NAME) SELECT product_id, product_type, product_name FROM product

 

3.2 数据的删除(DELETE)

 

DROP TABLEDELETE

<1> DROP TABLE 语句会将表完全删除

<2> DELETE 语句会删除表内的行数据 , 留下表(容器)

DELETE 语句的用法

DELETE FROM pp2 WHERE id = 1

 

TRUNCATE 截断表

<1> 非标准SQL , 可适用于mysql

<2> 只能用来清空全部表内数据,不能加WHERE子句

<3> 如果是清空全部表内数据,用截断表TRUNCATE , 比DELETE快

TRUNCATE <表名> ;

 

3.3 数据的更新(UPDATE)

UPDATE PP2 SET id = 100, type = '厨' WHERE NAME = '菜刀'

 

3.4 事务

mysql使用默认提交模式 , 每条SQL都是一个事务

   正常执行

-- 开始语句 START TRANSACTION;

-- 事务内容 UPDATE PP2 SET id = 101, type = '厨1' WHERE NAME = '菜刀'; UPDATE PP2 SET id = 102, type = '厨2' WHERE NAME = '叉子';

-- 结束提交语句 COMMIT;

  回滚

-- 开始语句 START TRANSACTION;

-- 事务内容 UPDATE PP2 SET id = 103, type = '回滚' WHERE NAME = '高压锅';

-- 回滚 ROLLBACK;

 

3.5 ACID

 

事务的ACID特性:

原子性(Atomicity) : 事务结束时,包含的操作要么完全执行,要么都不执行.

一致性(Consistency) : 事务包含的操作 , 不能与表提前的设置约束相冲突,冲突的话会回滚.

隔离性(Isolation) : 不同事务之前互不干扰 , 事务之前不会相互嵌套

持久性(Durability) : 事务结束后,数据的状态会被保存

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值