前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL从删库到跑路(六)——SQL插入、更新、删除操作

MySQL从删库到跑路(六)——SQL插入、更新、删除操作

作者头像
良月柒
发布2019-03-20 15:56:45
1.1K0
发布2019-03-20 15:56:45
举报
文章被收录于专栏:程序员的成长之路

作者:天山老妖S 链接:http://blog.51cto.com/9291927

一、插入数据

1、为表的所有字段插入数据

使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值。

代码语言:javascript
复制
INSERT INTO table_name (column_list) VALUES (value_list);insert into `TSubject` (subjectID,subjectName,BookName,Publisher)values ('0004','英语','大学英语走遍美国','清华出版社')
可以不指定插入的列insert into `TSubject` values ('0005','高等数学','高等数学教材','清华出版社')

2、为表的指定字段插入数据

为表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。 必须制定插入的列

代码语言:javascript
复制
insert into TSubject (subjectID,subjectName) 
values ('0006','高等数学2')insert into TSubject (subjectName,subjectID) 
values ('数据结构','0007')

3、同时插入多条记录

INSERT语句可以同时向数据表中插入多条记录,插入时指定多个值列表,每个值列表之间用逗号分隔开,基本语法格式如下:

代码语言:javascript
复制
INSERT INTO table_name (column_list) 
VALUES (value_list1),  (value_list2),..., 
(value_listn);

示例:

代码语言:javascript
复制
insert into TSubject (subjectName,subjectID) 
values ('C#开发','0008'),('苹果开发','0009')

4、将查询结果插入到表中

INSERT语句和SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入多个行。

代码语言:javascript
复制
INSERT INTO  table_name1  (column_list1)    SELECT (column_list2) FROM table_name2       
    WHERE (condition)

示例

代码语言:javascript
复制
insert into ST (subectid,subjectName) select  subjectid,subjectName from TSubject where `Publisher` is not null

二、更新数据

1、根据本表的条件更改记录

MySQL中使用UPDATE语句更新表中的记录,可以更新特定的行或者同时更新所有的行。

代码语言:javascript
复制
UPDATE table_name 
     SET column_name1 = value1,
     column_name2=value2,……,
     column_namen=valuen     WHERE (condition);

示例:

代码语言:javascript
复制
update `TStudent` set sname=concat(sname,'net') where class='net'update `TStudent` set sname=left(sname,3) where class='net'

根据学生的生日 在学生的姓名后标记 1988大一 1987年大二 1986年大三 1985年大四

代码语言:javascript
复制
update TStudent set sname=CONCAT(sname,case year(birthday)%5 
  when 0 then '大四' when 1 then '大三' when 2 then '大二' else '大一' end)   where year(birthday)>=1985 and year(birthday)<=1988

2、根据另一张表的条件更改记录

代码语言:javascript
复制
UPDATE table_nameA a join table_nameB b 
on a. column_name1=b. column_name1     SET a.column_name1 = value1,
    a.column_name2=value2,……,
     a.column_namen=valuen    WHERE b. column_name2>20

实例:将有不及格的学生姓名后加*标记

代码语言:javascript
复制
update TStudent a join TScore b on a.`StudentID`=b.`StudentID`set a.`Sname`=concat(sname,'*') where b.mark<60

同时更改两张表的列 实例:把分数低于60分的学生,加5分,并在学生姓名添加标记+

代码语言:javascript
复制
update TStudent a join TScore b on a.`StudentID`=b.`StudentID`set a.`Sname`=concat(sname,'+'), b.mark=b.`mark`+5
 where b.mark<60;

子查询也能实现相同功能 以下语句将分数有大于98分的学生姓名后加#号标记

代码语言:javascript
复制
update TStudent set Sname=concat(sname,'#') where studentid in(select studentid from TScore where mark>98);

三、删除数据

1、根据本表的条件删除记录

从数据表中删除数据使用DELETE语句,DELETE语句允许WHERE子句指定删除条件。 DELETE FROM table_name [WHERE condition&gt;] ; 删除学号小于00010的学生 delete from TStudent where studentid&lt;'00010'

2、根据另一张表的条件删除记录

DELETE a FROM table_a a join table_b b on a.column1=b.column1 [WHERE condition&gt;] ; 删除分数小于60分的学生

代码语言:javascript
复制
delete a from TStudent a join TScore b on a.`StudentID`=b.`StudentID`where b.mark<60

也可以使用子查询实现。 删除分数表中分数大于90的学生 delete from TStudent where studentid in (select studentid from TScore where mark&gt;90);

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、插入数据
    • 1、为表的所有字段插入数据
      • 2、为表的指定字段插入数据
        • 3、同时插入多条记录
          • 4、将查询结果插入到表中
          • 二、更新数据
            • 1、根据本表的条件更改记录
              • 2、根据另一张表的条件更改记录
              • 三、删除数据
                • 1、根据本表的条件删除记录
                  • 2、根据另一张表的条件删除记录
                  相关产品与服务
                  云数据库 MySQL
                  腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档