严格来说,数据库(Database)仅仅是存放用户数据的地方。当用户访问、操作数据库中额数据时,就需要数据库管理系统的帮助。数据库管理系统的全称是Database Management System,简称是DBMS,一个数据库管理系统不仅仅包含数据库,还包含对应的数据以及数据库维护人员等。但是我们在习惯上将数据库与数据流管理系统笼统地称为数据库。
DBMS是所有数据的知识库,它负责管理管理数据的存储、安全、一致性、并发、恢复和访问等操作。DBMS有一个数据字典(有时被称为系统表),用于存储它拥有的每个事务的相关信息,比如:名字、结构、位置和类型,这种关于数据的数据也被称为元数据。
在数据库发展历史上,按时间顺序主要出现了如下几种类型的数据库系统。
- 网状型数据库
- 层次型数据库
- 关系数据库
- 面向对象数据库
而其中关系数据库是理论最成熟、应用最广泛的数据库。对于关系数据库而言,最基本的数据存储单元就是数据表,因此可以简单地把数据库想象成大量数据表的集合,数据表是存储数据的逻辑单元,可以把数据表想象成由行和列组成的表格,其中每一行也被称为一条记录,每一列也被称为一个字段,此外还需要为每个数据表制定一个特殊列,用于唯一地标识此行的记录。
MySQL数据库的一个实例(Server Instance)可以同时包含多个数据库,MySQL是用如下命令show databases;
来看当前实例中包含多少个数据库。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| eesy |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
如果用户需要创建新的数据库,则可以使用如下命令create database 数据库名称;
:
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| eesy |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
如果想删除指定的数据库,可以使用以下命令drop database 数据库名称;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| eesy |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql> drop database test;
Query OK, 0 rows affected (0.04 sec)
建立数据流之后,如果想操作该数据库,则需要进入该数据库。进入指定数据库使用以下命令use 数据库名称;
,并使用show tables;
来查询该数据库下包含多少个数据表:
mysql> use eesy;
Database changed
mysql> show tables;
+----------------+
| Tables_in_eesy |
+----------------+
| account |
+----------------+
1 row in set (0.00 sec)
mysql>
如果想查看数据库中指定数据表的表结构(查看该表有多少列,每列的数据类型等信息),则可以使用以下的命令desc 表名;
desc就是指description。
mysql> desc account;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(40) | YES | | NULL | |
| money | float | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
3 rows in set (0.02 sec)