2、DML 对数据增删改

DML:对表中的数据增删改

CRUD:  Create 增加   Retrieval 检索    Update 更新    Delete 删除

 

一  插入数据

1)插入全部字段

insert into 表名(field1,field2,field3) value(value1,value2,vaule3);//1 写字段名称
insert into 表名 value(value1,value2,value3.....);//2 不写字段名称

2)插入部分字段、

insert into 表名(field2,field5) value(value2,value5);//其他字段的值用null自动填充了

3)一次插入多行数据

insert into demo values(13,'玉石'),(14,'玛瑙');  //不写字段名
insert into demo (id,name) values (10,'黄金'),(11,'宝石');//写字段名

4)注意事项

1)值与字段必须对应,个数相等,类型相同。
2)值的数据大小必须在字段的长度范围内。
3)值的输入必须用引号包含(建议单引号),数值除外。
4)如果要插入空值,可以不写字段,或者插入NULL。

 

二 表的复制

1)复制表结构

create table 新表名 like 旧表名;

2)复制表(将查询结果当做表创建出来)

//1 复制一个一摸一样的表
create tabel 新表名 as select * from 表名;

//2 按需复制
create table 新表名 as select 需要的字段1,需要的字段2 from 表名;

其中的as可以省略

3)蠕虫复制 (将查询结果插入到一张表中)

insert into 新表名 select * from 旧表名;//插入所有数据
insert into 新表名(字段1,字段2) select 字段1,字段2 from 旧表名;//插入部分字段

小结:执行两次或多次 相同SQL语句 新数据是追加到表中,而不是覆盖表中数据

 

二 更新数据

没有where条件,整张表数据全部更新(慎重使用

update 表名 set 字段名1=值,字段名2=值,.... where 更新条件;

 

三 删除数据

1)delete 删除表

delete from 表名 where 删除条件; //必须带删除条件

2)truncate 截断表

truncate table 表名;  truncate 单词本意:截断

3)drop 删除表

drop table demo1;

3)三者的区别

delete:会把删除的操作记录到日志中,以便回滚,不会释放物理或索引所占的空间。不会删除表定义。

truncate:不会记录删除操作,不支持回滚。操作后物理空间恢复到最初,不会删除表定义。(高危操作)

drop:会删除整张表,不支持回滚,释放表占用的空间。表定义也会被删除。(高危操作)

执行效率:drop > truncate > update;

 

posted @ 2020-11-16 21:19  棉花糖88  阅读(80)  评论(0)    收藏  举报