在《MySQL入门学习-环境搭建》中,我们已经成功的安装了MySQL,并且学习了常用的MySQL操作命令,下面我们来学习关于数据库的基本操作。
1 查看当前数据库
执行以下命令,可以查看当前MySQL中所拥有的全部数据库
1 | mysql> SHOW DATABASES; |
上面这条命令等价于
1 | mysql> SHOW SCHEMAS; |
在MySQL中, SCHEMAS 等价于 DATABASES。
当然,我们也可以查看当前MySQL中名字符合某个规则的数据库,此时,我们按照以下的格式执行即可.
1 | mysql> SHOW DATABASES [LIKE 'pattern' | WHERE expr]; |
注意:上面这条命令中,中括号 [] 括起来的表示是可选的,根据需要而出现。
2 默认数据库
通过上面的命令,我们可以知道刚安装好的MySQL会有四个默认创建好了的数据库,他们的名字以及相关作用是:
数据库 | 作用 |
---|---|
infomation_schema | 虚拟库,保存当前MySQL服务器已有数据库和表的统计信息,不占用物理磁盘空间,其内的数据保存在系统内存里。 |
mysql | 授权库,保存用户的授权信息,占用物理磁盘空间。 |
perfomance_schema | 保存数据库服务器运行时的运行参数,占用物理磁盘空间 |
test | 公共库,任意一个用户连接到数据库服务器后,对此库都拥有完全权限,占用物理磁盘空间。 |
2.1 infomation_schema 中的数据表说明
infomation_schema 中会有很多的数据表,我们一起来看下这个数据库中部分数据表的作用:
- SCHEMATA表 : 提供了当前mysql实例中所有数据库的信息。我们执行
SHOW DATABASES;
的结果就是取自此表。 - TABLES表 : 提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。我们执行
SHOW TABLES FROM {数据库名称};
的结果就是取自此表。 - COLUMNS表 : 提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。我们执行
SHOW COLUMNS FROM {数据库名称}.{数据表名称};
的结果就是取自此表。 - STATISTICS表 : 提供了关于表索引的信息。我们执行
SHOW INDEX FROM {数据库名称}.{数据表名称};
的结果就是取自此表。 - USER_PRIVILEGES(用户权限)表 :给出了关于所有用户权限的信息。该信息源自mysql.user授权表。是非标准表。
- SCHEMA_PRIVILEGES(方案权限)表 :给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
- TABLE_PRIVILEGES(表权限)表 :给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
- COLUMN_PRIVILEGES(列权限)表 :给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
- CHARACTER_SETS(字符集)表 :提供了mysql实例可用字符集的信息。我们执行
SHOW CHARACTER SET;
结果集就是取自此表。 - COLLATIONS表 :提供了关于各字符集的对照信息。
- COLLATION_CHARACTER_SET_APPLICABILITY表 :指明了可用于校对的字符集。这些列等效于
SHOW COLLATION
的前两个显示字段。 - TABLE_CONSTRAINTS表 :描述了存在约束的表。以及表的约束类型。
- KEY_COLUMN_USAGE表 :描述了具有约束的键列。
- ROUTINES表 :提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。
- VIEWS表 :给出了关于数据库中的视图的信息。需要有
SHOW VIEWS
权限,否则无法查看视图信息。 - TRIGGERS表 :提供了关于触发程序的信息。必须有super权限才能查看该表
3 查看当前所使用的数据库
通过以下命令,我们可以查到当前我们正在使用的数据库
1 | mysql> SELECT DATABASE(); |
4 创建数据库
通过以下命令,我们可以创建一个新的数据库
1 | mysql> CREATE DATABASE [IF NOT EXISTS] {数据库名称} [DEFAULT] CHARACTER SET = [字符集名称] |
例如,我们要创建一个名字为 xiaoxuetu 的数据库:
1 | mysql> CREATE DATABASE xiaoxuetu; |
如果我们要创建一个名字为 xiaoxuetu 并且 字符编码为 UTF8 的数据库:
1 | mysql> CREATE DATABASE IF NOT EXISTS xiaoxuetu DEFAULT CHARACTER SET = UTF8; |
5 修改数据库
执行以下命令可以更新数据库的全局特性, 目前在MySQL中,只能用于修改数据库字符集和校对规则名称:
1 | mysql> ALTER DATABASE {数据库名称} |
关于这方面,大家可以直接参考:http://www.kuqin.com/mysql5.1_doc/charset.html
6 删除数据库
通过以下命令,我们可以删除一个已经存在的数据库
1 | mysql> DROP DATABASE [IF EXISTS] {数据库名称}; |