这种表示允许多个数据库级的语句在其实现中十分简单CREATE DATABASE db_name在数据目录中创建一个db_name空目录具有只允许MySQL服务器用户(运行服务器的Unix用户)的属主和模式这等价于下列手工在服务器主机上创建数据库
%mkdir DATADIR/db_name
%chmod DADADIR/db_name
用一个空目录表示一个新数据库的最简单方法与其它数据库甚至为一个空数据库创建大量的控制文件或系统文件正好相反
DROP DATABASE语句实现同样简单DROP DATABASE db_name删除数据库中的db_name目录和所有表文件这几乎与下列命令一样
%rm rf DATADIR/db_name
(差别是服务器只删除具有已知用于表的后缀名的文件如果你在数据库目录创建了其它文件则服务器保留它们而且目录本身不被删除
SHOW DATABASE基本上不做什么只是列出位于数据目录中的目录名有些数据库系统保持一个主表用于维护所有数据库但在MySQL无此构件由于赋予数据目录结构的简洁性数据库列表隐含在数据目录的内容中而且这样的表不必有额外的开销
数据库表的表示
每个数据库在数据库目录中有个文件一个样式(描述文件)一个数据文件和一个索引文件每个文件的基本名是表名文件名扩展名代表文件类型扩展名如下表数据和索引文件的扩展名指出表使用老式IASM索引或新式MyISAM索引
表 MySQL文件类型
文件类型 文件名扩展名 文件内容
样式文件 frm 描述表的结构(它的列列类型索引等)
[] [] [] [] [] [] [] [] [] []