DML对表进行数据操作-知识点:
-- 操作库的前提: 先启动mysql,并连接它
-- 创建day02库
create database day02;
-- 使用day02库
use day02;
-- 操作表的前提: 先创建库,并使用它
-- 创建表
create table students(
id int,
name VARCHAR(100),
age int
);
操作数据的前提: 先有表,并有对应字段
插入数据记录: insert into 表名 (字段名...) values (具体值...) , (具体值...) ...;
注意1: 具体值要和前面的字段名以及顺序一一对应上
注意2: 如果要插入的是所有字段,那么字段名可以省略(默认代表所有列都要插入数据)
注意3: 如果要插入多条记录,values后多条数据使用逗号分隔
-- 增加数据
插入1条数据
insert into students (id,name,age) values (1,'张三',18);
insert into students values (2,'李四',28);
插入多条数据
insert into students (id,name,age) values (1,'张三',18),(2,'李四',28);
insert into students values (3,'王五',38),(4,'赵六',48);
-- 删除数据
删除数据记录: delete from 表名 [where 条件];
注意: 如果没有加条件就是删除所有数据
delete from students where name = '张三';
注意: 如果不加条件就会删除所有数据(慎用)
delete from students ;
-- 清空所有数据:
方式1: delete from 表名; 注意:此方式有警告,删完之后会继承顺序
方式2: truncate [table] 表名; 注意: 此方式没有警告,删完之后不会继承顺序
-- truncate经常用于清空所有数据
truncate students;
delete和truncate的区别?
共同点: 都能删除表中所有数据
不同点:
delete删除所有数据: 自增顺序保留,下次再插入的时候继续自增
truncate删除所有数据: 自增顺序重置,下次再插入数据的时候从1重新开始自增
delete删除所有数据: 自增顺序保留,下次再插入的时候继续自增
delete from stu3; -- 系统警告2次(慎用)
如果再次插入数据,自增顺序按照删除前最后值继续
insert into stu3(name, age) VALUES ('王五',38);
insert into stu3(name, age) VALUES ('王五',38);
insert into stu3(name, age) VALUES ('王五',38);
truncate删除所有数据: 自增顺序重置,下次再插入数据的时候从1重新开始自增
truncate stu3; -- 没有警告(慎用)如果真要清空所有数据建议用truncate
如果再次插入数据,自增重新从1开始自增
insert into stu3(name, age) VALUES ('王五',38);
insert into stu3(name, age) VALUES ('王五',38);
insert into stu3(name, age) VALUES ('王五',38);
--修改数据
修改数据记录: update 表名 set 字段名=值 [where 条件];
注意: 如果没有加条件就是修改对应字段的所有数据
update students set age = 19 where name = '张三';
注意: 如果不加条件就会修改所有数据(慎用)
update students set age = 19;