插入数据
基础语法
形式1:
insert into 表名(字段名1,字段名2,....)values (值a1,值a2, .....), (值b1,值b2, .....),..... ;
形式2:
insert into 表名1(字段名1,字段名2,....)select 字段名1,字段名2,.... from 表名2;
形式3:
insert into 表名 set 字段名1=值1,字段名2=值2, ..... ;
载入外部“形式整齐”的数据:
load data infile ‘文件完整名(含路径)’ into table 表名;
复制一个表的结构和数据:
create table 表名1 select * from 表名2;
注意
- 按“行”插入
- “字段”和“值”之间,一一对应
- 值的形式:数字直接写,字符串和时间加单引号,但如果是函数值,则不能加引号
- auto_increment, timestamp等字段无需插入
删除数据
基础语法
delete from 表名 [where条件] [order排序] [limit限定];
注意
- “以行为单位”删除
- 删除语句中,where条件如果不写,则就删除了所有数据
- order排序子句用于设定删除数据的先后顺序
- limit限定子句用于限定在设定的顺序情况下删除指定的某些行
truncate
和delete
区别
truncate [table] 表名
用于直接删除整个表(结构)并重新创建该表
delete | truncate |
---|---|
只删除数据 | 删除整个表(数据和结构都没有了),重新创建该表(全新表) |
auto_increment这种类型的字段值, 继续增长 | truncate重新计算 |
修改数据
基本语法
update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....[where条件] [order排序] [limit限定];
注意
- 以“行”为单位进行的,虽然可以指定只更新其中的部分字段
- 其他限定遵循
insert
语法
复制表
方法一
create table table2 like table1; //复制结构
insert into table2 select * from table1; //复制数据
这种方法可以比较完整。
方法二
create table table2 select * from table1; //同时复制结构和数据
这种方法可能会丢一些结构信息,比如:索引,约束,自增长属性