暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

了解 SOL 数据库基础:表、行、列

原创 Just go 2022-11-15
1148

第 1 课 了解SQL



这一课介绍 SQL 究竟是什么,它能做什么事情。

1.1 数据库基础
你正在读这本 SQL 图书,这表明你需要以某种方式与数据库打交道。SQL 正是用来实现这一任务的语言,因此在学习 SQL 之前,你应该对数据库及数据库技术的某些基本概念有所了解。
你可能还没有意识到,其实自己一直在使用数据库。每当你从电子邮件地址簿里查找名字时,就是在使用数据库。你在网站上进行搜索,也是在使用数据库。你在工作中登录网络,也需要依靠数据库验证用户名和密码。即使是在自动取款机上使用 ATM 卡,也要利用数据库进行密码验证和查询余额。
虽然我们一直都在使用数据库,但对究竟什么是数据库并不十分清楚。更何况人们可能会使用相同的数据库术语表示不同的事物,进一步加剧了这种混乱。因此,我们首先给出一些最重要的数据库术语,并加以说明。


2 | 第1 课 了解 SOL


1.1.1 数据库
数据库这个术语的用法很多,但就本书而言(从 SQL 的角度来看),数据库是一个以某种有组织的方式存储的数据集合。最简单的办法是将数据库想象为一个文件柜。这个文件柜是一个存放数据的物理位置,不管数据是什么,也不管数据是如何组织的。



1.1.2 表
你往文件柜里放资料时,并不是随便将它们扔进某个抽屉就完事了,而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。
在数据库领域中,这种文件称为表。表是一种结构化的文件,可用来存储某种特定类型的数据。表可以保存顾客清单、产品目录,或者其他信息清单。

1.1 数据库基础 | 3


这里的关键一点在千,存储在表中的数据是同一种类型的数据或清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中,否则以后的检索和访问会很困难。应该创建两个表,每个清单一个表。
数据库中的每个表都有一个名字来标识自己。这个名字是唯一的,即数据库中没有其他表具有相同的名字。
表具有一些特性,这些特性定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。描述表的这组信息就是所谓的模式(schema),模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)。


1.1.3 列和数据类型
表由列组成。列存储表中某部分的信息。


4 | 第1 课 了解 SOL

理解列的最好办法是将数据库表想象为一个网格,就像个电子表格那样。网格中每一列存储若某种特定的信息。例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编码全都存储在各自的列中。


数据库中每个列都有相应的数据类型。数据类型(datatype)定义了列可以存储哪些数据种类。例如,如果列中存储的是数字(或许是订单中的物品数),则相应的数据类型应该为数值类型。如果列中存储的是日期、文本、注释、金额等,则应该规定好恰当的数据类型。


数据类型限定了可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。数据类型还帮助正确地分类数据,并在优化磁盘使用方面起重要的作用。因此,在创建表时必须特别关注所用的数据类型。

1.1 数据库基础 | 5


1.1.4 行
表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。
例如,顾客表可以每行存储一个顾客。表中的行编号为记录的编号。



1.1.5 主键
表中每一行都应该有一列(或几列)可以唯一标识自己。顾客表可以使用顾客编号,而订单表可以使用订单 ID。雇员表可以使用雇员 ID 或雇员社会安全号。


6 | 第1 课 了解 SOL

唯一标识表中每行的这个列(或这几列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行就极为困难,因为你不能保证操作只涉及相关的行。


表中的任何列都可以作为主键,只要它满足以下条件:

 任意两行都不具有相同的主键值
 每一行都必须具有一个主键值(主键列不允许 NULL 值)
 主键列中的值不允许修改或更新
 主键值不能重用(如果某行从表中删除,它的主键不能赋给以后的新行)。

主键通常定义在表的一列上,但并不是必需这么做,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到所有列, 所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
还有一种非常重要的键,称为外键,我们将在第 12 课中介绍。

1.2 什么是 SQL
SQL(发音为字母 S-Q-L 或 sequel)是 Structured Query Language(结构化查询语言)的缩写。SQL 是一种专门用来与数据库沟通的语言。
与其他语言(如英语或 Java、C、PHP 这样的编程语言)不一样,SQL 中只有很少的词,这是有意而为的。设计 SQL 的目的是很好地完成一项任务——提供一种从数据库中读写数据的简单有效的方法。

1.3 动手实践 | 7

SQL 有如下的优点。

 SQL 不是某个特定数据库供应商专有的语言。几乎所有重要的 DBMS
都支持 SQL,所以学习此语言使你几乎能与所有数据库打交道。
 SQL 简单易学。它的语旬全都是由有很强描述性的英语单词组成,而且这些单词的数目不多。
 SQL 虽然看上去很简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
下面我们将开始真正学习 SQL。


1.3 动手实践
与其他任何语言一样,学习 SQL 的最好方法是自己动手实践。为此,需要一个数据库和用来测试 SQL 语旬的应用系统。

8 | 第1 课 了解 SOL

本书中所有课程采用的都是真实的 SQL 语旬和数据表。附录 A 给出了具体的样例表,并介绍了获得(或创建)它们的详细步骤,便千读者理解 每一课讲授的内容。附录B 介绍在各种应用程序中执行SQL 所需的步骤。在进入下一课之前,强烈建议读者先阅读这两个附录的内容,为以后的学习做好准备。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论