mysql必知必会--了解SQL

什么是数据库

数据库这个术语的用法不少,但就本书而言,数据库是一个以某种
有组织的方式存储的数据集合。理解数据库的一种最简单的办法是将其
想象为一个文件柜。此文件柜是一个存放数据的物理位置,无论数据是
什么以及如何组织的sql

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

人们一般用数据库这个术语来表明他们使用
的数据库软件。这是不正确的,它是引发混淆的根源。确切
地说,数据库软件应称为DBMS(数据库管理系统)。数据库
是经过DBMS建立和操纵的容器。数据库能够是保存在硬设备
上的文件,但也能够不是。在很大程度上说,数据库到底是
文件仍是别的什么东西并不重要,由于你并不直接访问数据
库;你使用的是DBMS,它替你访问数据库布局

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

这里关键的一点在于,存储在表中的数据是一种类型的数据或一个
清单。决不该该将顾客的清单与订单的清单存储在同一个数据库表中。这
样作将使之后的检索和访问很困难。应该建立两个表,每一个清单一个表。
数据库中的每一个表都有一个名字,用来标识本身。此名字是惟一的,
这表示数据库中没有其余表具备相同的名字优化

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

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

是模式仍是数据库? 有时,模式用做数据库的同义词。遗憾
的是,模式的含义一般在上下文中并非很清晰。本书中,模
式指的是上面给出的定义排序

列和数据类型

列(column) 表中的一个字段。全部表都是由一个或多个列组
成的table

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

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

数据库中每一个列都有相应的数据类型。数据类型定义列能够存储的
数据种类。例如,若是列中存储的为数字(或许是订单中的物品数),则
相应的数据类型应该为数值类型。若是列中存储的是日期、文本、注释、
金额等,则应该用恰当的数据类型规定出来

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

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

表中的数据是按行存储的,所保存的每一个记录存储在本身的行内。
若是将表想象为网格,网格中垂直的列为表列,水平行为表行

行(row) 表中的一个记录

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

主键

表中每一行都应该有能够惟一标识本身的一列(或一组列)。一个顾
客表可使用顾客编号列,而订单表可使用订单ID,雇员表可使用
雇员ID或雇员社会保险号。
主键(primary key)一一列(或一组列),其值可以惟一区分表
中每一个行。

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

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

表中的任何列均可以做为主键,只要它知足如下条件:

  • 任意两行都不具备相同的主键值;
  • 每一个行都必须具备一个主键值(主键列不容许NULL值)

主键值规则 这里列出的规则是MySQL自己强制实施的

主键一般定义在表的一列上,但这并非必需的,也能够一块儿使用
多个列做为主键。在使用多列做为主键时,上述条件必须应用到构成主
键的全部列,全部列值的组合必须是惟一的(但单个列的值能够不惟一)

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

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

什么是SQL

SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query
Language)的缩写。SQL是一种专门用来与数据库通讯的语言。

与其余语言(如,英语以及Java和Visual Basic这样的程序设计语言)
不同,SQL由不多的词构成,这是有意而为的。设计SQL的目的是很好
地完成一项任务,即提供一种从数据库中读写数据的简单有效的方法。
SQL有以下的优势。

  • SQL不是某个特定数据库供应商专有的语言。几乎全部重要的
    DBMS都支持SQL,因此,学习此语言使你几乎能与全部数据库
    打交道。
  • SQL简单易学。它的语句全都是由描述性很强的英语单词组成,
    并且这些单词的数目很少。
  • SQL尽管看上去很简单,但它其实是一种强有力的语言,灵活
    使用其语言元素,能够进行很是复杂和高级的数据库操做。

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

这一章介绍了什么是SQL以及它为何颇有用。由于SQL是用来与数 据库打交道的,因此,咱们也复习了一些基本的数据库术语

相关文章
相关标签/搜索