摘自《MySQL必知必会》
1.1.1 什么是数据库
数据库:保存有组织的数据的容器(通常是一个文件或一组文件)
人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS(数据库管理系统)。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。
1.1.2 表
表(table):某种特定类型数据的结构化清单。
这里关键的一点在于,存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。
数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。
表名的唯一性取决于多个因素,如数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名,但在不同的数据库中却可以使用相同的表名。
表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式(schema)。
1.1.5 主键
表中每一行都应该有可以唯一标识自己的一列(或一组列)。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。
唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。
虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。
表中的任何列都可以作为主键,只要它满足以下条件:任意两行都不具有相同的主键值;
每个行都必须具有一个主键值(主键列不允许NULL值)。
这里列出的规则是MySQL本身强制实施的。
除MySQL强制实施的规则外,应该坚持的几个普遍认可的最好习惯为:不更新主键列中的值;
不重用主键列的值;
不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)
2.1.1客户机-服务器软件
MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户机—服务器的数据库。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。客户机是与用户打交道的软件。例如,如果你请求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给服务器软件。服务器软件处理这个请求,根据需要过滤、丢弃和排序数据;然后把结果送回到你的客户机软件。
2.2.1 mysql命令行实用程序命令用;结束,换句话说,仅按Enter不执行命令;
输入help或\h获得帮助,也可以输入更多的文本获得特定命令的帮助(如,输入help select获得使用SELECT语句的帮助);
输入quit或exit退出命令行实用程序。
3.1 连接
MySQL与所有客户机—服务器DBMS一样,要求在能执行命令之前登录到DBMS。MySQL在内部保存自己的用户列表,并且把每个用户与各种权限关联起来。
为了连接到MySQL,需要以下信息:主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;
端口(如果使用默认端口3306之外的端口);
一个合法的用户名;
用户口令(如果需要)。
mysql -u root -p -h myserver -p 9999
3.2选择数据库
在你最初连接到MySQL时,没有任何数据库打开供你使用。在你执行任意数据库操作前,需要选择一个数据库。
USE crashcourse;
3.3了解数据库和表
SHOW DATABASES;
返回可用数据库的一个列表。
SHOW TABLES;
返回当前选择的数据库内可用表的列表。
SHOW COLUMNS FROM customers;
SHOW COLUMNS要求给出一个表名( 这个例子中的FROM customers),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息。
DESCRIBE customers;
MySQL支持用DESCRIBE作为SHOW COLUMNS FROM的一种快捷方式。
SHOW STATUS;
用于显示广泛的服务器状态信息;
SHOW CREATE DATABASE;
SHOW CREATE TABLE;
分别用来显示创建特定数据库或表的MySQL语句;
SHOW GRANTS;
用来显示授予用户(所有用户或特定用户)的安全权限;
SHOW ERRORS;
SHOW WARNINGS;
用来显示服务器错误或警告消息。
在mysql命令行实用程序中,执行以下命令可以显示允许的SHOW语句。
HELP SHOW;