3.1 SQL概述

news2025/3/1 4:59:40

思维导图:

 

前言:

前言笔记:第3章 关系数据库标准语言SQL

- **SQL的定义**:
  - 关系数据库的标准和通用语言。
  - 功能强大,不仅限于查询。
  - 功能覆盖:数据库模式创建、数据插入/修改、数据库安全性与完整性定义及控制等。
  
- **本章焦点**:
  - 详解SQL的核心功能。
  - 深入探讨关系数据库的基本概念。
  
- **SQL的普及与重要性**:
  - 成为国际标准后,广大数据库厂商推出与SQL相关的软件或接口。
  - SQL作为各大数据库的共通数据存取语言和标准接口,为不同数据库间的互操作提供了基础。
  - SQL被视为数据库领域的主导语言,有其重大意义。确立其为标准及其后续发展被称为一场“革命”。

 3.1.1 SQL的产生与发展

笔记:3.1.1 SQL的产生与发展

- **起源**:
  - 1974年,由Boyce和Chamberlin提出。
  - 初始名为Sequel。
  - 在IBM的System R上首次实现。

- **接受度与普及**:
  - 由于其简易性与功能丰富,受到广大用户与计算机行业的欢迎。
  - 数据库厂商广泛采纳。

- **标准化**:
  - 1986年10月,被ANSI的数据库委员会X3H2批准为美国关系数据库标准语言,简称SQL-86。
  - 1987年,ISO也认可了SQL作为标准。

- **SQL标准的进化**:
  - 自公布起,随技术发展而持续丰富。
  - 从SQL/86至SQL2011,内容逐渐增多,结构也日益复杂。
  - 如,SQL/92增加了调用接口与永久存储模块;SQL99进一步扩展,涵盖多个部分如框架、宿主语言绑定等。

- **数据库系统对SQL的支持**:
  - 无系统全面支持所有SQL标准。
  - 大多数支持SQL/92主要功能及SQL99、SQL2003的部分新概念。
  - 许多软件厂商对SQL命令集做了扩展与修改,增加了非标准功能。

【备注】:在使用特定数据库时,建议查阅其用户手册,了解其对SQL的具体支持。

3.1.2 SQL的特点 

笔记:3.1.2 SQL的特点

- **综合统一性**:
  - SQL整合了数据定义、操纵、控制的功能,拥有统一的语言风格。
  - 可独立完成数据库生命周期的所有活动:定义、查询、更新、重构、安全性、完整性、事务控制等。
  - 提供了便于数据库应用开发的环境,允许随时修改模式,而不影响数据库运行。
  - 关系模型中实体与实体间的联系都是通过关系表示,导致数据操作的统一性。

- **高度非过程化**:
  - SQL为非过程化语言,用户只需指明“做什么”而不是“怎么做”。
  - 无需了解存取路径,系统自动完成操作过程。

- **面向集合的操作方式**:
  - SQL采用集合操作方式,与非关系数据模型的面向记录方式对比,SQL允许一次性操作多个元组。

- **统一的语法结构**:
  - SQL既可以独立使用也可嵌入高级语言中,但在两种方式下,语法结构保持一致。
  - 这种统一性提供了灵活性和方便性。

- **简洁性与易用性**:
  - 虽然功能强大,但SQL设计简洁,核心功能仅需9个动词。
  - 接近英语,易于学习和使用。

【核心动词】:
- **数据查询**: SELECT
- **数据定义**: CREATE, DROP, ALTER
- **数据操纵**: INSERT, UPDATE, DELETE
- **数据控制**: GRANT, REVOKE

这些特点使SQL成为业界所接受的国际标准,并且得到了广泛的应用。

 3.1.3 SQL的基本概念

笔记:3.1.3 SQL的基本概念

- **关系数据库的三级模式结构**:
  - **外模式**:包含若干视图和部分基本表。
  - **模式**:由多个基本表组成。
  - **内模式**:由若干存储文件组成。

- **基本表**:
  - 独立存在的表,每个关系对应一个基本表。
  - 一个或多个基本表对应一个存储文件。
  - 表可能带有若干索引,存储在存储文件中。
  
- **存储文件**:
  - 组成关系数据库的内模式。
  - 物理结构对用户是隐蔽的。

- **视图(View)**:
  - 从一个或多个基本表导出的表。
  - 不独立存储,只存放定义,不存放对应数据。
  - 被视为虚表,因为实际数据仍存于基本表中。
  - 用户可在视图上再定义视图,视图与基本表在概念上等同。

- **关于SQL实现**:
  - 这里主要介绍SQL的核心概念和功能,许多语法细节被省略。
  - 各关系数据库管理系统的SQL实现有所不同,标准符合度通常在85%以上。
  - 使用特定的关系数据库管理系统时,应参考相关手册。

总结:本节概述了SQL在关系数据库中的基本概念,包括基本表、视图和存储文件的定义和功能,以及它们如何在三级模式结构中互相关联。

 总结:

**SQL概述总结**:

**重点**:
1. **定义**:SQL是关系数据库的标准语言,不仅用于查询,还包括数据库模式创建、数据插入/修改、安全性与完整性定义等功能。
2. **普及与重要性**:自成为国际标准后,SQL已成为各大数据库的共通数据存取语言和标准接口,促进了不同数据库间的互操作。
3. **发展**:从1974年的Sequel到现今的SQL标准,它经历了多次版本更新与功能扩展,如SQL/86、SQL/92、SQL99、SQL2003等。
4. **结构**:支持关系数据库的三级模式结构,包括外模式、模式和内模式。

**难点**:
1. **高度非过程化**:与传统的过程化编程语言不同,SQL用户只需要指明“做什么”而不是“怎么做”,这可能对初学者来说不太直观。
2. **视图的概念**:视图是从一个或几个基本表导出的表,是虚拟的,不直接存储数据,这与直观的数据存储概念有所不同。

**易错点**:
1. **误解SQL的功能**:很多初学者可能会认为SQL仅用于查询,而忽略了其其他强大功能。
2. **视图与基本表的混淆**:初学者可能会误以为视图和基本表是完全相同的,而不理解视图的虚拟性。

**使用技巧**:
1. **实践为主**:理解SQL的最佳方法是通过大量实践。创建自己的数据库,尝试不同的查询和命令。
2. **使用工具**:利用现有的SQL开发工具,如SQL Server Management Studio、MySQL Workbench等,这些工具通常提供语法高亮、错误提示等功能,帮助用户更高效地编写SQL。
3. **持续学习**:随着SQL标准的发展,新的功能和命令会被添加。定期查看更新和学习新的技巧是很重要的。
4. **查询手册**:当使用特定的数据库管理系统时,尤其是在考虑性能优化时,查阅相关的官方文档或手册是很有帮助的。

综上所述,SQL是一个功能强大且广泛应用的数据库语言。通过理解其核心概念、注意常见难点和易错点,并应用有效的使用技巧,可以更有效地利用SQL进行数据操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1087087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爱德华、书客、柏曼的护眼台灯谁的护眼能力更好?三款护眼台灯真实测评

为人父母以后最大的感受就是希望孩子能够健康成长,而且现在生活水平也变好了,都想尽可能给孩子最好的,什么学习专用的书桌啊、柜子啊、学习用品等等。但是随着孩子慢慢步入更高的年级,作业也在不断增加,孩子完成作业的…

处理ElementUI组件默认样式多次重复问题

问题截图: 解决办法: 在postcss.config.js文件里添加配置项: module.exports {plugins: {autoprefixer: {},cssnano: {} //添加这行代码}, } 处理结果: github issues: https://github.com/ElemeFE/element/is…

如何使用前端包管理器(如npm、Yarn)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

React js原生 详解 HTML 拖放 API(鼠标拖放功能)

最近碰到了个需求,大概就是要通过可视化拖拽的方式配置一个冰柜,需要把预设好的冰柜内部架子模板一个个拖到冰箱内。一开始的想法是用鼠标事件(mousedown、mouseup等)那一套去实现,能实现但是过程过于复杂,…

Linux 回顾总结

学习前提(环境搭建):RHCSA Linux环境搭建-CSDN博客 目录 一、shell 二、文件 三、用户和组管理 四、权限 五、软件 六、网络 七、磁盘 一、shell Linux的操作界面常称为Shell,Shell是操作系统提供给用户使用的界面&#xf…

【Python】PaddleOCR文字识别国产之光 从安装到pycharm中测试 (保姆级图文)

目录 官方项目地址Python环境搭建(也就是使用Anaconda的python)1. 安装Anaconda1. 打开终端并创建conda环境 安装PaddlePaddle(CPU演示)安装PaddleOCR whl包如果安装shapely库报错(我没有报错,其他类似库安…

MongoDB 索引和常用命令

一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中,数据结构参考如下,其中数据库为 articledb, 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…

【Mybatis】基于Mybatis插件+注解,实现敏感数据自动加解密

一、介绍 业务场景中经常会遇到诸如用户手机号,身份证号,银行卡号,邮箱,地址,密码等等信息,属于敏感信息,需要保存在数据库中。而很多公司会会要求对数据库中的此类数据进行加密存储。 敏感数据…

光伏三相并网逆变器的控制策略与性能分析

微❤关注“电击小子程高兴的MATLAB小屋”获得资料(专享优惠) 光伏三相并网逆变器的控制策略与性能分析 引言: 随着可再生能源的日益重视和发展,光伏发电系统在电力系统中的地位越来越重要。其中,光伏三相并网逆变器…

什么台灯最好学生晚上用?开学适合孩子学习的台灯

作为学龄期儿童的家长,最担心的就是孩子长时间学习影响视力健康。无论是上网课、写作业、玩桌游还是陪伴孩子读绘本,都需要一个足够明亮的照明环境,因此选购一款为孩子视力发展保驾护航的台灯非常重要。推荐五款适合孩子学习的台灯。 1. 书客…

distcc分布式编译

distcc https://gitee.com/bison-fork/distcc.git 下载工具链 mingw,https://www.mingw-w64.org/downloads/#w64devkitperl,https://strawberryperl.com/releases.html免安装zip版本,autoconf等脚本依赖perlautoconf、automake&#xff0c…

软件测试学习(四)自动测试和测试工具、缺陷轰炸、外包测试、计划测试工作、编写和跟踪测试用例

目录 自动测试和测试工具 工具和自动化的好处 测试工具 查看器和监视器 驱动程序 桩 压力和负载工具 干扰注入器和噪声发生器 分析工具 软件测试自动化 宏录制和回放 可编程的宏 完全可编程的自动测试工具 随机测试:猴子和大猩猩 使用测试工具和自动…

SpringBoot 前端406 后端Could not find acceptable representation

原因:返回对象没有get方法,无法转成JSON格式

2023年10月13日历史上的今天大事件早读

54年10月13日罗马帝国皇帝克劳狄一世逝世 467年10月13日北魏孝文帝拓跋宏出生 982年10月13日辽国皇帝辽景宗逝世 1847年10月13日李沅发起义 1884年10月13日国际标准时间日 1925年10月13日前英国首相撒切尔夫人出生 1927年10月13日鲁丝-埃尔德飞渡大西洋失败 1928年10月1…

电脑怎么剪辑视频?高手分享的独家秘诀

视频剪辑是一项有趣而具有创造性的活动,可以帮助您将录制的视频片段转化为有趣、有启发性的作品。无论您是想创建家庭影片、Vlog视频、教程,还是其他任何类型的视频,掌握视频剪辑技巧都是必要的。那电脑怎么剪辑视频呢?在本篇文章…

竞赛 深度学习 机器视觉 车位识别车道线检测 - python opencv

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …

QTableWidget中cell 和 item区别

1.cell:某行某列中单元格。cell相当于一个容器,如箱子。里面不管有没有东西,cell都在那里。 2.item:item是某行某列单元格中的内容,即cell箱子中所放置的东西,即实实在在的东西。 通过调用 itemClicked()…

VMware虚拟机安装Linux教程(史上最全)

前言 许多想学网络安全的小伙伴,因为自己电脑是Windows系统的,并且电脑里面有很多重要文件,一般这种情况最好是安装一个虚拟机,然后虚拟机安装Linux的操作系统,这样就不会对原本的系统和文件产生影响。 需要网络安全…

云原生网关可观测性综合实践

作者:钰诚 可观测性 可观测性(Observability)是指系统、应用程序或服务的运行状态、性能和行为能够被有效地监测、理解和调试的能力。 随着系统架构从单体架构到集群架构再到微服务架构的演进,业务越来越庞大,也越来…

【Unity实战100例】Unity内部软键盘输入制作

目录 一. 样式颜色设置 二. UI逻辑 源码地址: 哔哩哔哩工房 一. 样式颜色设置 可以在预制体上提前设置一下对应组件的颜色,包括按键边框的颜色,内部填充色,普通按键文本颜色,功能按键文本颜色,大家可以根据自己的需求处理按钮逻辑。