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

3.1 SQL概述

SQL(Structured Query Language) 结构化查询语言,是关系数据库的标准语言

SQL是一个通用的、功能极强的关系数据库语言

功能:查询,数据库模式创建,数据库数据的插入与修改,数据库完整性、安全性定义等

应用发展:数据库厂家推出各种SQL软件及其接口软件,使得大多数数据库均使用SQL作为共同的数据存取语言和标准接口

3.1.1 SQL 的产生与发展

SQL的历史

1970年,codd提出关系模型,由于关系代数或者关系太数学了,难以被普通用户接收,于是1973年IBM开展System R的研制工作。

System R以关系模型为基础,但是摒弃了数学语言,以自然语言为方向,诞生了结构化的英语查询语言(Structured English query language, SEQUEL), 更名为SQL。

1986年,美国国家标准局ANSI数据库委员会批准了SQL作为关系 数据库语言的美国标准,并公布SQL的标准文本(SQL-86)。

1987年,国际标准化组织ISO也通过这一标准。

1988年, System R获得ACM“软件系统奖”

SQL标准的进展过程

目前,没有一个数据库系统能够支持SQL标准的所有概念和特性

3.1.2 SQL的特点:

综合统一 、 高度非过程化 、 面向集合的操作方式 、 以同一种语法结构提供多种使用方式 、 语言简洁,易学易用

1、综合统一

 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言 (DCL)功能于一体。

 可以独立完成数据库生命周期中的全部活动:  定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库;  对数据库中的数据进行查询和更新;  数据库重构和维护 , 数据库安全性、完整性控制,以及事务控制

嵌入式SQL和动态SQL定义

用户数据库投入运行后,可根据需要随时、逐步修改模式,不影响数据库的运行,具有良好的可扩展性。

数据操作符统一:增删改查等每种操作都只需一种操作符

2、高度非过程化  

非关系数据模型的数据操纵语言“面向过程”,必须指定存取路径。 SQL只要提出“做什么”,无须了解存取路径。

存取路径的选择以及SQL的操作过程由系统自动完成。

优点:大大减轻用户负担,有利于提高数据独立性。

3、面向集合的操作方式

非关系数据模型采用面向记录的操作方式,操作对象是 一条记录 如,查询所有平均成绩在80分以上的学生姓名,用户必须逐条 把满足条件的学生记录找出(要说明具体处理过程,包含哪条路径, 如何循环等)

SQL采用集合操作方式

 操作对象、查找结果可以是元组的集合  

一次插入、删除、更新操作的对象可以是元组的集合

4、以同一种语法结构提供多种使用方式

SQL是独立的语言,能够独立地用于联机交互的使用方式,用户可以在终端键盘直接 输入SQL命令对数据库进行操作

SQL是嵌入式语言 SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用

优点:两种情况下,SQL语法结构基本一致,提供了极大的灵活性和 方便性

5、语言简洁,易学易用

SQL功能极强,完成核心功能只用了9个动词,易于学习

3.1.3 SQL的基本概念

SQL支持关系数据库三级模式结构

外模式包括若干视图和部分基本表,模式包括若干基本表; 内模式包括若干存储文件。

基本表

 本身独立存在的表 ,一个关系就对应一个基本表 ,一个(或多个)基本表对应一个存储文件, 一个表可以带若干索引。

存储文件

逻辑结构组成了关系数据库的内模式,物理结构对最终用户是隐蔽的。

视图

从一个或几个基本表导出的表,视图是一个虚表,数据库中只存放视图的定义而不存放视图对应的数据,用户可以在视图上再定义视图

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c++红黑树
  • 混合云构建-使用 Azure ExpressRoute 建立从本地到 Azure 虚拟网络的专用连接
  • 记录一次Vcenter跨VDS网络迁移
  • TCP重传机制详解——02SACK
  • Python编程基础 001 开篇:为什么要学习编程
  • leetcode代码记录(平衡二叉树
  • 由浅到深认识Java语言(11):封装
  • stable diffusion 提示词进阶语法-年龄身材肤色-学习小结
  • C++类模板详解
  • 学习总结!
  • 用html画一个烟花特效
  • Java练习:进制转换、日期计算、乘法表两种实现
  • GPT4.0
  • 在linux中展示本月最后一个周五的日期
  • 【C语言进阶篇】编译和链接
  • python3.6+scrapy+mysql 爬虫实战
  • Java程序员幽默爆笑锦集
  • rc-form之最单纯情况
  • 从伪并行的 Python 多线程说起
  • 技术:超级实用的电脑小技巧
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 精彩代码 vue.js
  • 聊聊sentinel的DegradeSlot
  • -- 数据结构 顺序表 --Java
  • 一些css基础学习笔记
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 国内开源镜像站点
  • ​2020 年大前端技术趋势解读
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​字​节​一​面​
  • # 安徽锐锋科技IDMS系统简介
  • #Java第九次作业--输入输出流和文件操作
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (27)4.8 习题课
  • (33)STM32——485实验笔记
  • (python)数据结构---字典
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (六)软件测试分工
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)80c52学习之旅-起始篇
  • (转)德国人的记事本
  • (转载)(官方)UE4--图像编程----着色器开发
  • .apk文件,IIS不支持下载解决
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET WPF 抖动动画
  • .NET企业级应用架构设计系列之结尾篇
  • .NET中的十进制浮点类型,徐汇区网站设计
  • [ A*实现 ] C++,矩阵地图
  • [ 第一章] JavaScript 简史