跳至主要內容

MySQL表数据的增删改

大约 2 分钟约 727 字

由于数据表添加的内容很多,详细内容请查看ppt和电子书,这里只列举重要情况。

添加数据

使用INSERT...VALUES语句插入新记录

语法:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] 数据表名 [(字段名,...)]
    VALUES ({值 | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]
  1. 插入一条记录

首先来看下表的结构,如下图。

运行结果
运行结果

代码如下。

insert into demo_insert values(1,'张三','zhangsan','2000-01-01 12:00:00');
运行结果
运行结果
  1. 插入部分语句

为没有自动增长或默认值等字段添加记录,代码如下。

insert into demo_insert (user,password,createtime) values ('李四','lisi','2014-01-01 12:00:00');
运行结果
运行结果
  1. 插入多条记录

代码如下(输入此代码之前删除了之前的记录)。

insert into demo_insert
(user,password,createtime)
values
('张三','zhangsan','2015-01-01 12:00:00'),
('李四','lisi','2014-01-01 12:00:00'),
('王五','wangwu','2014-01-02 00:00:00');
运行结果
运行结果

使用INSERT ... SET插入数据

语法:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] 数据表名
    SET 字段名={值 | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE 字段名=表达式,...]

该语法相比于INSERT ... INTO,在于它直接设置字段的值,出错率更小。

如添加上面实例1的数据。

INSERT INTO demo_insert set id=1,user='张三',password='zhangsan',createtime='2000-01-01 12:00:00';
运行结果
运行结果

使用INSERT ... SELECT添加数据

语法:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] 数据表名 [(字段名,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]

其中,SELECT子句表示快速从一个或多个表中快速取出数据,并将这些数据作为行数据插入目标数据表。SELECT子句返回的结果集中的字段数和字段类型,必须和目标数据表完全一致。

例:先查询源表中数据。

select * from demo_table;
运行结果
运行结果

添加。

insert into demo_insert select * from demo_table;
运行结果
运行结果

修改数据

使用UPDATE语句可以修改数据,语法如下。

UPDATE [LOW_PRIORITY][IGNORE] 数据表名
SET 字段1=1[,字段2=2...]
[WHERE 条件表达式]
[ORDER BY...]
[LIMIT 行数];

需要特别注意,WHERE千万不能出错,否则会破坏所有已经更改的数据。

如将下图表中id为1的用户名改为王六。

 update demo_update set user='王六' where id=1;
运行结果
运行结果

删除数据

通过DELETE语句删除数据

语法如下:

DELETE [LOW_PRIORITY][QUICK][IGNORE] FROM 表名
[WHERE 条件表达式]
[ORDER BY ...]
[LIMIT 行数];

如删除如下数据中id为3的数据行。

delete from demo_delete where id=3;
运行结果
运行结果

使用TRUNCATE TABLE语句删除数据

如果要删除所有表中的行,可通过该语句删除数据。语法如下:

TRUNCATE [TABLE] 数据表名;

例:

运行结果
运行结果
上次编辑于:
贡献者: QI