MySQL中CREATE DATABASE和CREATE SCHEMA区别

  在使用MS SQL的时候,一般创建数据库我们都习惯于使用CREATE DATABASE 来完成,而使用CREATE SCHEMA来创建架构,但是在中,官方的中文文档在 CREATE DATABASE 语法一节中写了一句:也可以使用CREATE SCHEMA。那么和CREATE DATABASE在MySQL难道是一样的吗?

  MySQL 5.0官方的英文文档中有这么一句:

CREATE DATABASE creates a database with the given name.
To use this statement, you need the CREATE privilege for the database. 
CREATE SCHEMA is a synonym for CREATE DATABASE as of MySQL 5.0.2. 

 这个说法译成中文应该是:根据给定的名称创建数据库,要用这个语法,你需要有数据库的CREATE权限,CREATE SCHEMA从MySQL5.0.2起,可作为CREATE DATABASE的一个代名词。

  按照这个说法,CREATE SCHEMA是和CREATE DATABASE是一样的,为了验证这个说法,参阅了后继的官方文档,在MySQL5.5的英文文档中,官方如是说:

CREATE DATABASE creates a database with the given name.
To use this statement, you need the CREATE privilege for the database.
CREATE SCHEMA is a synonym for CREATE DATABASE.

 中文:CREATE DATABASE根据给定的名称创建数据库,你需要拥有数据库的CREATE权限来使用这个语句。CREATE SCHEMA是CREATE DATABASE的一个代名词。

  由此可见,在MySQL的语法操作中(MySQL5.0.2之后),可以使用CREATE DATABASE和CREATE SCHEMA来创建数据库,两者在功能上是一致的。在使用MySQL官方的MySQL管理工具MySQL Workbench 5.2.47创建数据库时,使用的是CREATE SCHEMA来创建数据库的。而这和MS SQL中的SCHEMA有很大差别。

Tuesday, May 21, 2013 | 其他技术

文章评论

  • # re: MySQL中CREATE DATABASE和CREATE SCHEMA区别
    这个博客真的很漂亮,网站做的也不错,希望能共同学习
  • # re: MySQL中CREATE DATABASE和CREATE SCHEMA区别
    您好,我最近在建mysql,在workbench中建的schema是不会出现在数据库中的,请问这是什么缘故?是因为是在workbench中的EER model中操作的吗?
    谢谢!
  • # re: MySQL中CREATE DATABASE和CREATE SCHEMA区别
    博主您好,我最近在用mysql的时候发现,当在workbench中的EER 模型里建schema时,它与数据库是分开的,并不是database,但是为什么我还没有想明白。
  • # re: MySQL中CREATE DATABASE和CREATE SCHEMA区别
    @SY CUI:不清楚你表达的是什么意思。workbench创建EER Model在Export SQL文件的时候,使用的是CREATE SCHEMA:
    DROP SCHEMA IF EXISTS `mysql_test` ;
    
    CREATE SCHEMA IF NOT EXISTS `mysql_test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
    
    SHOW WARNINGS;
    
    USE `mysql_test` ;

    你使用 show databases;就能查到数据库。

发表评论

Please add 3 and 6 and type the answer here:

关于博主

  一枚成分复杂的网络IT分子,常年游弋于电子商务,属于互联网行业分类中的杂牌军。当前正在待业中...