您好,欢迎访问一九零五行业门户网

SQL 新手指南

sql 已经应用到了我们周围的各个角落,不管你信不信。操纵任何种类数据的每个应用程序都需要将数据存放在某处。无论它是大数据,
介绍
sql 已经应用到了我们周围的各个角落,不管你信不信。操纵任何种类数据的每个应用程序都需要将数据存放在某处。无论它是大数据,还是只有简单数行的数据包;无论是政府、还是创业公司;无论是横跨多台服务器的大型数据库、还是运行着自己小型数据库的手机,sql 无处不在。
但是,sql 是什么呢?sql 代表结构化查询语言,通常,其发音为“ess-que-el”。sql 是数据库语言,专门为了和数据库通信而建立的。sql 是一门简单的语言,和英语语言类似,因为命令和英语句子有着类似的结构。那些句子组织为声明式的语句,这样 sql 也被叫做声明式语言。
sql 的新手指南
在可视化地编写 sql 查询语句方面,已经有很多可用的工具了,为什么还要学习一个全新的语言呢?当你用某些 sql 工具时,重要的是理解 sql 语言、理解可视化工具正在做什么、以及为什么那样做。有时候,需要手动写一些 sql 语句,不仅因为这是最快的方法,而且这更强大、经常是完成预定目标的唯一方法。
数据库的介绍我们刚才提到了,sql 是数据库语言。那么,数据库是什么?数据库是一种存储机制,被设计为用来访问存储的信息及其操作。数据库里的信息被存储在称作表(table)的对象里。表的名字是其唯一身份,由列和行构成。列包含列名、列的数据类型以及该列的其它属性。行包含该列的记录或数据。数据库里的大部分表之间会有关系(relationship)或连接(link),一对一、或一对多的关系。这也是为什么这种数据库被称作关系模型数据库。
关于描述数据库结构,最容易的方法就是把它和 excel 电子表格做比较,它们有着诸多相似。一个数据库就是一份独立的文件。电子表格里的 sheet 就是表(table),每个 sheet 有一个名字。列和行,都和数据库一样。sql 语言用来创建新表、更改现有表,用来获取数据、更新数据或删除数据。
比如说,我们有一份知名电影的台词大集合,存放在任意单独的文本文件里。即使我们精心组织,用 excel 电子表格存放,我们所面临的问题仍然是存在。用这种方式存储台词,我们无法快速地从一部电影里得到所有台词,或无法得到一个角色的所有台词。如果我们把文本文件或电子表格放入数据库,并创建带有关系的表,所有问题就迎刃而解了。关系型的真正涵义是什么?关系模型是描述数据、以及这些数据实体之间的关系的方法。在我们的例子中,关系就是每个台词和表之间的联系,电影名称存放在表里、或所有角色也存放在表里。
下面是一个简化处理的例子,只有一个表做示例,表名叫「movie_quotes」。它有四列,一个列表示台词文本、一个列表示说台词的演员角色,一个表示电影,还有年份。我们收录了八句电影台词,我们的示例表看起来像是这个样子:
movie_quotes
q_textq_characterq_movieq_year
i’ll be backthe terminatorthe terminator1984
i find your lack of faith disturbing.darth vaderstar wars1977
it’s a trap!admiral ackbarstar wars1983
never tell me the odds.han solostar wars1980
do. or do not. there is no try.yodastar wars1980
stupid is as stupid does.forrest gumpforrest gump1994
my mama always said: life was like a box of chocolates.
you never know what you’re gonna get.
forrest gumpforrest gump1994run, forrest! run!jenny curranforrest gump1994
当讨论数据库时,值得一提的是,有一种全新的数据库,在需要存储数据的人们中间,产生了一种运动,它就是 nosql。它们是基于文档的系统,虽然它们正在变得非常流行,直到今天仍然有大量的关系型数据库在使用中。即使 nosql 数据库有某种查询语言,它们很大一部分(因为它们几乎都是在 sql 之后才发明的)仍然和 sql 有着某种相似性。
四种基本的 sql 操作(crud)有很多 sql 命令,但是,有四种通常的 sql 操作,可以对表及其数据做一些事情:
这些基本 sql 操作的首字母组成了缩写「crud」,它们被视作每个数据库必有的、四个基本功能或特色的基础集。
通过介绍基本特色,我们将会介绍基本的、以及最重要的 sql 命令:`create`, `insert`, `select`, `update`, `delete`, and `drop`。
创建数据首先,我们需要在数据库里创建表。创建新表,就用到了 `create table`。`create table` 语句的简单语法格式如下:
首先,`create table`关键词后面跟着表名。这是一个极好的例子,说明了 sql 的简洁性、以及和英语的相似性。关键词后面跟着一个左圆括号,这里定义了额外的参数:列名和列的数据类型,然后跟上右圆括号。必须要提的是,所有的 sql 语句应该以 `;` 结尾。
需要遵守的规则并不多。表名和列名必须以字母打头,后面可以跟上字母、数字、或下划线。它们的字符长度不能超过 30 个。用 sql 保留字做为表名或列名(比如 `select`, `create`, `insert` 等)是被禁止的。
在例子中,最简单的列名可能是 `text`, `character`, `movie`,和 `year`。但是,问题在于这些列名都是保留字。为了避免任何可能的冲突,我们将创建以 `q_` 做为前缀的列名。
数据类型因不同的数据库而不同,不过这里使用了最常见的类型:
数据类型规定了哪种类型的数据可以存储在指定的列里。如果 `q_character` 的列用于存储电影名字,那么这个指定的列就应该有一个 `varchar` (可变长度字符)的数据类型。存放电影年份的列的类型是 `number`,我们的例子中相应的列是 `q_year`。
对于期望的表结构,创建表的最终 sql 命令如下:
这个 sql 命令的结果将创建一个空表,各列情况如下:
表结构
接下来,用我们的电影台词数据填充这张表。有很多可用的 gui 工具,来管理数据库中的表和数据。不过,写一个 sql 脚本常常更快,该脚本基本上是 sql 命令的集合,将被顺序执行。当你需要用大量数据填充表时,这种方式尤为方便。
向表插入或添加一行数据的 sql 命令是 `insert`。格式如下:
其它类似信息

推荐信息