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进行数据操作。

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

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

相关文章

LeetCode 1095. 山脉数组中查找目标值【数组,二分】1827

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

OOA/D 时统一过程(UP)中的 迭代、 进化 和 敏捷

一、迭代和进化式开发的优势 相对于顺序或“瀑布”软件开发模型,迭代和进化式开发(iterative and evolutionary development )对部分系统及早地引入了编程和测试,并重复这一循环。这种方式通常会还没有详细定义所有需求的情况下假…

如何使用前端构建工具(如Webpack、Parcel)?

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

C++指针解读(6)-- 指针和字符串

1、字符串的基本概念 (1)字符串的存储 字符串是存放在字符数组中的。比如字符串“hello”,在内存中是这么存放的: 这里要注意,在字符串的最后会加上一个\0,也被称为NUL字符,表示字符串的结束位…

Liunx中系统安全及文件系统(极其粗糙版)

系统安全: 系统安全和数据防护,数据备份的资质 比如三台服务器: 500万 工信部是有要求的,组织必须保证处理的个人数据的安全性 品牌形象如何维护呢 基于liunx的安全加固措施: 权限进行控制 账号安全:…

09_Webpack打包工具

1 初识Webpack 1.1 什么是Webpack Webpack打包工具对项目中的复杂文件进行打包处理,可以实现项目的自动化构建,并且给前端开发人员带来了极大的便利。 目前,企业中的绝大多数前端项目是基于Webpack打包工具来进行开发的。 1.2 Webpack的安…

C++学习——引用详解

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 一、引用的语法 1、引用的含义 引用(Reference)是 C 相对于C语言的又一个扩充。 引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够…

可观测 AIOps 的智能监控和诊断实践丨QCon 全球软件开发大会总结

作者:董善东(梵登) 本文是作者于 9 月 5 日在 QCon 北京 2023(全球软件开发大会)上做的《阿里云可观测 AIOps 的智能监控和诊断实践》专题演讲文字版。 大家上午好,很高兴可以在 QCon 稳定性和可观测的场…

华为云云耀云服务器L实例评测|华为云耀云服务器L实例评测用例(五)

六、华为云耀云服务器L实例评测用例: “兵马未动,粮草先行”,随着企业业务的快速发展,服务器在数字化建设体系至关重要,为了保证服务器的稳定性、可靠性,需要对服务器进行评测,以确保服务器能够…

FPC柔性电路板介绍及PCB设计经验规则总结

🏡《总目录》 目录 1,概述2,FPC的特点3,FPC设计十五条经验规则4,总结1,概述 FPC软板由于具有可弯曲折叠的特点,当前在消费电子,汽车电子和航空航天领域应用广泛。本文详细介绍FPC的特点并对FPC板设计中需要注意的经验原则进行总结。 2,FPC的特点 FPC的全称是Flexibl…

网站如何应对网络流量攻击

网络安全问题中,受到流量攻击是一种常见挑战。以下是一系列的专业建议,帮助您预防和减轻这类攻击,从而确保您的网站和数据的安全。 使用 Web 应用程序防火墙 (WAF) Web 应用程序防火墙是一项专门的安全工具,能够检测和拦截恶意流…

【Docker 内核详解】namespace 资源隔离(五):User namespaces

【Docker 内核详解 - namespace 资源隔离】系列包含: namespace 资源隔离(一):进行 namespace API 操作的 4 种方式namespace 资源隔离(二):UTS namespace & IPC namespacenamespace 资源隔…

项目管理软件中注释功能的作用是什么?

在项目管理软件中,注释功能允许您对任务、文件夹和项目进行详细的标注。这一功能不仅便于团队成员之间的沟通与协作,还能提高项目管理的效率。通过在项目中添加评论,您可以及时了解项目的最新动态,提出疑问并寻求解决方案。此外&a…

汇编语言基础

引言 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活的控制系统进行工作。 基础知识 1.1机器语言 机器语言是机器指令的集合…

单链表---结构体实现

定义 链表称为线性表的链式存储,顺序表逻辑上相邻的数据,存储位置也相邻。链表逻辑上相邻的数据,存储位置是随机分布在内存的各个位置上的。 故 对于每一个结点,定义的结构体是: typedef struct _LinkNode {int d…

Java-使用sqlSessionTemplate实现批量更新-模拟mybatis 动态sql

环境准备(非核心方法) 创建表 创建表的sql(下表是基于Oracle创建的) CREATE TABLE "SYSTEM"."STUDENT" ("ID" NUMBER(10, 0),"NAME" VARCHAR2(20 BYTE),"ADDRES" CLOB,PRIMARY KEY ( …

milvus和相似度检索

流程 milvus的使用流程是 创建collection -> 创建partition -> 创建索引(如果需要检索) -> 插入数据 -> 检索 这里以Python为例, 使用的milvus版本为2.3.x 首先按照库, python3 -m pip install pymilvus Connect from pymilvus import connections c…

mac电脑版数字图像处理软件:ACDSee Photo Studio 9最新 for Mac

ACDSee Photo Studio 9是一款由ACD Systems开发的功能强大的照片管理和编辑软件,专为Mac用户提供一站式解决方案,方便用户轻松浏览、管理和编辑照片。该软件提供了许多实用的工具和功能,包括高效的导入和排序工具、强大的编辑工具、智能组织和…

CustomTabBar 自定义选项卡视图

1. 用到的技术点 1) Generics 泛型 2) ViewBuilder 视图构造器 3) PreferenceKey 偏好设置 4) MatchedGeometryEffect 几何效果 2. 创建枚举选项卡项散列,TabBarItem.swift import Foundation import SwiftUI//struct TabBarItem: Hashable{ // let ico…

Java练习题-获取数组元素最大值

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又…