一、插入数据
1.为所有字段插入数据
语法:insert [into] 表名[(字段名1,字段名2,字段名3,....)] values|value(值1,值2,值3....);
例如:创建一张表 student(sno 主键自增 sname 非空 age sex 默认 男 email 唯一),然后为 student 表所有字段插入数据
-- 创建一张表 student(sno 主键自增 sname 非空 age sex 默认 男 email 唯一)
create table student(
sno int(8) primary key auto_increment,
sname varchar(20) not null,
age int(2),
sex varchar(1) default '男',
email varchar(30) unique
);
-- 为 student 表所有字段插入数据
insert into student(sno,sname,age,sex,email) values(1,'张三',22,'男','[email protected]');
-- 查询表 student 中的数据
select * from student;
运行结果:
注意:表后面可以加字段名也可以不加字段名,如果没有添加字段名则插入的值顺序要与表结构字段顺序相同
-- 若后面不添加字段名则插入的值顺序要与表结构字段顺序相同
insert into student values(2,'李四',18,'男','[email protected]');
运行结果:
-- 若后面不添加字段名则插入的值顺序要与表结构字段顺序相同
insert into student values(2,'李四',18,'男','[email protected]');
运行结果:
2.为指定字段插入数据
语法:insert [into] 表名(字段名1,字段名2,字段名3,....) values|value(值1,值2,值3....);
例如:给表 student 中 sname 和 age 插入数据
-- 给表 student 中 sname 和 age 插入数据
insert into student(sname,age) values('王五',30);
select * from student;
运行结果:
3.使用SET方式插入数据
语法:insert [into] 表名 set 字段名1=字段值[,字段名2=字段值2…];
a.给所有字段插入多条数据
例如:使用 set 方式给 student 表所有字段插入数据
-- 使用 set 方式给 student 表所有字段插入数据
insert into student set sno=4,sname='赵六',age=23,email='[email protected]',sex='女';
select * from student;
运行结果:
b.给指定字段插入多条数据
例如:使用 set 方式给 student 表指定字段插入数据
-- 使用 set 方式给 student 表指定字段插入数据
insert into student set sname='小明',age=25,email='[email protected]';
select * from student;
运行结果:
4.同时插入多条数据
语法:
insert [into] 表名[(字段名1,字段名2,字段名3,....)]
values|value(值1,值2,值3....),
(值1,值2,值3....),
.......
(值1,值2,值3....);
例如:给表 student 同时插入多条数据
a.给所有字段插入多条数据
-- 给所有字段插入多条数据
insert into student(sno,sname,age,sex,email)
values(6,'小红',19,'女','[email protected]'),
(7,'小强',27,'男','[email protected]');
select * from student;
运行结果:
b.给指定字段插入多条数据
-- 给指定字段插入多条数据
insert into student(sname,age,sex)
values('小丽',19,'女'),
('文强',33,'男');
select * from student;
运行结果:
5.插入查询结果
语法:insert [into] 表名(字段名1,字段名2..) select 字段名1,字段名2... from 表 where 条件;
注意:插入表的字段和查询的字段个数和类型要保持一致
例如:将 student 表中的数据查询结果插入到 t_student 表
1.创建 t_student 表
2.使用插入查询结果插入数据
-- 将 student 表中的数据查询结果插入到 t_student 表
-- 1.创建 t_student 表
create table t_student(
sno int(8) primary key auto_increment,
sname varchar(20) not null,
age int(2),
sex varchar(2) default '女',
email varchar(30) unique
);
-- 2.使用插入查询结果插入数据
insert into t_student select * from student;
-- 查询 t_student
select * from t_student;
运行结果:
二、更新数据
1.更新指定数据
语法:update 表名 set 字段名1=值1 [,字段名2=值2....] where 条件;
例如:将 student 表中姓名为张三的姓名修改为"张老大"
-- 将 student 表中姓名为张三的姓名修改为"张老大"
update student set sname='张老大' where sname='张三';
select * from student;
运行结果:
2.更新全部数据
语法:update 表名 set 字段名1=值1 [,字段名2=值2....];
例如:将 student 表中年龄都修改为 18
-- 将 student 表中年龄都修改为 18
update student set age=18;
select * from student;
运行结果:
三、删除数据
1.删除指定数据
语法:delete from 表名 where 条件;
例如:删除 student 表 sno 学号大于 2 的学生信息
-- 删除 student 表 sno 学号大于 2 的学生信息
delete from student where sno>2;
select * from student;
2.删除全部数据
语法:delete from 表名;
例如:删除学生表 student 的全部数据
-- 删除学生表 student 的全部数据
delete from student;
select * from student;
运行结果:
3.truncate 关键字删除数据
语法:truncate 表名;
例如:删除 t_student 表中的全部数据
-- 删除 t_student 表中的全部数据
truncate t_student;
select * from t_student;
运行结果:
truncate 与 delete 删除全部记录的区别:
1.delete 是数据操纵语言 DML,而 truncate 是数据定义语言 DDL
2.delete 删除数据是一条一条删除
-
truncate 删除数据是保留表结构,直接删除数据,删除后表的状态相当于新表。
-
truncate 的效率比 delete 高。
3.delete 删除数据,会显示删除行数,truncate 不会显示。
4.使用 truncate 删除表数据,自增长 id 值会重新恢复到 1,而使用 delete 删除的话会接着之前的 id 值继续增长。
5.delete 操作可以进行回滚,truncate操作隐式提交,不可以回滚。
四、图形化界面操作数据
打开 MySQL 图形化管理工具 Navicat,选择表名右键 --> 点击打开表 --> 在空白字段下通过左下角的操作选项进行数据的添加和删除: