MySQL之DML

本文详细介绍了SQL中的INSERT用于插入数据,REPLACE用于替换数据(如果主键冲突会删除再插入),DELETE用于删除符合条件的记录,TRUNCATE用于快速清空数据但保留表结构,以及DROP和UPDATE的区别。
摘要由CSDN通过智能技术生成

INSERT语句

针对数据的插入
语法:

INSERT INTO 表名 [(列名,[列名....])] VALUES (值,[值]), (值,[值]), (值,[值])....;

如果为每列都指定值,则表名后不需要列出插入的列名。
如果不想在表名后列出列名,可以为那些无法指定的值插入NULL。

一次性插入多条记录

INSERT INTO 表名 [列名,[列名....]] VALUES (值,[值]), (值,[值]), (值,[值])....;

例如:新建一个表并插入记录
新建表:

CREATE TABLE newstudent(
  StudentNo int(10),
  StudentName varchar(20),
  Address varchar(100)
);

插入记录:
①单条插入

INSERT INTO newstudent (StudentNo, StudentName, Address) VALUES (10, '张三', '陕西省延安市');

②多条插入

INSERT INTO newstudent (StudentNo, StudentName, Address) VALUES (11, '李四', '陕西省延安市'),(12,'王五','陕西省西安市');

③使用SELECT插入

INSERT INTO newstudent
SELECT StudentNo,StudentName,Address FROM student;

REPLACE语句

也是新增数据。
主要有三种语法:
语法格式1:

REPLACE INTO 表名 [(字段列表)] VALUES (值列表);

语法格式2:

REPLACE [INTO] 目标表名[(字段列表1)] SELECT (字段列表2) FROM 源表 [WHERE 条件表达式];

语法格式3:

REPLACE [INTO] 表名 SET 字段1=值1,字段2=值2;

REPLACE和INSERT语句的区别

REPLACE语句的功能和INSERT语句的功能基本相同,不同之处在于:使用REPLACE语句向表中插入新纪录时,如果新纪录的主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件),然后再插入新记录。
使用REPLACE的最大好处就是可以将DELETE和INSERT语句合二为一(效果相当于更新),形成一个原子操作,这样就无需将DELETE操作与INSERT操作置于事务中了。

DELETE语句

语法:

DELETE FROM 表名 [WHERE 条件];

注意:如果没有WHERE 条件则整表记录删除

例如:

DELETE FROM newstudent WHERE StudentNo=1111;

TRUNCATE语句

语法:

TRUNCATE FROM 表名 [WHERE 条件];

例如:

TRUNCATE FROM newstudent StudentNo=1111;

DROP、TRUNCATE、DELETE的区别

DROP: 删除数据和表结构,删除速度最快。
**TRUNCATE:**删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快。
**DELETE:**删除数据,保留表结构,可以回滚,如果数据量大,很慢。

UPDATE语句

语法:

UPDATE 表名 
SET 列名1=值1,[列名2=值2...]
[WHERE 条件];

例如:修改李文才的名字为李四

UPDATE newstudent
SET StudentName="李四"
WHERE StudentName="李文才";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦农111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值