SQL Chapter1 Introduce

SQL Chapter1 Introduce

SQL相关参考资料:尊重一下菜鸟教程 ,该教程中的文档相对简练和入门,W3School的资料好像就是菜鸟教程的;其次,廖雪峰的SQL教程网站,也应该比较适合入门,对比后选择一个进行学习。

围绕SQL是什么、有什么用、和怎么用来学习。

利用廖雪峰的教程来进行学习,因为其具备在线运行和测试的功能。

SQL是什么

SQL:Structured Query Language(结构化查询语言)用于访问和操作数据库系统:查询、添加、更新、删除、管理、维护。不同的数据库,都支持SQL。

“SQL就是访问和处理关系数据库的计算机标准语言“,无论使用什么编程语言编写程序,当我们涉及到操作关系数据库之时,就需要使用SQL,其中,最流行的开源数据库为MySQL。

同时,现今还存在非SQL的数据库,也就是NoSQL数据库,例如:MongoDB、Cassandra、Dynamo都属于非关系数据库。

而SQL在当今仍然承担各种应用程序的核心数据存储,与NoSQL(作为SQL数据库的补充)相辅相成。

虽然SQL已经被ANSI组织定义为标准,不幸地是,各个不同的数据库对标准的SQL支持不太一致。并且,大部分数据库都在标准的SQL上做了扩展。也就是说,如果只使用标准SQL,理论上所有数据库都可以支持,但如果使用某个特定数据库的扩展SQL,换一个数据库就不能执行了。例如,Oracle把自己扩展的SQL称为PL/SQL,Microsoft把自己扩展的SQL称为T-SQL。

“现实情况是,如果我们只使用标准SQL的核心功能,那么所有数据库通常都可以执行。不常用的SQL功能,不同的数据库支持的程度都不一样。而各个数据库支持的各自扩展的功能,通常我们把它们称之为“方言”。”

SQL定义了这几种操作数据库的能力:

  • DDL(Data Definition Language):允许用户定义数据,也就是创建表、删除表、修改表结构这些操作。通常,DDL由数据库管理员执行。
  • DML(Data Manipulation Language):为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。
  • DQL(Data Query Language):允许用户查询数据,这也是通常最频繁的数据库日常操作。

SQL的语法特点

SQL语言关键字不区分大小写!!!
但是,针对不同的数据库,对于表名和列名,有的数据库区分大小写,有的数据库不区分大小写。同一个数据库,有的在Linux上区分大小写,有的在Windows上不区分大小写。

数据库

为什么需要数据库

为什么需要数据库,实际上就是面对大量的数据储备,进行更有效的管理,实现

  • 统一数据格式(接口)管理,实现统一的读写文件和解析方法。
  • 在数据库中快速查询并获取指定数据。

因此借由数据库来专门管理数据,统一结构(接口),读写,以及搜索流程。这样,当应用需要使用数据的时候,就可简化流程如图所示:

database

数据库的数据架构

数据库按照数据架构来组织、存储和管理数据,主要有以下三种模型结构:

  • 层次模型
  • 网状模型
  • 关系模型

层次模型顾名思义是“上下级”的层次关系来组织数据的方式,类似树状结构:

网状结构则是把每个数据节点和其他诸多节点进行链接,数据结构像是道路的网络。

关系模型则是以矩阵的形式对数据进行存储,任何数据通过行列坐标来唯一确定。

最终,基于关系模型的关系数据库成为了绝对的主流,因其使用和理解起来最为简单。其形式可理解为多元属性的笛卡尔集,也就是每条数据是由 n 元(n 个属性值)构成,而由这些数据的集合构成数据集,每个属性值也能对应更为详细的表。以班级为例,一个班级的学生可以用一个表格存起来,如下:

ID 姓名 班级 ID 性别 年龄
1 小明 201 M 9
2 小红 202 F 8
3 小军 202 M 8
4 小白 201 F 9

其中班级 ID 可对应另一个班级表:

ID 名称 班主任
201 二年级一班 王老师
202 二年级二班 李老师

通过给定一个班级名称,可以查到一条班级记录,根据班级ID,又可以查到多条学生记录,这样,二维表之间就通过ID映射建立了“一对多”关系。

对于每个关系表,每一列除了需要定义名称之外,还需要指定数据类型,数据类型包括数值、字符串、时间等(具体建议查表

主流关系数据库

  • 商用数据库,例如:Oracle,SQL Server,DB2等;
  • 开源数据库,例如:MySQL,PostgreSQL等;
  • 桌面数据库,以微软Access为代表,适合桌面应用程序使用;
  • 嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。

SQL Chapter1 Introduce

http://aikenh.cn/cn/SQL1/

Author

AikenH

Posted on

2022-08-02

Updated on

2023-10-30

Licensed under


Comments