创建和使用数据库
一旦知道如何输入 SQL 语句,就可以访问数据库了。
假设你家中有几只宠物(你的动物园),并且你希望跟踪有关它们的各种类型的信息。你可以通过创建表来保存数据并使用所需信息加载数据,然后,你可以通过从表中检索数据来回答有关你的动物的各种问题,本节介绍如何执行以下操作:
- 创建一个数据库
- 创建一个表
- 将数据加载到表中
- 以各种方式从表中检索数据
- 使用多个表
动物园数据库很简单(故意),但要想到可能使用类似数据库的真实情况并不困难。例如,农民可以使用这样的数据库跟踪牲畜,或由兽医跟踪患者记录,可以从 MySQL 网站获得包含以下部分中使用的一些查询和样本数据的动物园发行版,它通过 https://dev.mysql.com/doc/ 以压缩 tar 文件和 Zip 格式提供。
使用 SHOW
语句查找服务器上当前存在的数据库:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
mysql 数据库描述了用户访问权限,test
数据库通常可用作工作空间供用户试用。
语句显示的数据库列表可能在你的计算机上有所不同,如果你没有 SHOW DATABASES
权限,SHOW DATABASES
不会显示你没有权限的数据库。
如果 test
数据库存在,请尝试访问它:
mysql> USE test
Database changed
与 QUIT
一样,USE
不需要分号(如果你愿意,你可以用分号终止这样的语句,它没有坏处)。USE
语句在另一方面也是特殊的:它必须在一行上给出。
对于后面的示例,你可以使用测试数据库(如果你有权访问它),但是你在该数据库中创建的任何内容都可以被其他任何有权访问它的人删除。因此,你可能应该要求 MySQL 管理员允许使用你自己的数据库,假设你想调用你的menagerie
,管理员需要执行如下语句:
mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
其中 your_mysql_name
是分配给你的 MySQL 用户名,your_client_host
是连接到服务器的主机。
创建和选择数据库
如果管理员在设置权限时为你创建数据库,则可以开始使用它,否则,你需要自己创建它:
mysql> CREATE DATABASE menagerie;
在 Unix 下,数据库名称区分大小写(与 SQL 关键字不同),因此你必须始终将数据库作为 menagerie
引用,而不是 Menagerie
、MENAGERIE
或其他一些变体,表名也是如此。在 Windows 下,此限制不适用,但你必须在给定查询中使用相同的大小写引用数据库和表,但是,由于各种原因,建议的最佳做法始终是使用创建数据库时使用的相同字母。
如果你尝试创建数据库时收到错误,例如
ERROR 1044 (42000): Access denied for user 'micah'@'localhost' to database 'menagerie'
,这意味着你的用户帐户没有必要的权限。
创建数据库不会选择它来使用,你必须明确地这样做,要使 menagerie
成为当前数据库,请使用以下语句:
mysql> USE menagerie
Database changed
你的数据库只需创建一次,但每次开始 mysql
会话时都必须选择它才能使用,你可以通过发出 USE
语句来执行此操作,如示例中所示。或者,你可以在调用 mysql
时在命令行上选择数据库,只需在你可能需要提供的任何连接参数之后指定其名称,例如:
shell> mysql -h host -u user -p menagerie
Enter password: ********
刚刚显示的命令中的
menagerie
不是你的密码,如果要在-p
选项后的命令行上提供密码,则必须在没有中间空间的情况下执行此操作(例如,-p
password,而不是-p
password)。但是,建议不要在命令行中输入密码,因为这样做会让登录到你机器上的其他用户窥探密码。
你可以随时使用
SELECT DATABASE()
查看当前选择的数据库。