本文仅供参考学习使用,谢谢

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子句

    1. 指定要插入数据的表名及属性列
    2. 属性列的顺序可与表定义中的顺序不一致
    3. 没有指定属性列:表示要插入的是一条完整的元组,且 属性列属性与表定义中的顺序一致
    4. 指定部分属性列:插入的元组在其余属性列上取空值
  • VALUES子句

    1. 提供的值必须与INTO子句匹配
    2. 值的个数
    3. 值的类型

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子句

  • 子查询

    1. 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;

关系数据库管理系统在执行插入语句时会检查所 插元组是否破坏表上已定义的完整性规则

  1. 实体完整性

  2. 参照完整性

  3. 用户定义的完整性

    • 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 = ‘长春宾馆’);

关系数据库管理系统在执行修改语句时会检查修 改操作是否破坏表上已定义的完整性规则

  1. 实体完整性
  2. 主码不允许修改
  3. 用户定义的完整性
    • 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 数据操纵语言相关推荐

  1. 第三章第三十题(当前时间)(Current time)

    第三章第三十题(当前时间)(Current time) *3.30(当前时间)修改编程练习题2.8,以12小时时钟制显示小时数. 下面是一个运行示例: Enter the time zone offs ...

  2. 《现代密码学》学习笔记——第三章 分组密码 [三]分组密码的运行模式

    1.分组密码的运行模式   分组密码在加密时,明文的分组长度是固定的,而实际应用中待加密消息的数据量是不定的,数据格式多种多样. (1)为了能在各种应用场合使用DES,美国在FIPS PUS 74和8 ...

  3. 使用c语言编程首先要新建,【C语言编程入门系列】—— 第三章,编写第一个C语言程序!...

    导读:一般学一门计算机语言的第一堂上机课("上机"顾名思义,上计算机,机你太美),就是往屏幕输出"hello world",本章也不例外. 3.1 Hello, ...

  4. 计算机组成原理第三章第三丶四节知识总结

    3.3动态随机存取存储器 3.3.1DRAM存储元的工作原理 3.3.2DRAM芯片的逻辑结构 (1)增加了行地址锁存器和列地址锁存器.由于DRAM存储器 容量很大,地址线宽度相应要增加,这势必增加芯 ...

  5. Lua manual翻译——第三章第三、四节

    因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...

  6. 六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)

    DML语言 数据操作语言: 插入:insert 修改:update 删除:delete 一.插入语句 (1)方式一:经典的插入方式 语法: insert into 表名(列名,-)values(值1, ...

  7. 【hadoop生态之Hive】Hive的DML数据操纵语言【笔记+代码】

    五.DML数据操作 5.1 数据导入 5.1.1 向表中装载数据(Load) 1)语法 hive>load data [local] inpath '/opt/module/datas/stud ...

  8. 关于对《Spring Security3》翻译 (第一章 - 第三章)

    原文:http://lengyun3566.iteye.com/category/153689?page=2 翻译说明 最近阅读了<Spring Security3>一书,颇有收获(封面见 ...

  9. JAVA超全笔试/面试考试题.(500问)--第三章面试题全面收录

    杂七杂八面试题收录(可能会有重复) 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承) ...

最新文章

  1. 通过xml 生成html页面,使用xmldom在服务器端生成静态html页面
  2. HTTPS(身披SSL协议的HTTP)
  3. 线性代数行列式计算之升阶法
  4. go语言学习(基本数据类型)
  5. 从头学习MVC4基础之视图
  6. (转)Java ConcurrentModificationException异常原因和解决方法
  7. 基于java坦克大战游戏
  8. 手动注册native方法
  9. 极通首次为中小企业量身定制EWEBS极速版
  10. 新媒体运营是什么专业
  11. linux——CPU使用率、内存使用率、磁盘使用率等详解
  12. 微信文章爬虫demo -- 综合实验和练习
  13. GraphPad Prism 如何将行标签添加到数据集丨使用教程
  14. Halcon面阵相机采像
  15. google外链怎么做?谷歌网站做外链的方法
  16. Sqlserver分页查询语句
  17. typora的基本使用方法(快捷键和基础设置)
  18. 切绳子【洛谷P1577】【二分】
  19. codeforce C. Ehab and Path-etic MEXs
  20. latex插入图片之后图片后面的文字跑到前面来了怎么办

热门文章

  1. MIGO创新挖矿,玩游戏也可以有收益
  2. 强化学习图鉴|人工智能新兴子领域,分布式强化学习是AI技术未来大规模实用化的关键?
  3. 支付宝:账号不存在,或对方关闭了“通过手机号或邮箱找到我“隐私开关!怎么解决?
  4. 【Java框架型项目从入门到装逼】第四节 - 编写第一个Servlet程序
  5. MySQL数据库重置密码
  6. 浏览器自动化框架沦为攻击者的工具
  7. 如何查询自己的公网IP
  8. 计算机用户的文件夹路径是什么,什么是路径名(Pathname)?
  9. LCD(液晶)显示器选购注意事项
  10. 百度秒收录软件 蜘蛛池搭建教程