1.插入表数据
#插入完整数据字段:
insert into table 表名 value(值1,值2,值3,....),(值1,值2,值3,....),.....
insert into table 表名 values(值1,值2,值3,....),(值1,值2,值3,....),.....
#插入部分数据字段:
insert into table 表名(指定字段1,指定字段2,..) value(值1,值2,....),(值1,值2,....),.....
insert into table 表名(指定字段1,指定字段2,..) values(值1,值2,....),(值1,值2,....),.....
#注:此处插入的值需要与指定字段一一对应,未指定的字段需可为空
1.1 value 与 values 的区别
value与values均可用于对表插入一条或多条数据。
value 插入一条数据的执行速度要高于values插入一条数据;
values 插入多条数据时执行速度要高于value插入多条数据。
执行时间可用以下方式查看:
第一步:查看当前SQL版本是否支持查看执行时间:
select @@have_profiling;
第二步:开启profile
set profiling=1;
第三步:执行所需要查看执行时间的SQL语句
第四步:查看时间
show profiles;
可选步骤:查看每个线程的执行时间
show profile for query 8(线程号);
2.删除表数据
#删除所有数据
delete from 表名;
#删除通过条件筛选出来的数据
delete from 表名 where 条件;
3.更新表数据
#更新表中某列的所有数据为值1
update 表名 set 字段=值1;
#跟据筛选条件(本质上是筛选行)更新表中某列的数据为值1
update 表名 set 字段=值1 where 条件;
巧妙的update用法:
场景:在性别只有'男'和'女'的表中,将性别为'男'的修改为'女',性别为'女'的修改为'男'
#方法一
update 表名 set sex = case when sex='男' then '女' else '男' end;
#方法二
update 表名 set sex = case sex when '男' then '女' else '男' end;
总结:
DDL:数据定义型语言
本质上是对表中列名的定义修改删除
建立库/表:create database/table 库名/表名 [表字段定义];
修改表:alter table 表名 add/change/modify/drop;
删除表:drop/truncate 表名;
DML:数据操作型语言
本质上是对表中列/单元格数据的插入更新删除
插入数据:insert into table 表名 values(...);
更新数据:update 表名 set 字段(列名)=值;
删除数据:delete from 表名;