软件设计师12-数据库(数据操作)

简介: 数据操作二目运算1)并   RUS R U S={t|t∈R v t∈S}2)差:R-SR-S={t|t∈R v t∉ S}3)交: R ∩ SR ∩ S={t|t∈R^t∈S}3)笛卡儿积关系运算1)投影   从关系R中选择出若干属性列组成新的关系(垂直分割,消除列),去除重复元组   例:下图表示 从Student中查询学生的姓名和所在地。


img_2ea159161269a9a95e2aae120d7c9ec7.png

数据操作

img_edf6d200688ea638bb98ad8601284fe5.jpe

二目运算

1)并   RUS

 R U S={t|t∈R v t∈S}

img_ac115c6ae5d5b1501b0cafdba56b3f9c.png

2)差:R-S

R-S={t|t∈R v t∉ S}


img_01c73dfb394f249674224f1bb08c2212.png

3)交: R ∩ S

R ∩ S={t|t∈R^t∈S}

img_cc2339dbba18c0a32d8f800264601cef.png

3)笛卡儿积

img_5664adf0f28349a68f6499db1d8a9b72.png

关系运算

1)投影

   从关系R中选择出若干属性列组成新的关系(垂直分割,消除列),去除重复元组

   例:下图表示 从Student中查询学生的姓名和所在地。2、5代表Sname和Sdept所处下标

img_06a60d6f4a529b01e29b6aa37c7f2203.jpe

2)选择

 选择操作所在关系R中满足给定条件的所有元组

 从Student中查询IS系的学生 5 代表第五列

img_982f3ab617ffc1e5241dd99596e0fb06.jpe

3)连接

从两个关系的笛卡尔积中选择满足一定条件的元组


img_84d8596d3f7d86c3f83025e7f5900852.jpe

  1)一般连接 

  R和S的广义笛卡儿积中C<E的

img_dc9ef56ed26ee20ffbd3b924ddc8eb9f.jpe

  2)等值连接

  从R与S的广义笛卡儿积中选取A B 相同的元组

img_5ba93c6d10df131d7972232e02ce56bb.jpe
img_016e231b6f8538f11df97547b2b639ed.jpe

  3)自然连接

  特殊的等值连接(比较的必须是相同属性值、去掉其中一个相同列)

     4)外连接

      R与S进行自然连接时,舍弃的元组处填NULL

          5)左外连接

           R与S进行自然连接时,把左边关系中R要舍弃的保留下来

           S中为NULL的元组不清除,清除R为NULL

 6)右外连接

与上面相反,舍左留右

R为NULL的元组不清除,清除S中为NULL的元组


img_f6ab8135132859a3cc796e78672e334b.jpe

7)除

R的B与S的B 、R的C与S的C需来自同一个域

img_8121f090b4e63814e38e8e4993144a82.jpe

基本表

独立存在,一个关系对应一个基本表,一个或多个基本表对应一个存储文件

1)定义基本表

CREATE TABLE <表名>

(<列名>{,<列名>|<表约束>})

img_ba98a79a3d38d05f13e445e97adedd2b.jpe

2)修改基本表

ALTER TABLE <表名>

[ADD <新列名> <数据类型>[完整性约束]]:增加新列和新的完整性约束条件

[ALTER COLUMN <列名><数据类型>]:

修改列

[DROP <COLUMN 列名>|<完整性约束名>]:删除指定列或完整性约束条件

例:ALTER TABLE S ADD CLASS_NO CHAR(6)

为表s添加属性CLASS_NO ,类型为char,长度为6

3)删除表

DROP TABLE<表名> drop table s 数据删除,视图仍在,但无用

视图

一个虚拟表,从一个或多个基本表导出,存放视图定义,随基本表改变

1)定义视图

    CREATE VIEW<视图名>[(<列名>[,<列名>]......)]

    AS

    <子查询>

     [with check option]

   例:CREATE VIEW IS_Student

           AS

           SELECT Sno,Sname,Sage FROM Student

            where Sdept='IS' With CheckOption

             创建视图IS_Student,数据来源:Student表的IS 系 的学生的Sno ,Sname, Sage信息

2)删除视图

DROP VIEW <视图名> DROP VIEW S

数据查询 SELECT


img_2c43aabc699e0753709334123ed11f93.jpe

3 按照 SELECT语句指定列,得到投影结果集

2 从FROM子句指定的基本表或视图中,3

SELECT Sno,Sname,Age FROM Student

1 根据WHERE子句的检索条件,2,选取满足条件元祖,3

SELECT Sno,Cno,Score FROM SC WHERE Score>85

WHERE Tname LIKE '__力%' 查询姓名中第二个汉字是“力”的

WHERE Cno IN ('c1','c2') 查询Cno是c1和c2其中一个的

GROUP 将查询结果按照<列名1>相同的值进行分组;后加HAVING,只输出满足其条件的元组

ORDER 查询结果还按<列名>的值排序

连接查询

1)行连接

2)关键字JOIN连接


img_b55cc33d54838029a5a8b23b9c132f2d.jpe

嵌套查询


img_7859ec381ed06c18c405dd5f1ca3a6c1.jpe

例:

SELECT 部门, AVG(应发工资) AS平均工资 FROM 工资表 GROUP BY 部门 HAVING COUNT(姓名)>2

AVG(应发工资) AS平均工资 计算应发工资的平均值并将及返回给平均工资

查询人数大于二部门和部门员工的应发工资的平均工资

目录
相关文章
|
4天前
|
SQL 开发框架 数据库
".NET开发者的超能力:AgileEAS.NET ORM带你穿越数据库的迷宫,让数据操作变得轻松又神奇!"
【8月更文挑战第16天】AgileEAS.NET是面向.NET平台的企业应用开发框架,核心功能包括数据关系映射(ORM),允许以面向对象方式操作数据库,无需编写复杂SQL。通过继承`AgileEAS.Data.Entity`创建实体类对应数据库表,利用ORM简化数据访问层编码。支持基本的CRUD操作及复杂查询如条件筛选、排序和分页,并可通过导航属性实现多表关联。此外,提供了事务管理功能确保数据一致性。AgileEAS.NET的ORM简化了数据库操作,提升了开发效率和代码可维护性。
16 5
|
20天前
|
SQL 关系型数据库 索引
关系型数据库SQLserver插入数据
【7月更文挑战第28天】
30 4
|
5天前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
3天前
|
存储 NoSQL 算法
使用图数据库进行复杂数据建模:探索数据关系的无限可能
【8月更文挑战第17天】图数据库以其高效的关系查询能力、直观的数据表示方式、灵活的数据模型和强大的可扩展性,在复杂数据建模和查询中展现出了巨大的潜力。随着大数据和人工智能技术的不断发展,图数据库的应用领域也将不断拓展和深化。对于需要处理复杂关系网络和数据关联性的场景来说,图数据库无疑是一个值得深入研究和应用的强大工具。
|
4天前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
17 2
|
9天前
|
SQL 关系型数据库 MySQL
"告别蜗牛速度!解锁批量插入数据新姿势,15秒狂插35万条,数据库优化就该这么玩!"
【8月更文挑战第11天】在数据密集型应用中,高效的批量插入是性能优化的关键。传统单条记录插入方式在网络开销、数据库I/O及事务处理上存在明显瓶颈。批量插入则通过减少网络请求次数和数据库I/O操作,显著提升效率。以Python+pymysql为例,通过`executemany`方法,可实现在15秒内将35万条数据快速入库,相较于传统方法,性能提升显著,是处理大规模数据的理想选择。
26 5
|
5天前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
5天前
|
JavaScript 前端开发 数据处理
在vue中的form表单中下拉框中的数据来自数据库查询到的数据
这篇文章介绍了如何在Vue框架的表单中将下拉框的数据通过后端接口从数据库动态查询并加载,包括前端HTML代码、JavaScript数据处理、后端接口实现以及表单提交的完整流程。
在vue中的form表单中下拉框中的数据来自数据库查询到的数据
|
6天前
|
SQL 前端开发 数据库
逻辑删除数据库中的数据。
这篇文章介绍了逻辑删除和物理删除的概念与区别,并详细演示了如何在数据库中实现逻辑删除,包括在表中添加一个表示删除状态的字段,并通过修改该字段的值来实现数据的逻辑删除,同时提供了相应的SQL语句、DAO层、Service层和Controller层的代码示例以及前端页面的展示。
逻辑删除数据库中的数据。
|
9天前
|
固态存储 关系型数据库 MySQL
"惊!20亿数据秒速入MySQL,揭秘数据库极速插入的黑科技,你不可不知的绝密技巧!"
【8月更文挑战第11天】面对20亿级数据量,高效插入MySQL成为挑战。本文探讨优化策略:合理设计数据库减少不必要的字段和索引;使用批量插入减少网络往返;优化硬件如SSD和内存及调整MySQL配置;并行处理加速插入;附Python示例代码实现分批导入。这些方法将有效提升大规模数据处理能力。
25 2