基本概念
数据库:一个以某种有组织的方式存储的数据集合或者说是容器(通常是一个文件或一组文件);
数据库软件应该称为DBMS(数据库管理系统);数据库是通过DBMS创建和操作的容器;你并不能直接访问数据库,你使用的是DBMS,它替你访问数据库;
表:是一种结构化的文件,可用来存储某种特定类型的数据;
数据库中的每张表都有一个唯一的名字,用来标识自己;当然,表名的唯一性取决于多个因素,如数据库名和表名等的结合;这表示,虽然在相同数据库中不能有相同的表名,但在不同数据库中却可以使用相同的表名;
表具有一些特性,这些特性定义了数据在表中是如何存储的,如可以存储什么样的数据,各部分信息如何命名等等;描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系);
总而言之,模式(schema),关于数据库和表的布局及特征的信息;
表由一个或多个列组成,列是表中的一个字段,每个列都有相应的数据类型,数据类型定义列可以存储的数据种类;
表中的数据是按行来存储的,所保存的每个记录存储在自己的行内,所以行就是表中的一个记录;
主键:表中每一行都有唯一标识自己的一列(或一组列);表中的任何列都可以作为主键,只要它满足以下条件:1.每行的主键值唯一;2.主键列不允许NULL值;
主键通常定义在表的一列上,但这并不是必需的,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一);一般来说,不更新主键列中的值,也不在主键列中使用可能会更改的值;
SQL:即结构化查询语言,专门用来与数据库通信的语言;
选择数据库(USE)
连接上MySQL后,需要选择一个数据库来执行任意数据库操作。为此,可以使用USE关键字。
什么是关键字:作为MySQL语言组成部分的一个保留字。不能用关键字命名一个表或列。
为了使用crashcourse数据库,应输入以下内容:
输入: USE crashcourse或者USE crashcourse;
输出:Database changed
USE语句并不返回任何结果。显示何种形式的通知,依赖于使用的客户机。例如,这里显示的Database changed消息是mysql命令行程序在数据库选择成功后显示的。
记住,要先使用USE打开数据库之后,才能读取其中的数据。
了解数据库和表的信息(SHOW)
如果你不知道可以使用的数据库的名字怎么办?
MySQL中数据库,表,列,用户,权限等信息是被存储在数据库和表中的(MySQL使用MySQL来存储这些信息)。不过,内部的表一般是不能直接访问的。
可以用SHOW指令来显示这些信息(MySQL从内部表中提取这些信息)。
输入:SHOW DATABASES; //注意,一定要带‘;’
输出:就会输出MySQL中所有可用的数据库的名字(也包含了MySQL内部使用的数据库,如mysql和information_schema)。
选定某个数据库后,就可以查看这个数据库中的所有的表。
输入:SHOW TABLES;
输出:返回当前选择的数据库内可用表的列表;
SHOW指令也可以用来了解表的所有的列及其相关信息(包括列的数据类型,是否允许NULL,键信息,默认值等信息)
输入:SHOW COLUMNS FROM t_pay;

如果需要使用这个功能,则必须在用CREATE语句创建表时把它作为表定义的组成部分。
DESCRIBE语句:
MySQL支持DESCRIBE作为SHOW COLUMNS FROM的一种快捷方式。
SHOW COLUMNS FROM t_pay; ---> DESCRIBE t_pay;
支持的其他SHOW语句:
SHOW STATUS,用于显示广泛的服务器状态信息;
SHOW CREATE DATABASE db_name和SHOW CREATE TABLE tb_name,分别用来显示创建特定数据库或表的MySQL语句;
SHOW GRANTS,显示授予用户(所有用户或特定用户)的安全权限
SHOW ERRORS和SHOW WARNINGS,用来显示服务器错误或警告消息
HELP SHOW,显示允许的SHOW语句