了解SQL

1.数据库

数据库这个术语的用法很多,但就从SQL的角度来看,数据库是以某种有组织的方法存储的数据集合。

最简单的办法是将数据库想象为一个文件柜。文件柜只是一个存放数据的物理位置,它不管数据是什么,也不管数据是如何组织的。

PowerShell
数据库(database)
保存有组织的数据的容器(通常是一个文件或一组文件)
数据库管理系统(DBMS)
2.表

你往文件柜里放资料时,并不是随便将它们扔进某个抽屉就完事了的,而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。

在数据库领域中,这种文件称为表。

表是一种结构化的文件,可用来存储某种特定类型的数据。

表可以保存顾客清单、产品目录,或者其他信息清单。

PowerShell
(table)
某种特定类型数据的结构化清单。

这里关键一点在于,存储在表中的数据是同一种类型的数据或清单。

绝不应该将顾客的清单与订单的清单存储到同一张数据库表中,否则以后的检索和访问都会很困难。

数据库中的每个表都有一个名字来标识自己。这个名字是唯一的,即数据库中没有其他表具体相同的名字。

表具有一些特性,这些特性定义了数据在表中如何存储,包括存储什么样的数据,数据如何分解,各部分信息如何命名灯信息。

描述表的这组信息就是所谓的模式(schema),模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)

3.列和数据类型
PowerShell
(column)
表中的一个字段。所有表都是由一个或多个列组成的。

理解列的最好方法是将数据库表想象为一个网络,就像个电子表格那样。

网格中每一列存储着某种特定的信息。

例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编码全都存储在各自的列中。

数据库中每个列都有相应的数据类型。数据类型(datatype)定义了列可以存储哪些数据种类。

例如,如果列中存储的是数字(或许是订单中的物品数),则相应的数据类型应该为数值类型。

PowerShell
数据类型(datatype)
允许什么类型的数据。每个表列都有相应的数据类型,它限制(或允许)该列中存储的数据。

数据类型帮助正确地分类数据,并在优化磁盘使用方面起重要作用。

4.行

表中的数据是按行存储的,所保存的每个记录存储在自己的行内。

如果将表想象为网格,网格中垂直的列为表列,水平行为表行

PowerShell
(row)
表中的一个记录
5.主键

表中每一行都应该有一列(或几列)可以唯一标识自己。

顾客表可以使用顾客编号,而订单表可以使用订单ID。

PowerShell
主键(primary key)
一列(或几列),其值能够唯一标识表中每一行。

唯一标识表中每行的这个列(或这几列)称为主键。

主键用来表示一个特定的行。

没有主键,更新或删除表中特定行就极为困难,因为你不能保证操作只涉及相关的行,没有伤及无辜。

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

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

SQL是 Structured Query Language(结构化查询语言)的缩写。

SQL是一种专门用来与数据库沟通的语言。

与其他语言(如英语或C#、Java、C、PHP这样的编程语言)不一样,SQL中只有很少的词,这是有意而为的。

设计SQL的目的是很好地完成一项任务——提供一种从数据库中读写数据的简单有效的方法。

SQL有哪些优点呢

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

标准SQL由ANSI标准委员会管理,从而称为ANSI SQL

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部