目录
DML:
数据操纵语言,它是用来操纵数据对象中的数据的。
其中包括对数据的以下操作:
1、Insert (插入)
2、delete(删除)
3、update(更新修改)
表数据的插入:
1、选择需要插入的属性值进行数据插入
insert into <表名(属性名1,属性名2,.....,属性名n)>
value(属性值1,属性值2,.....,属性值n);
2、为表中全部属性插入属性值,可以不用指定属性名
insert into <表名> value (属性值1,属性值2,.....,属性值n);
3、插入多条数据
insert into <表名> values (属性值1,属性值2,....,属性值n),
(属性值1,属性值2,....,,属性值n),(属性值1,属性2,....,属性值n);
#插入多条数据要用values,而插入单条数据value和values都可用
#注意:插入时属性值与属性名的位置要一 一对应
-- 1、向数据表中指定的属性列插入数据
insert into people_tb(p_id,p_name) value(1,"张三");
-- 属性名的顺序要与插入数据的顺序保持一致,没有给定数据的属性默认为null
-- 2、向数据表中所有属性列插入数据
insert into people_tb(p_id,p_name,p_gender,出生年月)value(2,'李四',"男","2021-04-02");
-- SQL语言中没有单个字符类型,只有字符串类型,所以单引号和双引号都表示字符串
insert into people_tb value(3,"小明","男","2021-02-03");
-- 不给定属性名的插入就是默认为所有属性插入数据
-- 3、插入多条数据
insert into people_tb(p_id,p_name) values(4,"小花"),(5,"小张"),(6,"老王");
表数据的更新
1、更新全部数据
update<表名> set 属性名1=属性值1,属性名2=属性值2,.........;
2、条件更新
update <表名> set 属性名1=属性值1,属性名2=属性值2,........
where 属性名=属性值
#关键字where之后描述数据更新的条件
3、多条件更新
所以条件需要同时满足用and或&&,不需要同时满足用or或||.
update 表名 set 属性名1=属性值1,属性值2=属性值2,.......
where 属性名1=属性值1 &&(||)属性名2=属性值2......;
-- 1、修改所有数据
update people_tb set p_gender = '女';
-- 不带条的修改,默认修改指定字段的所有数据
-- 2、条件更新
update people_tb set p_gender = '男' where p_name = '小明';
-- 3、多条件更新
update people_tb set p_gender = '男' where p_name = '小张' || p_name = '老王';
-- 逻辑运算符&& (and/AND)、|| (or/OR)
-- 4、多条件更新多条数据
update student set s_id="4",s_name="wang" where s_age="12" and s_class = "1";
更新数据时的注意事项
1、数据一旦被更新,默认隐式事务下,提交无法撤回。
2、如果不更新不带条件就是更新全部数据
3、如果出现无法更新的情况,是由于表中默认设置了自动保护列不可被修改,需要在工具栏中进入Edit->Preference->SQLEditors,将安全检查Safe Updates关闭,注意要重启MySQL才会生效
4、如果数据库和数据表的字符集不支持中文,则无法插入中文字符,更新时也会出错。
如果发现数据更新错误,又没有语法错误,那就是没有关闭更新,或者是字符集不支持中文
去掉安全检查:在"编辑“菜单中选择“首选项”,在里面找到“SQL Editor”里的“ohter”中的“Safe updates”,把它的勾去掉,点击OK,然后重启workbench
表数据的删除delete(delete和drop是不同的,drop是DDl,delete是DML)
-- 表数据的删除delete
-- 1、删除表中所有数据(清空表数据)
delete from people_tb;
-- 2、条件删除
delete from people_tb where p_id = 5;
-- 3、多条件删除
delete from people_tb where p_id = 2 || p_name = '小花';
-- 删除和修改的条件最好是用主键