mysql删除新添加数据_MySQL数据库基础(六)——SQL插入、更新、删除操作

MySQL数据库基础(六)——SQL插入、更新、删除操作

一、插入数据

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

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

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语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。

必须制定插入的列

insert into TSubject (subjectID,subjectName)

values ('0006','高等数学2')

insert into TSubject (subjectName,subjectID)

values ('数据结构','0007')

3、同时插入多条记录

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

INSERT INTO table_name (column_list)

VALUES (value_list1), (value_list2),...,

(value_listn);

示例:

insert into TSubject (subjectName,subjectID)

values ('C#开发','0008'),('苹果开发','0009')

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

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

INSERT INTO table_name1 (column_list1)

SELECT (column_list2) FROM table_name2

WHERE (condition)

示例

insert into ST (subectid,subjectName)

select subjectid,subjectName from TSubject where `Publisher` is not null

二、更新数据

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

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

UPDATE table_name

SET column_name1 = value1,

column_name2=value2,……,

column_namen=valuen

WHERE (condition);

示例:

update `TStudent` set sname=concat(sname,'net') where class='net'

update `TStudent` set sname=left(sname,3) where class='net'

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

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、根据另一张表的条件更改记录

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

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

update TStudent a join TScore b on a.`StudentID`=b.`StudentID`

set a.`Sname`=concat(sname,'*') where b.mark<60

同时更改两张表的列

实例:把分数低于60分的学生,加5分,并在学生姓名添加标记+

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分的学生姓名后加#号标记

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>] ;

删除学号小于00010的学生

delete from TStudent where studentid<'00010'

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

DELETE a FROM table_a a join table_b b on a.column1=b.column1 [WHERE condition>] ;

删除分数小于60分的学生

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>90);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值