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 表名;