MySQL表数据的增删改
大约 2 分钟约 727 字
由于数据表添加的内容很多,详细内容请查看ppt和电子书,这里只列举重要情况。
添加数据
使用INSERT...VALUES语句插入新记录
语法:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 数据表名 [(字段名,...)]
VALUES ({值 | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]
- 插入一条记录
首先来看下表的结构,如下图。
![运行结果](/assets/image-20221016124312528-O_jlaLCW.png)
代码如下。
insert into demo_insert values(1,'张三','zhangsan','2000-01-01 12:00:00');
![运行结果](/assets/image-20221016124923585-MoraKoBV.png)
- 插入部分语句
为没有自动增长或默认值等字段添加记录,代码如下。
insert into demo_insert (user,password,createtime) values ('李四','lisi','2014-01-01 12:00:00');
![运行结果](/assets/image-20221016125301911-TqWK34U4.png)
- 插入多条记录
代码如下(输入此代码之前删除了之前的记录)。
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');
![运行结果](/assets/image-20221016124557477-AXXas8W6.png)
使用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';
![运行结果](/assets/image-20221016151531168-oOED9Y5C.png)
使用INSERT ... SELECT添加数据
语法:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] 数据表名 [(字段名,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE 字段名=表达式, ... ]
其中,SELECT子句表示快速从一个或多个表中快速取出数据,并将这些数据作为行数据插入目标数据表。SELECT子句返回的结果集中的字段数和字段类型,必须和目标数据表完全一致。
例:先查询源表中数据。
select * from demo_table;
![运行结果](/assets/image-20221016152441397-Tz9KjWwt.png)
添加。
insert into demo_insert select * from demo_table;
![运行结果](/assets/image-20221016152751315-OEfTtxUb.png)
修改数据
使用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;
![运行结果](/assets/image-20221016153602142-j5Epug3G.png)
删除数据
通过DELETE语句删除数据
语法如下:
DELETE [LOW_PRIORITY][QUICK][IGNORE] FROM 表名
[WHERE 条件表达式]
[ORDER BY ...]
[LIMIT 行数];
如删除如下数据中id为3的数据行。
delete from demo_delete where id=3;
![运行结果](/assets/image-20221016182248120-EPfkeW5Y.png)
使用TRUNCATE TABLE语句删除数据
如果要删除所有表中的行,可通过该语句删除数据。语法如下:
TRUNCATE [TABLE] 数据表名;
例:
![运行结果](/assets/image-20221016183045508-qgm1B9n_.png)