第三章 关系数据库标准语言SQL

2023-09-17 20:50:49

第三章 关系数据库标准语言SQL

3.1 SQL概述

3.1.1 SQL的产生与发展

Snipaste_2023-07-16_21-00-57

3.1.2 SQL的特点

主要特点:

  1. 综合统一

    • 集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)的功能于一体}

    • 数据操作统一

    • 可以独立完成数据库生命周期中的全部活动,包括以下一系列操作要求:

      • 定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库。
      • 对数据库中的数据进行查询和更新。
      • 数据库重构和维护。数据库安全性、完整性控制,以及事务控制。
      • 嵌入式SQL和动态SQL定义。
    • 用户在数据库系统投入运行后还可根据需要随时地、逐步地修改模式,并不影响数据库的运行,从而使系统具有良好的可扩展性。

  2. 高度非过程化

    • 非关系数据模型的数据操纵语言是“面向过程”的语言,用“过程化”语言完成某项请求必须指定存取路径。
    • 只要提出“做什么”,而无须指明“怎么做”,因此无须了解存取路径。
    • 存取路径的选择以及SQL的操作过程由系统自动完成。
  3. 面向集合的操作方式

    • 非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。
    • SQL采用集合操作方式
      • 操作对象、查找结果可以是元组的集合;
      • 一次插入、删除、更新操作的对象可以是元组的集合
  4. 以同一种语法结构提供多种使用方式

    • SQL是独立的语言
      • 能够独立的用于联机交互的使用方式
    • SQL又是嵌入式语言
      • SQL语句能够嵌入到高级语言(例如C、C++、Java)程序中,供程序员设计程序时使用。
  5. 语言简洁,易学易用

    Snipaste_2023-07-17_10-12-01

3.1.3 SQL的基本概念

SQL支持关系数据库三级模式结构Snipaste_2023-07-17_10-14-12

  • 基本表
    • 本身独立存在的表;
    • SQL中一个关系就对应一个基本表;
    • 一个(或多个)基本表对应一个存储文件;
    • 一个表可以带若干索引。
  • 存储文件
    • 逻辑结构组成了关系数据库的内模式;
    • 物理结构是任意的,对用户透明。
  • 视图
    • 从一个或几个基本表导出的表;
    • 数据库中只存放视图的定义而不存放视图对应的数据
    • 视图是一个虚表;
    • 用户可以在视图上再定义视图。

3.3 数据定义

SQL的数据定义功能:模式定义,表定义,视图和索引的定义

Snipaste_2023-07-17_10-14-12

一个关系数据库管理系统的实例(instance)中可以建立多个数据库,一个 数据库中可以建立多个模式,一个模式下通常包括多个表,视图,和索引等数据库对象

3.3.1 模式的定义和删除

  1. 定义模式

    • 在SQL中,模式定义语句如下

      CREATE SCHEMA<模式名>AUTHORIZATION<用户名>;

更多推荐

HBase基本操作及命令示例

HBase是一种分布式、可扩展、面向列的数据库,它是由Google的Bigtable项目衍生而来,并由Apache软件基金会开发及维护。对于HBase的基本操作类型,主要包括以下几种:创建表:在HBase中,可以创建一个新的表来存储数据。创建表时,需要定义表的名称以及表的列族。命令示例:create'table_nam

ASP.NET Core 8 的 Web App

WebAppWebApp与WebAPI的不同之处在于包含UI部分,所谓的UI就是HTML页面。WebApp支持几种渲染HTML的方式:服务端渲染客户端渲染混合渲染服务端渲染服务端渲染UI是在浏览器请求的时候,服务端生成HTML,然后返回给浏览器。优点是:减轻客户端的压力服务端生成HTML,适配各种浏览器极少从Clien

前端常用库之-JavaScript工具库lodash

文章目录前端常用库之-JavaScript工具库lodash一、什么是lodash二、安装三、lodash使用Lodash的pick()函数介绍和使用react实例demo:pick结合...展开运算符(spreadoperator)前端常用库之-JavaScript工具库lodash一、什么是lodash官网:htt

炒期权的资金门槛是多少 ?

期权是一种合约,买方向卖方支付一定费用后有权利在特定的时间,以特定的价格买入或卖出一定数量的特定资产,卖方需履行相应义务,期权开户支持线上和零门槛开头,下文介绍炒期权的资金门槛是多少?本文来自:期权酱一、期权一般投入多少钱?其实在期权市场上,绝大部分投资者都是中小型投资者,也就意味着期权投资不需要多少钱,几十几百几千元

【新版】系统架构设计师 - 案例分析 - 信息安全

个人总结,仅供参考,欢迎加好友一起讨论文章目录架构-案例分析-信息安全安全架构安全模型分类BLP模型Biba模型ChineseWall模型信息安全整体架构设计WPDRRC模型各模型安全防范功能网络安全体系架构设计开放系统互联安全体系结构安全服务与安全机制的对应关系认证框架访问控制框架机密性框架完整性框架抗抵赖框架什么是

PyTorch中ReduceLROnPlateau的学习率调整优化器

PyTorch中ReduceLROnPlateau的学习率调整优化器作者:安静到无声个人主页简介:在深度学习中,学习率是一个重要的超参数,影响模型的收敛速度和性能。为了自动调整学习率,PyTorch提供了ReduceLROnPlateau优化器,它可以根据验证集上的性能指标自动调整学习率。本文将详细介绍ReduceLR

Language Adaptive Weight Generation for Multi-task Visual Grounding 论文阅读笔记

LanguageAdaptiveWeightGenerationforMulti-taskVisualGrounding论文阅读笔记一、Abstract二、引言三、相关工作3.1指代表达式理解3.2指代表达式分割3.3动态权重网络四、方法4.1总览4.2语言自适应权重生成语言特征聚合权重生成4.3多任务头4.4训练目标

Vue中的动态 Class & Style

动态Class&Style我们平时可以直接给元素设置静态的Class或者是Style,但是这种方式会带来很多限制,假设我想要内容动态的改变Class或者是Style,通过原生的方式要通过JavaScript频繁操作dom才能够实现。而在Vue中我们无需关心内部实现原理,可以直接给元素的Class、Style绑定一个变量

自动化测试的类型​以及自动化测试的几个误区!

有三种主要类型的自动化测试。一、自动化单元测试​编辑自动化单元测试在代码级别上进行测试。bug是在开发人员编写的函数、方法和例程中识别出来的。一些公司要求开发人员自己进行单元测试,而有些公司则雇用专门的测试自动化资源。这些资源可以访问源代码,它们编写单元测试来破坏生产代码。由于单元测试的存在,每当代码编译时,所有单元测

外贸行业中常用的邮箱推荐

随着全球贸易的不断发展,外贸行业越来越重要。在这个过程中,电子邮件作为一种重要的沟通工具,扮演着关键的角色。然而,对于许多外贸从业者来说,选择合适的邮箱服务并不容易。本文将探讨外贸邮箱和普通邮箱的区别,并推荐一些在外贸行业中广泛使用的好用邮箱。“有哪些好用的外贸行业使用较多的邮箱?常见的有ZohoMail、Gmail、

RxJS:前端开发的未来

引言随着前端开发的不断发展,我们面临着越来越复杂的应用程序和更高的用户期望。为了应对这些挑战,开发人员需要使用更高效、更灵活的工具和技术。RxJS(ReactiveExtensionsforJavaScript)是一个强大的库,它提供了一种响应式编程的方式来处理异步数据流。本文将探讨RxJS在前端开发中的重要性,并展示

热文推荐