DML操作数据库
SQL中DML用于对表中的数据进场增删改查操作
插入数据
-
语法格式:
-
insert into 表名(字段名1,字段名2...) values(字段值1,字段值2...);# 字段名和字段值是一一对应的
-
-
代码准备,创建一个学生表:
-
/* 表名:student 表中字段: 学员id:sid int 姓名: sanme varchar(20) 年龄: age int 性别: sex char(1) 地址: address varchar(40) */ create table student( sid int, sname varchar(20), age int, sex char(1), address varchar(40) );
-
-
向学生表中添加数据
-
#写sql向student表中插入数据 -- 插入全部字段,将所有字段名都写出来 insert into student(sid,sname,age,sex,address) values(18,"make",20,"男","北京市");
-
-- 插入全部字段,但不写字段名称 insert into student values(2,"mali",20,"女","北京市");
-
-- 插入指定字段的数据值 insert into student(sname,address) values("wangwu","杭州"); # 这样写只会填充sanme和address的值,其他值均为NULL
-
-
注意:
- 值与字段必须对应,个数相同&数据类型相同
- 值的数据大小,必须在字段指定的长度范围内
- varchar char data 类型的值必须使用单/双引号包裹
- 如果插入空值,可以忽略不写,或插入null
- 如果插入指定字段的值,必须写上列名
修改数据
-
语法格式:
-
update 表名 set 字段名= “新的字段值” where 字段名 = “定位到输入字段名这一列”
-
-- 把表student中的wangwu这一行中的address改为成都 update student set address = "成都" where sname = "wangwu"
-
-- 如不指定某一行,会更改student表中address这一列所有的值,都会改变成成都 update student set address = "成都";
-
-- 可以同时修改多个列,中间用逗号隔开 update student set address = "广州", sex = "男";
-
删除数据
-
语法格式1:
-
-- 删除所有数据 delete from 表名
delete from student;
-
-
语法格式2:
-
-- 指定条件 删除数据 delete from 表名[where 字段名 = 值]
-
-- 删除 sid为1的数据 delete from student where sid = 1;
-
-
如果要删除表中所有数据,有两种做法
-
delete from 表名:不推荐,有多少条记录 就执行多少次删除操作,效率低(删除后数据有办法恢复)
-
truncate table 表名:推荐 先删除整张表,然后重新创建一张一模一样的表,效率高, 当一个表中条数非常多,又要做删除动作的时候,如果用delete会很慢,那我们可以使用truncate(删除后数据较难恢复)
-
truncate table student;
-