欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQl 添加、更新与删除数据

程序员文章站 2024-03-08 17:56:40
...
@author StormWangxhu
@date 2017/11/23

首先介绍一下查询语句:

SELECT * FROM 表名
[where 条件表达式 ];

添加数据

SQL语句:
INSERT INTO 语句

1、为表中所有的字段添加数据

向表中添加的数据称之为记录。

两种方式:

方式一:insert语句中指定所有字段名

在insert 语句中列出表中的所有字段名,其值与其字段名、类型要一一对应!
语法格式:

INSERT INTO 表名 (字段名1,字段名2...)
        VALUES(值1,值2...);

说明:
“字段名1,字段名2,…”表示数据表中的字段名称,此处应为表中所有字段名称。
“值1,值2…”表示每一个字段的值,其值顺序、类型须与对应的字段相匹配!

注意:
使用inset语句添加记录时,表名后的字段顺序可以与在其表中定义的顺序不一致,他们需要与values中值得顺序一致即可!

方式二:insert语句中不指定字段名。

其实,他就是在不指定字段名的情况下,直接用values为其默认赋值。

注意:
正因为没有字段名,则values中值得顺序必须与字段在表中顺序一致。

基本语法:

INSERT INTO 表名 VALUES(值1,值2,....);

2、为表的指定字段添加数据
即在insert语句中只向部分字段添加值,而其他值为默认值。关于默认值可以使用show create table 表名;查看字段的默认值。

基本语法:

INSERT INTO 表名(字段1,字段2...)
     VALUES (值1,值2...);

说明:
“字段1,字段2,…”表示数据中的字段名称,此处指表中的部分字段名称
“值1,值2,…”为指定字段的值,每一个值得顺序、类型必须与对应的字段相匹配。

注意:
(1)在为了某个字段赋值时,如果没有为其赋值,系统会自动为其赋值默认值。通过show create table 表名 ;可查询表的具体结构!

(2)如果某个字段在定义时添加了非空约束,但没有添加default约束,那么插入新纪录时就必须为该字段赋值,否则数据库系统会提示错误!

比如:
MySQl 添加、更新与删除数据

上述两种方法总结:
语法格式:

insert into 表名 (字段1,字段2...)
values(值1,值2...)

就方法一而言,是把所有字段都写出来,然后值也是全部都为之赋值上。
就方法二而言,相比于方法一,只不过是写出了部分字段,部分赋值,其余的则以默认值赋之。仅此而已!

更新数据

更新数据,即对表中存在的数据进行修改。
SQL语句:
UPDATE 语句
基本语法:

UPDATE 表名
  SET  字段名1=值1[,字段名2=值2...]
  [WHERE 条件表达式]

语法说明:
字段名1,字段名2,用于指定更新的字段名称
值1,值2,用于表示字段更新的新数据。
where条件表达式,可选参数,用于指定更新数据需要满足的条件。

UPDATE语句在更新表中数据时可 部分、全部更新

1、update更新部分数据

即 使用where子句指定更新条件,来更新表中的某一条或几条记录。

MySQl 添加、更新与删除数据

一般更新前,使用select * from 表名 [where 条件表达式]; 来查询表。

如更新student表中字段id值小于4的记录,将grade 字段值更新为99

MySQl 添加、更新与删除数据

2、update 更新全部数据

很简单,即没有where 语句,就会将表中的所有记录的指定字段1都进行更新!

基本语法:

UPDATE 表名
SET 字段名1=值1[字段名2=值2...];

举例:

MySQl 添加、更新与删除数据

上述两种类别总结:
其实很简单,只要记住了 UPDATE语句基本语法,部分更新还是全部更新全只在于where 条件表达式的有无和限定范围,仅此而已!

删除数据

即,对表中存在的记录进行删除。

基本语法:

DELETE FROM 表名 [ WHERE 条件表达式 ]  ;

说明:
表名指的是要执行删除操作的表。
where 条件表达式,可选参数,只要满足条件的记录会被删除!

DELETE 语句可   删除部分 、   全部数据

1、DELETE 删除部分数据

根据指定条件删除表中的某一条或者某几条记录,需 WHERE 子句指定要删除的条件。

MySQl 添加、更新与删除数据

或者这样查询:

MySQl 添加、更新与删除数据

删除成功!

2、DELETE 删除全部数据

很简单,即没有 `WHERE 子句 ;

DELETE FROM 表名  ;

MySQl 添加、更新与删除数据

结果来看,记录为空,说明表中的所有记录被成功删除!


补充:
即对删除表中全部数据另一种方法:
关键字: truncate
解释:截短

基本语法:

TRUNCATE [TABLE]   表名  ;

1、与delete语句区别:
(1)、truncate 只能删除全部数据,delete 后可以有where
(2)、truncate删除数据后,再像表中添加记录时,自动增加字段的默认初始值重新由 1 开始。delete删除表中积累后,再次向其添加记录时,自动增加字段的值为删除时该字段的最大值加 1 。

演示:

MySQl 添加、更新与删除数据

现在删除该表中记录:

MySQl 添加、更新与删除数据

接下来,由delete 语句删除表中记录。

MySQl 添加、更新与删除数据

添加数据:

MySQl 添加、更新与删除数据

。这是因为使用delete 语句中删除的记录总,id字段的最大值为4。再次添加为5。

(3)
delete语句每删除一条记录,都会在日志中记录。truncate语句不会记录。
导致:
* truncate 执行效率高于 delete *