1.了解SQL

1.1数据库基础

你正在阅读本博客,这表明你需要以某种方式与数据库打交道。在深入学习MySQL以及SQL语言的实现之前,应该对数据库以及数据库技术的某些基本概念有所了解。
你可能还没有意识到,其实你一直在使用数据库。每当你从自己的电子邮件地址铺中查找名字时候,你就在使用数据库。如果你在某个英特网搜索站点上进行搜索,也是在使用数据库。如果你在工作中登陆网络,也需要依靠数据库验证滋滋的名字和密码。即使是在自动取款机上使用ATM卡,也要利用数据库进行PIN码验证和余额查询。
虽然我们一直都在使用数据库,但对究竟什么是数据库并不是十分清楚。特别是不同的人可能会使用相同的数据库属于表示不同的事务,更加剧了这种混乱。所以,良好的学习切入点是给出一张中上单数据库属于的清单。

1.1.1什么是数据库

数据库这个术语的用法很多,但就本书而言,数据库是一个一某种有组织的方式存数数据的集合,理解数据库的一种最简单的办法是将其想象成一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是以什么以及如何组织的。
数据库:保存有组织的数据的容器(通常是一个文件或者是一组文件)
注意:人们通常用数据库这个属于来代表他们使用的数据库软件,这是不正确的。他是引起混淆的根源。确切地说,数据库软件(类似MySQL)应该称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上,数据库究竟是文件还是什么别的东西并不重要,因为你并不直接访问数据库;你是用DBMS,它替你访问数据库。

1.1.2 表

在你的资料放入文件柜时候,并不是随便将她放入某个抽屉就完事了,而是在文件柜中创建文件,然后将相关资料放入特定的文件中。
在数据库领域中,这种文件称为表。表是一种结构化的文件,可以用来存储某种特定类型的数据。表可以保存客户清单、产品目录,或者其他信息清单。
这里关键的一点在于,存储在表中的数据是一种类型的数据或一个清单。绝不应该将客户的清单与订单的清单存储在一个数据库表中。这样做以后的检索和访问是很困难。应该创建两个表,每个清单一个表。
数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。
表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)。

1.1.3列和数据类型

表由列组成。列中存储着表中某部分的信息。
列(column)表中的一个字段。所有表都是由一个或者多个列组成的。
理解列的最好办法是将数据库表想象为一个网格。网格中每一列存储着一条特定的信息。例如,在顾客表中,一个列存储着顾客编号,另一个列存储着顾客名字,而地址、城市、洲以及邮政编码全都存储在各自的列中。
正确的分解数据是极为重要的。例如,城市,州,邮政编码应该总是独立的列。通过把它分解开,才有可能利用特定的列对数据进行排序和过滤(如,找出特定找或者城市的所有顾客)。如果城市和州在一个列中,则按照州进行排序或者过滤是很困难的。

数据库中的每个列都有对应的数据类型。数据类刷娘定义列可以存储的数据种类。例如,如果列中存储的为数字(可能是订单中的物品数),则相应的数据类型应该为数值类型。如果列中存储的是日期、文本、注释、金额等,应该使用恰当的数据类型规定出来。
数据类型限制可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。数据类型还帮助正确的排序数据,并在优化磁盘使用方面起重要的作用。因此,在创建表的时候必须对数据类型给予特别的关注。

1.1.4行

表中的数据是按照行存储的,所包村的每个记录存储在自己的行内。如果将表像想为网格,网格中垂直的列为表列,水平行为表行。
例如,顾客表可以每行存储一个顾客。表中的行数为记录的总数。
行(row)表中的一个记录。
是记录还是行?你可能听到用户在提到行时候将其称之为数据库的记录(record),很大程度上这两个属于是可以相互替代的,但是从技术上说,行才是正确的术语。

1.1.5 主键

表中每一行都应该有可以唯一表示自己的一列(或者一组列)。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。
主键(primary key)一列(或者一组列),其值能唯一区分表中每个行。
唯一标识表中每行的这个列(或者是这组列)称为主键。主键用来表示一个特定的行。没有主见,更行或者删除表中特定行是很困难,因为没有安全的方法保证只涉及相关的行。
应该总是定义主键 虽然并不是总是都需要主键,但大多数数据库设计人员都应该保证他们创建的每个表具有一个主键,以便于以后的数据库操纵和管理。
表中人和列都可以作为主键,只要它满足如下条件:
1.任意两行主键值不相同
2.每个行都必须有一个主键值(主键列不允许有NULL值)

主键的规则:主键可以定义在表的一列上,也可以一起使用多个列作为主键。还有几个约定俗称的好习惯:1.不更新主键列中的值。2.不重用主键列中的值。3.不在主键列中使用可能会更改的值。
还有一种十分重要的键,叫做外键。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值