MySQL【了解SQL】

数据库

绿底的通常为了用一些例子更形象地理解,黄底的通常是定义

什么是数据库?

数据库是一个以某种 有组织的方式存储的数据集合。理解数据库的一种最简单的办法是将其 想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是 什么以及如何组织的。

数据库(database) 保存有组织的数据的容器(通常是一个文 件或一组文件)

数据库和数据库管理系统(DBMS)辨析:

人们通常用数据库这个术语来代表他们使用 的数据库软件。这是不正确的,它是引起混淆的根源。确切 地说,数据库软件应称为DBMS(数据库管理系统)。数据库 是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备 上的文件,但也可以不是。在很大程度上说,数据库究竟是 文件还是别的什么东西并不重要,因为你并不直接访问数据 库;你使用的是DBMS,它替你访问数据库。

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

数据库中,这种文件称为表。表是一种结构化的文件,可用 来存储某种特定类型的数据。表可以保存顾客清单、产品目录,或者其 他信息清单。

定义:表(table)是某种特定类型数据的结构化清单。

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

表名 表名的唯一性取决于多个因素,如数据库名和表名等的 结合。这表示,虽然在相同数据库中不能两次使用相同的表名, 但在不同的数据库中却可以使用相同的表名

模式

模式的诞生:

表具有一些特性,这些特性定义了数据在表中如何存储,如可以存 储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表 的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及 整个数据库(和其中表的关系) 

模式(schema) 关于数据库和表的布局及特性的信息

列和数据类型

表由列组成。列中存储着表中某部分的信息。

(column) 表中的一个字段。所有表都是由一个或多个列组 成的。

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

【数据库中的列指的一般为同一类型的信息】 

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

理解列的方法

将数据库表想象为一个网格。网格中每一列存 储着一条特定的信息。例如,在顾客表中,一个列存储着顾客编号,另 一个列存储着顾客名,而地址、城市、州以及邮政编码全都存储在各自 的列中

分解数据是数据库中,重要的一个环节,我将他理解做【用时间换取寻找数据的效率】 

分解数据 正确地将数据分解为多个列极为重要。例如,城市、 州、邮政编码应该总是独立的列。通过把它分解开,才有可能 利用特定的列对数据进行排序和过滤(如,找出特定州或特定 城市的所有顾客)。如果城市和州组合在一个列中,则按州进 行排序或过滤会很困难 

表中的数据是按行存储的,所保存的每个记录存储在自己的行内。 如果将表想象为网格,网格中垂直的列为表列,水平行为表行。【可以参照上图】

行(row) 表中的一个记录。

如上图所示,一行是一个员工的所有信息。 

是记录还是行? 你可能听到用户在提到行(row)时称其为 数据库记录(record)。在很大程度上,这两个术语是可以互相 替代的,但从技术上说,行才是正确的术语

主键 

表中每一行都应该有可以唯一标识自己的一列(或一组列)。一个顾 客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用 雇员ID或雇员社会保险号。

主键(primary key)①一一列(或一组列),其值能够唯一区分表 中每个行。

唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示 一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行

应该总是定义主键 虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理

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

        ①任意两行都不具有相同的主键值;

        ②每个行都必须具有一个主键值(主键列不允许NULL值) 

主键通常定义在表的一列上,但这并不是必需的,也可以一起使用 多个列作为主键。在使用多列作为主键时,上述条件必须应用到构成主 键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)

主键的最好习惯 除MySQL强制实施的规则外,应该坚持的几个普遍认可的最好习惯为:

①不更新主键列中的值;

②不重用主键列的值;

③不在主键列中使用可能会更改的值。(例如,如果使用一个 名字作为主键以标识某个供应商,当该供应商合并和更改其 名字时,必须更改这个主键。)

外键会在比较后面复习到

什么是SQL?

SQL是一种专门用来与数据库通信的语言。SQL(Structured Query Language)是结构化查询语言

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

SQL有如下的优点。

 SQL不是某个特定数据库供应商专有的语言。几乎所有重要的 DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库 打交道。

 SQL简单易学。它的语句全都是由描述性很强的英语单词组成, 而且这些单词的数目不多。

 SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活 使用其语言元素,可以进行非常复杂和高级的数据库操作。

DBMS专用的SQL SQL不是一种专利语言,而且存在一个标准委员会,他们试图定义可供所有DBMS使用的SQL语法,但事实上任意两个DBMS实现的SQL都不完全相同。本书讲授的 SQL是专门针对MySQL的,虽然书中所讲授的多数语法也适 用于其他DBMS,但不要认为这些SQL语法是完全可移植的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值