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

3.1 SQL概述

思维导图:

 

前言:

前言笔记:第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进行数据操作。

相关文章:

3.1 SQL概述

思维导图: 前言: 前言笔记:第3章 关系数据库标准语言SQL - **SQL的定义**: - 关系数据库的标准和通用语言。 - 功能强大,不仅限于查询。 - 功能覆盖:数据库模式创建、数据插入/修改、数据库安全性与…...

xray安装与bp组合使用-被动扫描

xray安装与bp组合使用-被动扫描 文章目录 xray安装与bp组合使用-被动扫描1 工具官方文档:2 xray官网3 工具使用4 使用指令说明5 此为设置被动扫描6 被动扫描-启动成功7 启动bp7.1 设置bp的上层代理7.2 添加上层代理7777 --》指向的是xray7.3 上层代理设置好后&#…...

Java 中Maven 和 ANT

Java 中Maven 和 ANT Maven 和 Ant 都是用于构建和管理Java项目的工具,但它们在设计和功能上有一些重要的区别。以下是关于 Maven 和 Ant 的区别、优缺点以及它们的作用,以及示例说明: Maven: 设计理念: Maven 是基于…...

Flutter通过Pigeon插件与Android同步异步交互

Flutter 调用原生(Android)方法以及数据传输_flutter调用原生sdk_TDSSS的博客-CSDN博客 https://www.cnblogs.com/baiqiantao/p/16340272.html 可以同时参考这两篇文章...

GTW验厂是什么?GTW验厂评级分类

【GTW验厂是什么?GTW验厂评级分类】 GTW验厂是什么? 全称叫GreenToWear。是为了集合所有环境和产品健康方面的要求,Inditex集团开发的可持续发展准则(简称GTW)此准则适用于Inditex集 及其供应链中所包含的湿加工厂&…...

CVE-2017-12615 Tomcat远程命令执行漏洞

漏洞简介 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,其中 远程代码执行漏洞(CVE-2017-12615) 当 Tomcat 运行在 Windows 主机上,…...

灿芯股份将上会:计划募资6亿元,董事长、总经理均为外籍

10月11日,上海证券交易所披露的信息显示,灿芯半导体(上海)股份有限公司(下称“灿芯股份”)将于10月18日接受上市审核委员会审议会议的现场审议。目前,该公司已递交了招股书(上会稿&a…...

Spring Cloud Gateway 搭建网关

新建一个module添加依赖&#xff1a; <!--Spring Cloud Gateway依赖--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency><!-- nacos客户端依赖…...

ETL数据转换方式有哪些

ETL数据转换方式有哪些 ETL&#xff08;Extract&#xff0c; Transform&#xff0c; Load&#xff09;是一种常用的数据处理方式&#xff0c;用于从源系统中提取数据&#xff0c;进行转换&#xff0c;并加载到目标系统中。 数据清洗&#xff08;Data Cleaning&#xff09;&am…...

CVE-2017-15715 apache换行解析文件上传漏洞

影响范围 httpd 2.4.0~2.4.29 复现环境 vulhub/httpd/CVE-2017-15715 docker-compose 漏洞原理 在apache2的配置文件&#xff1a; /etc/apache2/conf-available/docker-php.conf 中&#xff0c;php的文件匹配以正则形式表达 ".php$"的正则匹配模式意味着以.ph…...

振弦采集仪应用水坝安全监测的方案

振弦采集仪应用水坝安全监测的方案 随着工业化和城市化的快速发展&#xff0c;水资源的开发和利用越来越广泛。由于水坝在水利工程中起着至关重要的作用&#xff0c;因此对水坝进行安全监测变得越来越必要。为了实现对水坝的安全监测&#xff0c;振弦采集仪可以作为一种有效的…...

【Java】查找jdk步骤

需求描述 解决方法 第一步 第二步 第三步 第四步 参考文章...

【mysql】Mysql自定义变量 @rownum使用

Mysql自定义变量 rownum 这个可以赋值&#xff1f;这是初始化&#xff1f; 先看表结构 有五条数据。执行前半段语句发现。rownum的起始值等于行数 这里from后面可以加person与 r这连个组成 如果这里的rownum打错了呢。发现这个变量就没有初始值。 可见&#xff0c;没有必要…...

命令行启动android模拟器

有时候不想打开android studio就能方便的启动模拟器&#xff0c;探索一番后发现可以通过命令行来启动&#xff0c;方便快捷。 环境准备 首先安装好android studio&#xff0c;android sdk&#xff0c;从android studio中安装好模拟器。 命令启动 如果直接在终端输入emulato…...

Three.js如何计算3DObject的2D包围框?

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 在Three.js应用开发中&#xff0c;有时你可能需要为3D场景中的网格绘制2D的包围框&#xff0c;应该怎么做&#xff1f; 朴素的想法是把网格的3D包围框投影到屏幕空间&#xff0c;例如&#xff0c;下图中的绿色框 3D包围框…...

【LeetCode热题100】--347.前K个高频元素

347.前K个高频元素 方法&#xff1a;堆 首先遍历整个数组&#xff0c;并使用哈希表记录每个数字出现的次数&#xff0c;并形成一个「出现次数数组」。找出原数组的前 k 个高频元素&#xff0c;就相当于找出「出现次数数组」的前 k 大的值 利用堆的思想&#xff1a;建立一个小…...

解决服务器80端口无法连接的办法

云服务器是现代企业建立应用程序和存储数据的理想选择。但是在使用云服务器的过程中&#xff0c;会遇到80端口无法连接的问题。这个问题可能会导致网站无法正常运行&#xff0c;从而给企业带来负面影响。因此&#xff0c;在这篇文章中&#xff0c;我们将探讨如何解决云服务器80…...

040:mapboxGL鼠标hover更换选中feature颜色

第040个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标hover的方式来更换选中feature颜色。这里面利用了mousemove和mouseleave的方法,通过选中图层的feature,来设置hover的true或者false,从而通过opacity的case状态来判断透明度用哪一个值。 直接复…...

【C++心愿便利店】No.8---C++之重识类和对象

文章目录 前言一、再谈构造函数二、static成员三、友元四、内部类五、匿名对象六、再次理解类和对象 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f4cb;专栏&#xff1a;C 心愿便利店 &…...

【AI视野·今日NLP 自然语言处理论文速览 第五十二期】Wed, 11 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 11 Oct 2023 Totally 81 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers LongLLMLingua: Accelerating and Enhancing LLMs in Long Context Scenarios via Prompt Compression Author…...

科研助手实战:OpenClaw+GLM-4.7-Flash自动归类学术PDF与生成综述

科研助手实战&#xff1a;OpenClawGLM-4.7-Flash自动归类学术PDF与生成综述 1. 为什么需要自动化文献管理 去年冬天整理博士论文参考文献时&#xff0c;我的Zotero库里有387篇未分类的PDF文件。当导师问起"近五年认知神经科学领域在决策机制研究有哪些突破"时&…...

3分钟快速上手llm-graph-builder:从零构建AI知识图谱的终极指南

3分钟快速上手llm-graph-builder&#xff1a;从零构建AI知识图谱的终极指南 【免费下载链接】llm-graph-builder Neo4j graph construction from unstructured data 项目地址: https://gitcode.com/GitHub_Trending/ll/llm-graph-builder 还在为海量非结构化数据无法有效…...

影墨·今颜小红书模型赋能微信小程序:AI文案助手开发实战

影墨今颜小红书模型赋能微信小程序&#xff1a;AI文案助手开发实战 最近在刷朋友圈&#xff0c;看到好几个做电商、做内容的朋友都在抱怨&#xff0c;每天想文案想得头秃。特别是小红书那种既要种草感、又要生活气、还得带点网感的文案&#xff0c;写起来特别费劲。正好&#…...

Rocky Linux 9.4上iRedMail 1.6.8邮件系统保姆级安装指南(含SOGo避坑技巧)

Rocky Linux 9.4上iRedMail 1.6.8邮件系统全栈部署实战&#xff08;附SOGo极速安装方案&#xff09; 在数字化转型浪潮中&#xff0c;企业级邮件系统作为基础通信设施的重要性愈发凸显。对于追求自主可控的技术团队而言&#xff0c;基于Rocky Linux搭建iRedMail开源邮件平台&am…...

OpenClaw+nanobot自动化办公:邮件整理与回复实战

OpenClawnanobot自动化办公&#xff1a;邮件整理与回复实战 1. 为什么需要自动化邮件处理 每天早晨打开邮箱&#xff0c;看到堆积如山的未读邮件时&#xff0c;那种窒息感我至今难忘。作为技术团队负责人&#xff0c;我需要同时处理客户咨询、内部协作、供应商沟通等多类邮件…...

FireRedASR-AED-L场景应用:自媒体采访录音转文字稿的本地解决方案

FireRedASR-AED-L场景应用&#xff1a;自媒体采访录音转文字稿的本地解决方案 1. 引言&#xff1a;自媒体工作者的文字稿困境 作为一名自媒体从业者&#xff0c;我深知采访录音转文字的痛苦。每次采访结束后&#xff0c;面对长达数小时的录音文件&#xff0c;要么花费大量时间…...

C语言冷知识:为什么结构体里能用冒号?位域操作的底层原理揭秘

C语言结构体位域&#xff1a;冒号背后的内存布局与硬件交互哲学 在嵌入式开发与系统编程领域&#xff0c;C语言的结构体位域&#xff08;bit-field&#xff09;特性犹如一把精巧的手术刀&#xff0c;允许开发者直接操控内存中的每一个比特。这种在结构体成员后使用冒号的语法看…...

HunyuanVideo-Foley社区贡献指南:ComfyUI节点开发实战

HunyuanVideo-Foley社区贡献指南&#xff1a;ComfyUI节点开发实战 【免费下载链接】HunyuanVideo-Foley HunyuanVideo-Foley: Multimodal Diffusion with Representation Alignment for High-Fidelity Foley Audio Generation. 项目地址: https://gitcode.com/gh_mirrors/hu/…...

智能客服Agent建设实战:从架构设计到性能优化的全流程指南

最近在做一个智能客服系统的升级项目&#xff0c;客户那边反馈高峰期响应特别慢&#xff0c;用户排队时间很长。经过一番折腾&#xff0c;我们最终通过一套新的Agent架构&#xff0c;把整体响应速度提升了40%以上。今天就来聊聊我们是怎么做的&#xff0c;把从架构设计到性能优…...

LiveDraw:实时屏幕绘画工具,3步解决演示标注难题

LiveDraw&#xff1a;实时屏幕绘画工具&#xff0c;3步解决演示标注难题 【免费下载链接】live-draw A tool allows you to draw on screen real-time. 项目地址: https://gitcode.com/gh_mirrors/li/live-draw 你是否曾在演示时苦于无法直接在屏幕上标注重点&#xff1…...