MYSQL——DML : 数据操作语句 (insert update delete)

insert 插入语句

insert into  表名  (字段…,…) values(值…,…),(值…,…)......;

可以一次性插入多条数据 字段可省略,表示插入所有字段

如果只有特定记录的部分数据或记录中的某些字段有可选项时,这种方法非常有用。也可以通过如下所示的语法实现此功能:

insert into customer
set
name='Michael Archer',
address='12 Adderley Avenue',
city='Leeton';

插入数据时,如果主键冲突会如何?

默认有 主键约束,不会插入成功,但是可以在insert语法内,控制
在主键冲突时,改成执行更新操作。Update 后 不跟 set。
判断是否插入成功->插入(失败 主键冲突|唯一)->更新->更新完毕

insert into teacher_class (id, t_name, c_name) values
(13, '杨露婵', '太极')
on duplicate key update
t_name='杨露婵', c_name='太极';

插入时须考虑清楚字段类型避免插入后出现缺值,乱码现象

数据可以来源于其他数据表,要求,字段数量和类型一致即可:

insert into  表名  1(字段…,…)  select  (字段…,…)  from  表名2

可以一次性插入多条数据

通过强制使用default关键字,或者default()函数,使用默认值;

insert into teacher values`
`(13,  'xxx',  'yyy',  default),`
`(14,  'xxx',  'yyy',  default(字段));

replace替换语句 语法 同 insert

我们在使用数据库时可能会经常遇到这种情况。如果一个表在一个字段上建立了唯一索引,当我们再向这个表中使用已经存在的键值插入一条记录,那将会抛出一个主键冲突的错误。当然,我们可能想用新记录的值来覆盖原来的记录值。如果使用传统的做法,必须先使用delete语句删除原先的记录,然后再使用insert插入新的记录。而在MySQL中为我们提供了一种新的解决方案,这就是replace语句。使用 replace插入一条记录时,如果不重复,REPLACE就和INSERT的功能一样,如果有重复记录,REPLACE就使用新记录的值来替换原来的记录值。
容易产生误操作,建议用insert

replace into  表名  1(字段…,…) values(值…,…),(值…,…)......;

Update 更新语句

UPDATE 表名 SET 字段  =  值 WHERE 条件  [limit 1]  ;  #(limit 可省略)

多表更新:

UPDATE one join two on one.id=two.id  SET one_data='x',two_data='y', WHERE one.id=1

Delete 删除语句

DELETE  FROM 表名 WHERE 条件  [limit]  ;#(limit 可省略)

多表删除: using使用哪种连接条件

DELETE  FROM table1,table2 using table1 join table2`
`on table1.id=table2.id`
`where table1.id=1;

清空表:

#删除表,新建表。
1、不会返回删除的记录数。
2、重置自动增长的主键。
truncate 表名;

#类似:

#逐行删除,返回删除的记录数,不重置主键
delete  from  表名;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值