MySQL 创建数据库

在 MySQL 中创建数据库有多种方法,包括:登录 MySQL 创建数据库、使用 mysqladmin 创建数据库、使用 PHP 创建数据库等。

 

1. 创建 MySQL 数据库的语法

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];	

[ ]中的内容是可选的。语法说明如下:

  • <数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。
  • IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
  • [DEFAULT] CHARACTER SET:指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
  • [DEFAULT] COLLATE:指定字符集的默认校对规则。

其中:MySQL 的字符集(CHARACTER)和校对规则(COLLATION)是两个不同的概念。字符集是用来定义 MySQL 存储字符串的方式,校对规则定义了比较字符串的方式。

 

2. 登录 MySQL 创建数据库

先登录 MySQL 数据库,然后使用 CREATE DATABASE 命令创建数据库。

以下命令演示了创建数据库的过程,数据库名为 CodeBaoku:

[root@host]# mysql -u root -p   
Enter password:******  # 登录后进入终端

mysql> CREATE DATABASE CodeBaoku DEFAULT CHARACTER SET utf8mb4;

3. 使用 mysqladmin 创建数据库

使用 mysqladmin 创建或者删除 MySQL 数据库,需要特定的权限。我们下面的例子中,使用了root用户登录,root用户拥有最高权限,然后再使用 mysqladmin 命令来创建数据库 CodeBaoku。

[root@host]# mysqladmin -u root -p create CodeBaoku
Enter password:******

以上命令执行成功后会创建 MySQL 数据库 CodeBaoku。

 

4. 使用 PHP 创建数据库

PHP 使用 mysqli_query 函数来创建或者删除 MySQL 数据库。

该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。

1)创建MySQL数据库语句

mysqli_query(connection,query,resultmode);
参数 描述
connection 必需。规定要使用的 MySQL 连接。
query 必需,规定查询字符串。
resultmode

可选。一个常量。可以是下列值中的任意一个:

  • MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
  • MYSQLI_STORE_RESULT(默认)

2)创建MySQL数据库范例

以下范例演示了使用PHP来创建一个数据库:

<?php
$dbhost = 'localhost';  // mysql服务器主机地址
$dbuser = 'root';            // mysql用户名
$dbpass = '123456';          // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('连接错误: ' . mysqli_error($conn));
}
echo '连接成功
'; $sql = 'CREATE DATABASE CodeBaoku'; $retval = mysqli_query($conn,$sql ); if(! $retval ) { die('创建数据库失败: ' . mysqli_error($conn)); } echo "数据库 CodeBaoku 创建成功\n"; mysqli_close($conn); ?>

删除 MySQL 数据库的方式有三种:使用 drop 命令删除数据库、使用 mysqladmin 删除数据库、使用 PHP 删除数据库。删除 MySQL 数据库,需要特定的权限。数据库一旦删除数据,它就会永远消失,因此,在执行DELETE语句之前,最好先备份数据库,以防万一要找回删除过的数据。