前言
这篇文章主要介绍了:mysql 数据插入、更新及删除,文章围绕mysql 数据插入和更新及删除的相关资料展开内容。
如发现错误,及时告知,及时纠正,感谢支持。
准备工作
先使用一个数据库,并添加一张数据表,具体操作如下:
1)使用数据库
mysql> use itcsat; database changed
2)创建数据表
mysql> create table student
-> (
-> id int(5),
-> name char(20)not null,
-> sex char(5),
-> grade float(5)
-> );
query ok, 0 rows affected
3)查看数据表是否存在
mysql> show tables; +------------------+ | tables_in_itcsat | +------------------+ | student | +------------------+ 1 row in set
4)查看数据表信息 (两种方法)
mysql> show create table student; +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | table | create table | +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | student | create table `student` ( `id` int(5) default null, `name` char(20) not null, `sex` char(5) default null, `grade` float default null ) engine=myisam default charset=gbk | +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set
mysql> desc student;//查看的是表格的具体信息 +-------+----------+------+-----+---------+-------+ | field | type | null | key | default | extra | +-------+----------+------+-----+---------+-------+ | id | int(5) | yes | | null | | | name | char(20) | no | | null | | | sex | char(5) | yes | | null | | | grade | float | yes | | null | | +-------+----------+------+-----+---------+-------+ 4 rows in set
插入数据

第一种添加方法
直接一一对应添加数据。
eg1:
insert into student(id,name,sex,grade)values(1,"张三","男",89); query ok, 1 row affected
查看数据是否添加成功:
select *from student; mysql> select *from student; +----+------+-----+-------+ | id | name | sex | grade | +----+------+-----+-------+ | 1 | 张三 | 男 | 89 | +----+------+-----+-------+ 1 row in set
注意:可以改变字段名的顺序,但值也要相应改变,字段名必须和值相对应。
eg2:
mysql> insert into student(name,id,grade,sex)values("李四",2,80,"男");
query ok, 1 row affected
mysql> select *from student;
+----+------+-----+-------+
| id | name | sex | grade |
+----+------+-----+-------+
| 1 | 张三 | 男 | 89 |
| 2 | 李四 | 男 | 80 |
+----+------+-----+-------+
2 rows in set
第二种添加方法
可以没有字段名,这样的话就和你建立的数据表的字段名一致。
eg3:
mysql> insert into student values(3,"王二","男",98); query ok, 1 row affected mysql> select *from student; +----+------+-----+-------+ | id | name | sex | grade | +----+------+-----+-------+ | 1 | 张三 | 男 | 89 | | 2 | 李四 | 男 | 80 | | 3 | 王二 | 男 | 98 | +----+------+-----+-------+ 3 rows in set
第三种添加方法
字段可以不全部添加完,只添加其中几个。
eg4:
mysql> insert into student(id,name,grade)values(4,"麻子",89); query ok, 1 row affected mysql> select * from student; +----+------+------+-------+ | id | name | sex | grade | +----+------+------+-------+ | 1 | 张三 | 男 | 89 | | 2 | 李四 | 男 | 80 | | 3 | 王二 | 男 | 98 | | 4 | 麻子 | null | 89 | +----+------+------+-------+ 4 rows in set
eg5:
mysql> insert into student(id,sex,grade)values(5,"男",78); query ok, 1 row affected mysql> select *from student; +----+------+------+-------+ | id | name | sex | grade | +----+------+------+-------+ | 1 | 张三 | 男 | 89 | | 2 | 李四 | 男 | 80 | | 3 | 王二 | 男 | 98 | | 4 | 麻子 | null | 89 | | 5 | | 男 | 78 | +----+------+------+-------+ 5 rows in set

第四种添加方法
连续多行输入。
insert into student(id,name,sex,grade)values(6,"巴西","女",67),(7,"万茜","女",88); query ok, 3 rows affected records: 3 duplicates: 0 warnings: 0
eg6:
mysql> select *from student; +----+------+------+-------+ | id | name | sex | grade | +----+------+------+-------+ | 1 | 张三 | 男 | 89 | | 2 | 李四 | 男 | 80 | | 3 | 王二 | 男 | 98 | | 4 | 麻子 | null | 89 | | 5 | | 男 | 78 | | 6 | 巴西 | 女 | 67 | | 7 | 万茜 | 女 | 88 | +----+------+------+-------+ 7 rows in set
更新数据
mysql中使用update语句来更新表中的记录,其中的基本语法格式如下:

➀ . 更新一条记录中的一个字段
eg1:
mysql> update student set name="图雪芳" where id=1; query ok, 1 row affected rows matched: 1 changed: 1 warnings: 0 mysql> select *from student; +----+--------+------+-------+ | id | name | sex | grade | +----+--------+------+-------+ | 1 | 图雪芳 | 男 | 89 | | 2 | 李四 | 男 | 80 | | 3 | 王二 | 男 | 98 | | 4 | 麻子 | null | 89 | | 5 | | 男 | 78 | | 6 | 巴西 | 女 | 67 | | 7 | 万茜 | 女 | 88 | +----+--------+------+-------+ 7 rows in set
➁ . 更新几条记录中的相同字段
eg2:
mysql> update student set sex="女" where id<4; query ok, 3 rows affected rows matched: 3 changed: 3 warnings: 0 mysql> select *from student; +----+--------+------+-------+ | id | name | sex | grade | +----+--------+------+-------+ | 1 | 图雪芳 | 女 | 89 | | 2 | 李四 | 女 | 80 | | 3 | 王二 | 女 | 98 | | 4 | 麻子 | null | 89 | | 5 | | 男 | 78 | | 6 | 巴西 | 女 | 67 | | 7 | 万茜 | 女 | 88 | +----+--------+------+-------+ 7 rows in set
➂ . 更新整个数据表数据的某个信息
eg3:
mysql> update student set sex="女"; query ok, 2 rows affected rows matched: 8 changed: 2 warnings: 0 mysql> select *from student; +----+--------+-----+-------+ | id | name | sex | grade | +----+--------+-----+-------+ | 1 | 图雪芳 | 女 | 89 | | 2 | 李四 | 女 | 80 | | 3 | 王二 | 女 | 98 | | 4 | 麻子 | 女 | 89 | | 5 | | 女 | 78 | | 6 | 巴西 | 女 | 67 | | 7 | 万茜 | 女 | 88 | +----+--------+-----+-------+ 7 rows in set
删除数据
mysql中使用delete语句来删除表中的记录,其中语法格式如下:

ⅰ. 删除其中一条数据
eg1:
mysql> delete from student where id=5; query ok, 1 row affected mysql> select *from student; +----+--------+-----+-------+ | id | name | sex | grade | +----+--------+-----+-------+ | 1 | 图雪芳 | 女 | 89 | | 2 | 李四 | 女 | 80 | | 3 | 王二 | 女 | 98 | | 4 | 麻子 | 女 | 89 | | 6 | 巴西 | 女 | 67 | | 7 | 万茜 | 女 | 88 | +----+--------+-----+-------+ 6 rows in set
ⅱ . 删除其中的几条数据
eg3:
mysql> delete from student where id>4; query ok, 3 rows affected mysql> select *from student; +----+--------+-----+-------+ | id | name | sex | grade | +----+--------+-----+-------+ | 1 | 图雪芳 | 女 | 89 | | 2 | 李四 | 女 | 80 | | 3 | 王二 | 女 | 98 | | 4 | 麻子 | 女 | 89 | +----+--------+-----+-------+ 4 rows in set
ⅲ . 表中的记录全部删除
eg4:
mysql> delete from student; query ok, 4 rows affected mysql> select *from student; empty set
从查询结果中科院看到记录为空,说明表中所有的记录成功删除。
知识拓展:使用关键字truncate删除表中数据
准备工作
删除原来的student数据表,新建一个数据表,添加数据,查看一下,准备工作就准备完毕了。
mysql> drop table student;
query ok, 0 rows affected
mysql> show tables;
empty set
mysql> create table student
-> (
-> id int(10),
-> name char(20)
-> );
query ok, 0 rows affected
mysql> desc student; +-------+----------+------+-----+---------+-------+ | field | type | null | key | default | extra | +-------+----------+------+-----+---------+-------+ | id | int(10) | yes | | null | | | name | char(20) | yes | | null | | +-------+----------+------+-----+---------+-------+ 2 rows in set
mysql> insert into student(name)values("黄珊"),("黄蓉"),("郭襄"),("杨过"),("张无忌");
query ok, 5 rows affected
records: 5 duplicates: 0 warnings: 0
mysql> select *from student; +------+--------+ | id | name | +------+--------+ | null | 黄珊 | | null | 黄蓉 | | null | 郭襄 | | null | 杨过 | | null | 张无忌 | +------+--------+ 5 rows in set
使用truncate执行结果如下:
mysql> truncate table student; query ok, 0 rows affected mysql> select *from student; empty set
从查询结果中科院看到记录为空,说明表中所有的记录成功删除。
truncate与delete的区别
1,delete语句是dml语句,truncate语句通常被认为是ddl语句。
2,delete语句后面可以跟where字句,通过指定where子句中的条件表达式是删除满足条件的部分记录,而truncate语句只能用于删除表中所有记录。
3,使用truncate语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重新由1开始,而使用delete删除表中所有记录后,再次向表中添加记录时,自动增加字段的值为删除时该字段的最大值加1。
4,使用delete语句是,没删除一条记录都会在日志中记录,而使用truncate语句时,不会在日志中记录删除的内容,因此truncate语句的执行效率比delete语句高。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论