当前课程知识点:数据库概论 > 第三章 结构化查询语言SQL > 3.3 SQL数据更新DML > SQL数据更新DML
各位同学大家好
我是来自云南大学软件学院的张璇
在定义了数据库和数据库中的数据表后
我们就可以往表里面填充数据了
这时
我们可以使用SQL的数据操作语言DML
下面主要介绍插入
修改和删除命令
它们分别是Insert
Update和Delete
让我们先看看数据插入命令
我们使用Insert into动词
在后面指向要插入
数据的数据表标识符
然后在values后面的括弧中
定义插入的数据即可
举个例子
我们将一个新学生记录
他的学号95020
他的名字是陈冬
性别男
年龄18岁的学生
插入到学生数据表中
那么SQL语句就可以写为
INSERT INTO S VALUES
后面写上他的学号
姓名
性别和年龄
其中的字符型数据
需要用单引号引起来
SQL的数据修改命令
使用Update动词
修改指定表中满足WHERE条件的元组
使用SET子句给出的值
取代相应的列值
如果我们省略WHERE条件
则表示要修改表中的所有列值
我们以成绩数据表为例
如果我们要把
学号为95020的学生的
C1课程的成绩改为98分
SQL语句写为
Update SC Set grade等于98
设置条件Where S#等于95020
并且条件还有C#等于C1
这里Where条件指定了学生的学号
和C1课程
Set子句把成绩改为98
如果要把所有学生的成绩都提高10%
SQL语句就写为
Update SC Set grade等于grade乘上1.1
这里不使用Where子句
是修改所有学生的grade成绩
并且成绩grade乘上1.1
提高10%。
最后
如果要删除数据表中的数据
我们使用Delete动词
删除操作
使用Delete from加数据表标识符
可以使用where限定删除条件
或不使用where子句删除所有数据
例如删除学号为S3的学生的数据记录
就使用Delete From S
设置 Where条件为学号 S#等于S3
删除所有学生的选课记录
就使用Delete From SC
不设置where条件
好了
现在我们数据表中有数据
下面我们会重点介绍
SQL语言常用的查询操作命令
SQL语言中我们经常使用的命令
是查询操作Select
并且
查询操作的语言也更为丰富
下面
我们要稍微多用一些时间来介绍
首先
看一下Select命令的语法格式
在这里Select子句定义了查询目标
from子句指定从哪一个数据表中获取查询目标
而where子句指定查询条件
在Select子句后面可选ALL
Distinct和TOP N三个条件
先说Distinct
使用Distinct就意味着
查询返回的结果不需要保留重复的数据
比如说我们查询学生的入学年龄
就会有大量重复的数据
因为大部分同学们都在18到19
或者20岁入学
使用Distinct就不返回重复的数据
和Distinct相反
ALL是返回所有数据
即便我们有重复数据也全部返回
而TOP N则仅返回前N条数据记录
下面我们通过一些具体的事例
来说明一下如何使用SQL
进行最基本的数据库查询操作
我们仍然以学生数据库为例
现在
我们在三个数据表中
分别已经插入了一些数据
如果我们要查询全体学生的学号和姓名
就使用select 学生的学号s#
逗号分隔开
学生姓名sname from s
这里s#和sname是要查询的目标
是数据表里列的名称
它们分别是学号和姓名
s是学生表的标识符
而如果我们要查询
全体学生的详细记录
select后面不需要
一一列出查询目标的所有列标识符
只需要用星号即可
而from s和前面一样
从S这个表里面获取数据
当然
我们的查询结果
还可以在经过一些运算后输出
比如说
我们要查询全体学生的姓名
和他的出生年份
在我们数据表中
是有学生的入学年龄
而没有他的出生年份
要得到出生年份
就用学生的入学学年度
减去入学年龄即可
假设学生2010年入学
则SQL语句这样写
select 学生姓名sname
学生出生年份需要做一个运算
用2010减掉age
最后
from s就得到了我们想要的结果
下面我们使用where子句
增加一下查询的限定条件
比如说要查询全体男学生的名单
我们使用Select * from s
增加where子句
就是将查询目标条件设置为
性别gender等于男就行了
如果要查询所有
年龄在18岁以下的学生姓名和年龄
就Select sname,age
和前面一样from s
从s表选取
增加where条件
Age小于18
不过这里有一个等价的SQL命令
Select sname,age from s
Where条件可以写为
not age大于等于18
也就是说
SQL语言的查询命令
可以有多种等价形式
在这里我们后面介绍的时候
会看到多种等价形式
每一种形式都是正确的
使用哪一种形式可以由各位同学
自己来根据自己的思维方式而选择
到这里
我们介绍了
如何使用SQL数据操作语言DML
完成数据表数据的插入
修改
删除和最简单的基本查询
插入使用Insert命令
修改使用Update命令
删除使用Delete命令
查询使用Select命令
当然我们强调过
SQL的查询命令是最为丰富的语言部分
这里仅介绍了基本查询命令
下面我们要继续增加
查询select命令中的子句
以应对更为复杂的查询需求
谢谢大家
-数据库概述
--Video
-导论--数据库概述
-1.1 数据库基础
--Video
-第一章 数据库基础--1.1 数据库基础
-2.1 CAP数据库
--CAP数据库
-第二章 关系运算--2.1 CAP数据库
-2.2 自然关系运算1
-- 自然关系运算1
-第二章 关系运算--2.2 自然关系运算1
-2.3 自然关系运算2
--自然关系运算2
-第二章 关系运算--2.3 自然关系运算2
-3.1 SQL概述
-- SQL概述
-3.1 SQL概述--作业
-3.2 数据定义DDL
--数据定义DDL
-3.2 数据定义DDL--作业
-3.3 SQL数据更新DML
-3.3 SQL数据更新DML--作业
-3.4 复杂SQL查询操作1
-第三章 结构化查询语言SQL--3.4 复杂SQL查询操作1
-3.5 复杂SQL查询操作2
-第三章 结构化查询语言SQL--3.5 复杂SQL查询操作2
-4.1 数据完整性
-4.1 数据完整性--作业
-4.2 完整性约束
--完整性约束
-4.2 完整性约束--作业
-4.3 外键约束
--外键约束
-4.3 外键约束--作业
-4.4 触发器
--触发器
-4.4 触发器--作业
-4.5 视图
--视图
-4.5 视图--作业
-4.6 安全性
--安全性
-4.6 安全性--作业
-5.1 索引
--Video
-5.2 B+树索引
--Video
-6.1 函数依赖
--Video
-6.2 Armstrong公理
--Video
-6.3 无损分解
--Video
-6.4 范式举例
--Video
-6.5 三种范式
--Video
-6.5 三种范式--作业
-7.1-E-R模型概述
--E-R模型概述
-7.2 E-R模型详解
--Video
-7.3 E-R模型的拓展
--Video
-7.4 E-R模型实例分析
--Video
-8.1 事务的ACID性质介绍
--ACID介绍
-8.1 事务的ACID性质介绍--作业
-8.2 事务经历
--事务经历
-8.2 事务经历--作业
-8.3 可串行化调度和前趋图
-8.3 可串行化调度和前趋图--作业
-8.4 两阶段封锁
--两段锁协议
-8.4 两阶段封锁--作业
-8.5 隔离级别
--隔离级别
-8.5 隔离级别--作业
-8.6 事务恢复
--事务恢复
-8.6 事务恢复--作业
-9.1 数据库使用介绍
--数据库使用介绍
-9.2 Java访问数据库
-9.2 Java访问数据库--作业
-10.1 数据库新技术概述
--Video