MySQL数据更新

一、数据插入

两种插入数据方式

  1. 插入元组

  2. 插入子查询结果

可以一次插入多个元组

1.1 插入元组

语句格式:

INSERT
INTO <表名> [(<属性列1>[<属性列2 >)]
VALUES (<常量1> [<常量2>])

  1. 插入完整信息

[例1].将新生记录(1821104,陈冬,男,信息系,18岁)插入到Student表中。

INSERT INTO Student VALUES ('1821104', '陈冬', '男', 18, '信息系')
  1. 插入一行的部分数据值

[例2].在SC表中插入一新记录,成绩暂缺。

INSERT INTO SC(Sno, Cno) VALUES(1821105', 'c001')

1.2 插入子查询结果

语句格式

INSERT INTO <表名>  [(<属性列1> [<属性列2>)]

[例3].对每一个系,求学生的平均年龄,并把结果存入数据库。

CREATE  TABLE  Dept_age
(Sdept  CHAR(15) 	  /* 系名*/
Avg_age SMALLINT);/*学生平均年龄*/    
INSERT INTO  Dept_age(Sdept,Avg_age)
SELECT  Sdept,AVG(Sage)
FROM  Student
GROUP BY Sdept;-- 以院系为一组

二、数据删除

DELETE语句的语法格式为:

DELETE [ FROM ] <表名> [WHERE <删除条件>]      

2.1 无条件删除数据

无条件删除是删除表中全部数据,但保留表的结构。

[例4].删除所有学生的选课记录。

DELETE FROM SC			-- SC成空表 

**注意:**这样清空表之后,再添加数据,如果存在自增长的索引,那么再添加的数据的自增长的索引会依据清空之前的索引继续自增。

为了清空后重新开始可以使用 truncate 语句

truncate table <表名>

清空表中所有的记录,重置整个表的结构,索引会重新开始

2.2 有条件删除

分为两种情况:

  • 一种是基于本表条件的删除。

[例5].删除所有不及格学生的修课记录。

DELETE FROM SC WHERE Grade < 60
  • 另一种是基于其他表条件的删除。

[例6].删除计算机系不及格学生的修课记录。

-- 用子查询实现
DELETE FROM SC
WHERE Grade < 60 AND Sno IN (
SELECT Sno FROM Student 
WHERE Sdept = '计算机系' )

-- 用多表连接实现
DELETE FROM SC 
FROM SC JOIN Student 
ON SC.Sno = Student.Sno
WHERE Sdept = '计算机系' AND Grade < 60

三、数据修改

语句格式:

UPDATE  <表名>
SET  <列名>=<表达式>[<列名>=<表达式>][WHERE <条件>]

注意:

说明:

  1. SET子句

    指定修改方式

    要修改的列

    修改后取值

  2. WHERE子句

    指定要修改的元组

    缺省表示要修改表中的所有元组

3.1 三种修改方式

  1. 修改某一个元组的值

[例7] 将学生“1512101”的年龄改为22岁

UPDATE  Student
SET Sage=22
WHERE  Sno=' 1512101 ';
  1. 修改多个元组的值

[例8] 将所有学生的年龄增加1岁

UPDATE Student
SET Sage= Sage+1;
  1. 带子查询的修改语句

将计算机科学系全体学生的成绩加3分。

UPDATE SC
SET  Grade=Grade+3
WHERE  Sno IN(SELECT Sno
FROM Student
WHERE Sdept='计算机系');

3.2 完整性规则

​ RDBMS在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则。

  • 实体完整性

  • 主码不允许修改

  • 用户定义的完整性

    1. NOT NULL约束

    2. UNIQUE约束

    3. 值域约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值