个人笔记:数据库——第三章 第三部分 DML 数据操纵语言
本文仅供参考学习使用,谢谢
SQL语言种类 | 操作 |
---|---|
DDL 数据定义语言 | create(创建) drop(删除) alte(修改) |
DQL 数据查询语言 | select(查询) |
DML 数据操纵语言 | insert(插入) update(更新) delete(删除) |
DCL 数据控制语言 | grant(授予) revoke(吊销) |
视图链接
文章目录
- DML 数据操纵语言
- 1.插入数据
- 1.插入元组
- 2.插入子查询结果:可以一次插入多个元组
- 2.修改数据
- 1.修改某一个元组的值
- 2.修改多个元组的值
- 3.带子查询的修改语句
- 3.删除数据
- 1. 删除某一个元组的值
- 2. 删除多个元组的值
- 3. 带子查询的删除语句
DML 数据操纵语言
也可以称之为数据的更新
1.插入数据
两种插入数据方式
1. 插入元组
2. 插入子查询结果:可以一次插入多个元组
1.插入元组
语句格式
INSERT INTO <表名> [(<属性列1>[,<属性列2 >...)]
VALUES (<常量1> [,<常量2>]... ); // 将新元组插入指定表中
INTO子句
- 指定要插入数据的表名及属性列
- 属性列的顺序可与表定义中的顺序不一致
- 没有指定属性列:表示要插入的是一条完整的元组,且 属性列属性与表定义中的顺序一致
- 指定部分属性列:插入的元组在其余属性列上取空值
VALUES子句
- 提供的值必须与INTO子句匹配
- 值的个数
- 值的类型
eg1:
//将一个新学生元组
//(学号:201215128;姓名:陈冬; 性别:男;所在系:IS;年龄:18岁)插入到Student表中。
INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage)
VALUES ('201215128','陈冬','男','IS',18);
eg2:
//插入一条选课记录( '200215128','1 ')。
INSERT INTO SC(Sno,Cno)
VALUES ('201215128 ',' 1 '); //关系数据库管理系统将在新插入记录的Grade列上自动地 赋空值。
//或者:
INSERT INTO SC
VALUES (' 201215128 ',' 1 ',NULL);
eg3:
//将学生张成民的信息插入到Student表中。
INSERT INTO Student
VALUES ('201215126','张成民','男’,18,'CS');
eg4:
insert into Hotel
values(‘H1035’,‘前进宾馆’,‘长春’);
2.插入子查询结果:可以一次插入多个元组
语句格式
INSERT INTO <表名> [(<属性列1> [,<属性列2>... )]子查询;
INTO子句
子查询
- SELECT子句目标列必须与INTO子句匹配
- 值的个数
- 值的类型
- SELECT子句目标列必须与INTO子句匹配
eg:
//对每一个系,求学生的平均年龄,并把结果存入数据库
//第一步:建表
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;
关系数据库管理系统在执行插入语句时会检查所 插元组是否破坏表上已定义的完整性规则
实体完整性
参照完整性
用户定义的完整性
- NOT NULL约束
- UNIQUE约束
- 值域约束
2.修改数据
语句格式
UPDATE <表名>
SET <列名>=<表达式> //SET子句给出<表达式>的值用于取代相应的属性列
[,<列名>=<表达式>]...
[WHERE <条件>]; //修改指定表中满足WHERE子句条件的元组
//如果省略WHERE子句,表示要修改表中的所有元组update 表名
set 列名=值
where 条件
三种修改方式
1. 修改某一个元组的值
2. 修改多个元组的值
3. 带子查询的修改语句
1.修改某一个元组的值
eg:
//将学生201215121的年龄改为22岁
UPDATE Student
SET Sage=22
WHERE Sno=' 201215121 ';
2.修改多个元组的值
eg:
//将所有学生的年龄增加1岁。
UPDATE Student
SET Sage= Sage+1;
3.带子查询的修改语句
eg1:
//将计算机科学系全体学生的成绩置零。
UPDATE SC
SET Grade=0
WHERE Sno IN
(SELETE Sno
FROM Student
WHERE Sdept= 'CS' );
eg2:
update Room
set type = ‘单人间’
where roomNo = ‘369’ and hotelNo in
(select hotelNo
from Hotel
where hotelName = ‘长春宾馆’);
关系数据库管理系统在执行修改语句时会检查修 改操作是否破坏表上已定义的完整性规则
- 实体完整性
- 主码不允许修改
- 用户定义的完整性
- NOT NULL约束
- UNIQUE约束
- 值域约束
3.删除数据
语句格式
DELETE FROM <表名> //删除指定表中满足WHERE子句条件的元组
[WHERE <条件>]; //指定要删除的元组 无该子句将会删除表中的全部元组delete from 表名
where 条件
三种删除方式
1. 删除某一个元组的值
2. 删除多个元组的值
3. 带子查询的删除语句
1. 删除某一个元组的值
eg:
//删除学号为201215128的学生记录。
DELETE FROM Student
WHERE Sno= 201215128 ';
eg2:
delete from Booking
where dateTo=‘20171202’;
2. 删除多个元组的值
//删除所有的学生选课记录。
DELETE FROM SC;
3. 带子查询的删除语句
eg:
//删除计算机科学系所有学生的选课记录。
DELETE FROM SC
WHERE Sno IN
(SELETE Sno
FROM Student
WHERE Sdept= 'CS') ;
个人笔记:数据库——第三章 第三部分 DML 数据操纵语言相关推荐
- 第三章第三十题(当前时间)(Current time)
第三章第三十题(当前时间)(Current time) *3.30(当前时间)修改编程练习题2.8,以12小时时钟制显示小时数. 下面是一个运行示例: Enter the time zone offs ...
- 《现代密码学》学习笔记——第三章 分组密码 [三]分组密码的运行模式
1.分组密码的运行模式 分组密码在加密时,明文的分组长度是固定的,而实际应用中待加密消息的数据量是不定的,数据格式多种多样. (1)为了能在各种应用场合使用DES,美国在FIPS PUS 74和8 ...
- 使用c语言编程首先要新建,【C语言编程入门系列】—— 第三章,编写第一个C语言程序!...
导读:一般学一门计算机语言的第一堂上机课("上机"顾名思义,上计算机,机你太美),就是往屏幕输出"hello world",本章也不例外. 3.1 Hello, ...
- 计算机组成原理第三章第三丶四节知识总结
3.3动态随机存取存储器 3.3.1DRAM存储元的工作原理 3.3.2DRAM芯片的逻辑结构 (1)增加了行地址锁存器和列地址锁存器.由于DRAM存储器 容量很大,地址线宽度相应要增加,这势必增加芯 ...
- Lua manual翻译——第三章第三、四节
因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...
- 六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)
DML语言 数据操作语言: 插入:insert 修改:update 删除:delete 一.插入语句 (1)方式一:经典的插入方式 语法: insert into 表名(列名,-)values(值1, ...
- 【hadoop生态之Hive】Hive的DML数据操纵语言【笔记+代码】
五.DML数据操作 5.1 数据导入 5.1.1 向表中装载数据(Load) 1)语法 hive>load data [local] inpath '/opt/module/datas/stud ...
- 关于对《Spring Security3》翻译 (第一章 - 第三章)
原文:http://lengyun3566.iteye.com/category/153689?page=2 翻译说明 最近阅读了<Spring Security3>一书,颇有收获(封面见 ...
- JAVA超全笔试/面试考试题.(500问)--第三章面试题全面收录
杂七杂八面试题收录(可能会有重复) 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承) ...
最新文章
- 通过xml 生成html页面,使用xmldom在服务器端生成静态html页面
- HTTPS(身披SSL协议的HTTP)
- 线性代数行列式计算之升阶法
- go语言学习(基本数据类型)
- 从头学习MVC4基础之视图
- (转)Java ConcurrentModificationException异常原因和解决方法
- 基于java坦克大战游戏
- 手动注册native方法
- 极通首次为中小企业量身定制EWEBS极速版
- 新媒体运营是什么专业
- linux——CPU使用率、内存使用率、磁盘使用率等详解
- 微信文章爬虫demo -- 综合实验和练习
- GraphPad Prism 如何将行标签添加到数据集丨使用教程
- Halcon面阵相机采像
- google外链怎么做?谷歌网站做外链的方法
- Sqlserver分页查询语句
- typora的基本使用方法(快捷键和基础设置)
- 切绳子【洛谷P1577】【二分】
- codeforce C. Ehab and Path-etic MEXs
- latex插入图片之后图片后面的文字跑到前面来了怎么办
热门文章
- MIGO创新挖矿,玩游戏也可以有收益
- 强化学习图鉴|人工智能新兴子领域,分布式强化学习是AI技术未来大规模实用化的关键?
- 支付宝:账号不存在,或对方关闭了“通过手机号或邮箱找到我“隐私开关!怎么解决?
- 【Java框架型项目从入门到装逼】第四节 - 编写第一个Servlet程序
- MySQL数据库重置密码
- 浏览器自动化框架沦为攻击者的工具
- 如何查询自己的公网IP
- 计算机用户的文件夹路径是什么,什么是路径名(Pathname)?
- LCD(液晶)显示器选购注意事项
- 百度秒收录软件 蜘蛛池搭建教程