暂无 |

2 资料库

资料库(Database)是用来保存各种资料元件的容器,在安装好MySQL资料库伺服器软体后,就可以依照自己的需求建立资料库,MySQL对于资料库的数量并没有限制:

mysql_07_snap_07

每一个MySQL资料库伺服器软体都会使用一个储存资料的资料夹,称为「data directory」。在这个资料夹下,每建立一个资料库,MySQL都会建立一个资料夹,称为「资料库资料夹、database directory」,一个资料库包含的档案就会放在各自的资料库资料夹中:

mysql_07_snap_08

注:使用「SHOW VARIABLES LIKE 'datadir'」叙述,可以查询MySQL资料库伺服器使用的资料库资料夹。

因为一个资料库会是档案系统中的一个资料夹,所以你要特别留意下列的特性:

  • 虽然MySQL对于资料库的数量并没有限制,可是你要注意MySQL资料库伺服器软体所安装的作业系统,它对于资料夹与档案大小的限制。
  • MySQL使用资料库名称作为资料库资料夹的名称,所以你要特别注意大小写的问题。在资料夹名称不分大小写的作业系统(例如Windows),资料库名称「MyDB」和「mydb」是一样的;可是在资料夹名称会区分大小写的作业系统(例如Linux),资料库名称「MyDB」和「mydb」就不一样了。
  • 每一个资料库资料夹中都有一个特别的档案,档案名称是「db.opt」,这个档案的内容是资料库的字元集与collat​​ion设定。

注:MySQL把「DATABASE」与「SCHEMA」当成是一样的,所有你在后续使用的指令,都可以把「DATABASE」换成「SCHEMA」。

2.1 建立资料库

下列是建立资料库的语法:

mysql_07_snap_09

在你执行新增资料库的指令以后,MySQL会使用你指定的资料库名称建立一个资料库资料夹:

mysql_07_snap_10

如果你指定的资料库名称已经存在了,MySQL会产生一个错误讯息:

mysql_07_snap_11

为了避免上列的错误,你可以在建立资料库的时候加入「IF NOT EXISTS」,如果你指定的资料库名称不存在,同样会建立新的资料库;如果已经存在,MySQL只会产生警告讯息:

mysql_07_snap_12

你可以在建立资料库的时候指定资料库预设的字元集与collat​​ion,如果没有指定的话,就会使用MySQL伺服器预设的设定:

mysql_07_snap_13

注:如果没有修改过MySQL设定的话,预设的字元集是「latin1」,Collat​​ion是「latin1_swedish_ci」。

建立资料库的时候指定字元集与collat​​ion会有一些不同的组合,例如下列只有指定字元集的话,MySQL会使用你指定字元集的预设collat​​ion:

mysql_07_snap_14

另外一种是只有使用「COLLATE」指定collat​​ion,MySQL会使用你指定collat​​ion所属的字元集:

mysql_07_snap_15

注:建立资料库的时候,不管你有没有指定,资料库都会有预设的字元集与collat​​ion。以后在这个资料库建立的表格,都会使用资料库预设的字元集与collat​​ion。

2.2 修改资料库

建立资料库以后,你唯一能执行的修改是资料库预设的字元集与collat​​ion。下列是修改资料库设定的语法:

mysql_07_snap_16

下列的叙述执行修改资料库预设的字元集与collat​​ion。在修改的时候,如果只有指定字元或只有指定collat​​ion的话,设定的规则与建立资料库一样:

mysql_07_snap_17

注:修改资料库的字元集是或Collat​​ion,并不会影响原来已经存在的表格。

2.3 删除资料库

下列是删除资料库的语法:

mysql_07_snap_18

如果在删除资料库的叙述中指定的资料库名称不存在,MySQL会产生一个错误讯息:

mysql_07_snap_19

为了避免上列的错误,你可以在删除资料库的时候,加入「IF EXISTS」指令,如果你指定的资料库名称存在,同样会删除指定的资料库;如果不存在,MySQL只会产生警告讯息:

mysql_07_snap_20

注:执行删除资料库的叙述,MySQL不会再跟你确认是否删除资料库,而是直接删除;删除资料库以后,表示资料库资料夹也会从档案系统中删除,除非你另外还有这个资料库的备份,否则原来在资料库中的所有资料就全部消失了。

2.4 取得资料库资讯

MySQL提供「SHOW」指定让你取得跟资料库相关的资讯,执行下列的指令可以取得MySQL伺服器中所有资料库的名称:

mysql_07_snap_21

你也可以执行下列的指令取得建立资料库的叙述:

mysql_07_snap_26

MySQL资料库伺服器有一个很重要的资料库,名称为「information_schema」,这个资料库通常会把它称为「系统资料库」,资料库中储存伺服器所有重要的资讯。跟资料库相关的资讯储存在「SCHEMATA」表格中,所以你可以使用查询叙述取得所有资料库的相关资讯:

mysql_07_snap_23

 

java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
C语言
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论