当前位置: 首页 > news >正文

怎么套用模板做网站自己怎样建网站做微商

怎么套用模板做网站,自己怎样建网站做微商,莱芜网站建设怎么样,响应式网站设计建设制作本文介绍关系数据库的设计思想#xff1a;在 SQL 中#xff0c;一切皆关系。 在计算机龄域有许多伟大的设计理念和思想#xff0c;例如#xff1a; 在 Unix 中#xff0c;一切皆文件。在面向对象的编程语言中#xff0c;一切皆对象。 关系数据库同样也有自己的设计思想在 SQL 中一切皆关系。 在计算机龄域有许多伟大的设计理念和思想例如 在nbsp;Unixnbsp;中一切皆文件。在面向对象的编程语言中一切皆对象。 关系数据库同样也有自己的设计思想 在 nbsp;SQLnbsp;中一切皆关系。 01 关系模型 关系模型Relational model由 E.F.Codd 博士于 1970 年提出以集合论中的 关系概念为基础无论是现实世界中的实体对象还是它们之间的联系都 使用关系表示。我们在数据库系统中看到的关系就是 二维表Table由 行Row和 列Column组成。因此也可以说 关系表是由 数据行构成的集合。 关系模型由数据结构、关系操作、完整性约束三部分组成。 关系模型中的数据结构就是关系表包括基础表、派生表查询结果和虚拟表视图。常用的关系操作包括增加、删除、修改和查询CRUD使用的就是 SQL 语言。其中查询操作最为复杂包括选择Selection、投影Projection、并集Union、交集Intersection、差集Exception以及笛卡儿积Cartesian product等。完整性约束用于维护数据的完整性或者满足业务约束的需求包括实体完整性主键约束、参照完整性外键约束以及用户定义的完整性非空约束、唯一约束、检查约束和默认值。 我们今天的主题是关系操作语言也就是 SQL。 02 面向集合 SQL 结构化查询语言是 操作关系数据库的标准语言 。 SQL 非常接近英语使用起来非常简单。 它在设计之初就考虑了非技术人员的使用需求我们通常只需说明 想要的结果 What而将数据处理的过程How交给数据库管理系统。 所以说SQL 才是真正给人用的编程语言 接下来我们具体分析一下关系的各种操作语句目的是为了让大家能够了解 SQL 是一种面向集合的编程语言它的操作对象是集合操作的结果也是集合。 在关系数据库中关系、表、集合三者通常表示相同的概念。 03 SELECT 下面是一个简单的查询语句 SELECTnbsp;employee_id, first_name, last_name, hire_date nbsp;nbsp; FROMnbsp;employees; 它的作用就是从 employees 表中查询员工信息。 显然我们都知道 FROM 之后是一个表关系、集合。不仅如此整个查询语句的结果也是一个表。 所以我们可以将上面的查询作为表使用 SELECTnbsp;* nbsp;nbsp; FROMnbsp;( SELECTnbsp;employee_id, first_name, last_name, hire_date nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; FROMnbsp;employees) t; 括号内的查询语句被称为派生表我们给它指定了一个别名叫做 t。同样整个查询结果也是一个表这就意味着我们可以继续嵌套虽然这么做很无聊。 我们再看一个 PostgreSQL 中的示例 -- PostgreSQL SELECTnbsp;* nbsp;nbsp; FROMnbsp; upper( sql); | upper | | -------| | SQL | upper()nbsp;是一个大写转换的函数。它出现再 FROM 子句中意味着它的结果也是一个表只不过是nbsp;1 行 1 列的特殊表。 SELECTnbsp;子句用于指定需要查询的字段可以包含表达式、函数值等。SELECT 在关系操作中被称为投影Projection看下面的示意图应该就比较好理解了。 除了 SELECT 之外还有一些常用的nbsp;SQLnbsp;子句。 WHEREnbsp;用于指定数据过滤的条件在关系运算中被称为选择Selection示意图如下 ORDER BYnbsp;用于对查询的结果进行排序示意图如下 总之SQLnbsp;可以完成各种数据操作例如过滤、分组、排序、限定数量等所有这些操作的对象都是关系表结果也是关系表。 在这些关系操作中有一个比较特殊就是分组。 04 GROUP BY 分组 GROUP BY操作和其他的关系操作不同因为它改变了关系的结构。 来看下面的示例 SELECTnbsp;department_id,nbsp; count(*), first_name nbsp;nbsp; FROMnbsp;employees nbsp; GROUPnbsp; BYnbsp;department_id; 该语句的目的是按照部门统计员工的数量但是存在一个语法错误就是 first_name 不能出现在查询列表中。原因在于按照部门进行分组的话每个部门包含多个员工无法确定需要显示哪个员工的姓名这是一个逻辑上的错误。 所以说GROUP BYnbsp;改变了集合元素数据行的结构创建了一个全新的关系。 分组操作的示意图如下 尽管如此GROUP BY 的结果仍然是一个集合。 05 UNION SQL 面向集合特性最明显的体现就是 UNION并集运算INTERSECT交集运算EXCEPT/MINUS差集运算 这些集合运算符的作用都是 将两个集合并成一个集合 因此需要满足以下条件 两边的集合中字段的数量和顺序必须相同两边的集合中对应字段的类型必须匹配或兼容。 具体来说UNION 和 UNION ALL 用于计算两个集合的并集返回出现在第一个查询结果或者第二个查询结果中的数据。 它们的区别在于nbsp;UNION排除了结果中的重复数据UNION ALL保留了重复数据。 下面是 UNION 操作的示意图 INTERSECTnbsp;操作符用于返回两个集合中的共同部分即同时出现在第一个查询结果和第二个查询结果中的数据并且排除了结果中的重复数据。 INTERSECT 运算的示意图如下 EXCEPTnbsp;或者nbsp;MINUSnbsp;操作符用于返回两个集合的差集即出现在第一个查询结果中但不在第二个查询结果中的记录并且排除了结果中的重复数据。 EXCEPT 运算符的示意图如下 除此之外DISTINCTnbsp;运算符用于消除重复数据也就是排除集合中的重复元素。 SQL 中的关系概念来自数学中的集合理论因此 UNION、INTERSECT 和 EXCEPT 分别来自集合论中的并集∪\cup∪、交集∩\cap∩和差集∖\setminus∖运算。 需要注意的是集合理论中的集合不允许存在重复的数据但是 SQL 允许。因此SQL 中的集合也被称为多重集合multiset多重集合与集合理论中的集合都是无序的但是 SQL 可以通过 ORDER BY 子句对查询结果进行排序。 06 JOIN 在 SQL 中不仅实体对象存储在关系表中 对象之间的联系 也存储在关系表中。 因此当我们想要获取这些相关的数据时需要使用到另一个操作 连接查询JOIN 。 常见的 SQL连接查类型包括内连接、外连接、交叉连接等。其中外连接又可以分为左外连接、右外连接以及全外连接。 内连接Inner Join返回两个表中满足连接条件的数据内连接的原理如下图所示 左外连接Left Outer Join返回左表中所有的数据对于右表返回满足连接条件的数据如果没有就返回空值。 左外连接的原理如下图所示 右外连接Right Outer Join返回右表中所有的数据对于左表返回满足连接条件的数据如果没有就返回空值。右外连接与左外连接可以互换以下两者等价 t1nbsp; RIGHTnbsp;JOIN t2 t2nbsp; LEFTnbsp;JOIN t1 全外连接Full Outer Join等价于左外连接加上右外连接同时返回左表和右表中所有的数据对于两个表中不满足连接条件的数据返回空值。 全外连接的原理如下图所示 交叉连接也称为笛卡尔积Cartesian Product。两个表的交叉连接相当于一个表的所有行和另一个表的所有行两两组合结果的数量为两个表的行数相乘。 交叉连接的原理如下图所示 其他类型的连接还有半连接SEMI JOIN、反连接ANTI JOIN。 集合操作将两个集合合并成一个更大或更小的集合连接查询将两个集合转换成一个更大或更小的集合同时获得了一个更大的元素更多的列。很多时候集合操作都可以通过连接查询来实现例如 SELECTnbsp;department_id nbsp;nbsp; FROMnbsp;departments nbsp; UNION SELECTnbsp;department_id nbsp;nbsp; FROMnbsp;employees; 等价于 SELECTnbsp; COALESCE(d.department_id, e.department_id) nbsp;nbsp; FROMnbsp;departments d nbsp;nbsp; FULLnbsp; JOINnbsp;employees enbsp; ONnbsp;(e.department_id d.department_id); 我们已经介绍了许多查询的示例接下来看看其他的数据操作。 07 DML DML nbsp;表示数据操作语言也就是 插入、更新和删除 。 以下是一个插入语句示例 CREATEnbsp; TABLEnbsp; test( idnbsp; int); -- MySQL、SQL Server 等 INSERTnbsp; INTOnbsp; test( id)nbsp; VALUESnbsp;( 1),( 2),( 3); -- Oracle INSERTnbsp; INTOnbsp; test( id) ( SELECTnbsp; 1nbsp; ASnbsp; idnbsp; FROMnbsp;DUAL UNIONnbsp;ALL SELECTnbsp; 2nbsp; FROMnbsp;DUAL UNIONnbsp;ALL SELECTnbsp; 3nbsp; FROMnbsp;DUAL); 我们通过一个 INSERT 语句插入了 3 条记录或者说是插入了一个包含 3 条记录的关系表。因为UNION ALL 返回的是一个关系表。VALUES 同样是指定了一个关系表在 SQL Server 和 PostgreSQL 中支持以下语句 SELECTnbsp;* FROMnbsp;( nbsp;nbsp; VALUES( 1),( 2),( 3) )nbsp; test( id); 前面我们已经说过FROMnbsp;之后是一个关系表所以这里的nbsp;VALUESnbsp;也是一样。由于我们经常插入单条记录并没有意识到实际上是以表为单位进行操作。 同样UPDATE 和 DELETEnbsp;语句也都是以关系表为单位的操作只不过我们习惯了说更新一行数据或者删除几条记录。
http://www.huolong8.cn/news/289793/

相关文章:

  • 饲料网站建设 中企动力物流运输做网站的素材
  • 怎样把自己做的网站上传电脑做apk的网站h5
  • 网站建设以什么盈利wordpress 当前主题目录
  • 海南电子商务网站公司产品怎样网上推广
  • 低价网站建设哪家便宜南京广告公司黄页
  • asp 网站 源码建网站不做广告怎么赚钱
  • 山西seo关键词优化软件搜索电影网站怎么做seo
  • 延边州建设局网站国外服务器vps
  • 设计素材网站版权商丘软文推广
  • 4k高清视频素材网站黄页推广公司大全
  • 可以自学网站开发免费咨询医生皮肤科专家
  • 深圳app网站建设网页设计尺寸代码
  • wordpress自定义页面引用seo学院
  • 用ps软件做ppt模板下载网站有哪些内容oa管理系统是什么
  • 龙岗营销网站建设公司哪家好网站建设基础考试
  • 中山网站建设推荐iis 新建网站没有文件夹权限
  • 为什么做街舞网站技术类网站模板
  • 建设什么企业网站wordpress ftp主机
  • 浙江平台网站建设找哪家江苏城乡建设职业学院网站
  • 黄岩城乡住房和建设局网站软件app开发制作
  • 国外 创意 网站wordpress优雅的暂停
  • 红盾网企业查询系统南宁seo产品优化服务
  • 网站建设需要掌握什么技术屏蔽wordpress缩略图
  • 网站制作 太原内蒙古高端网站建设
  • 网站的功能医院咨询
  • 做网站的话术做网站是什么专业什么工作
  • 做网站的思路怎么写网站建设服务有哪些内容
  • 怎么样在百度搜到自己的网站重庆网红打卡点
  • 济南微网站建设公司网站管理图片
  • 青岛做公司网站的公司如何分析网站用户体验