从本节开始正式介绍各种SQL语句。本节介绍有关数据库级的SQL以及相关操作,查看、建立和删除等操作。
用SHOW显示已有的数据库
句法:SHOW DATABASES [LIKE wild]
如果使用LIKE wild部分,wild字符串可以是一个使用SQL的“%”和“_”通配符的字符串。
功能:SHOW DATABASES列出在MySQL服务器主机上的数据库。
你可以尝试下面举例,观察输出结果,例如:
mysql>show databases;
+----------+
| Database |
+----------+
| first |
| mysql |
| mytest |
| test |
| test1 |
+----------+
mysql>show databases like ‘my%’;
+----------------+
| Database (my%) |
+----------------+
| mysql |
| mytest |
+----------------+
用mysqlshow程序也可以得到已有数据库列表。
用Create Dabase 创建数据库
句法:CREATE DATABASE db_name
功能:CREATE DATABASE用给定的名字创建一个数据库。
如果数据库已经存在,发生一个错误。
在MySQL中的数据库实现成包含对应数据库中表的文件的目录。因为数据库在初始创建时没有任何表,CREATE DATABASE语句只是在MySQL数据目录下面创建一个目录。
例如:
mysql>create database myfirst;
然后利用show databases观察效果。
用DROP DATABASE删除数据库
句法:DROP DATABASE [IF EXISTS] db_name
功能:DROP DATABASE删除数据库中的所有表和数据库。要小心地使用这个命令!
DROP DATABASE返回从数据库目录被删除的文件的数目。通常,这3倍于表的数量,因为每张表对应于一个“.MYD”文件、一个“.MYI”文件和一个“.frm”文件。
在MySQL 3.22或以后版本中,你可以使用关键词IF EXISTS阻止一个错误的发生,如果数据库不存在。
使用mysqladmin工具创建和删除
在命令行环境下可以使用mysqladmin创建和删除数据库。
创建数据库:
shell> mysqladmin create db_name
删除数据库:
shell> mysqladmin drop db_name
如果出现下面的错误:
mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user: 'root@localhost' (Using password: YES)' |
表示你需要一个可以正常连接的用户,请指定-u -p选项,具体方法与3.2节介绍相同,在第七章中你将会学到用户授权的知识。
直接在数据库目录中创建或删除
用上述方法创建数据库,只是MySQL数据目录下面创建一个与数据库同名目录,同样删除数据库是把这个目录删除。
所以,你可以直接这么做,创建或删除数据库,或者给数据库更名。这对备份和恢复备份有一定意义。
用USE选用数据库
句法:USE db_name
USE db_name语句告诉MySQL使用db_name数据库作为随后的查询的缺省数据库。数据库保持到会话结束,或发出另外一个USE语句:
mysql> USE db1; mysql> SELECT count(*) FROM mytable; # selects from db1.mytable mysql> USE db2; mysql> SELECT count(*) FROM mytable; # selects from db2.mytable |
如果你不是用USE语句,那么上面的例子应该写成:
mysql> SELECT count(*) FROM db1.mytable; mysql> SELECT count(*) FROM db2.mytable; |
由于use也是一个mysql客户程序的命令,所以你可以在命令行最后不加分号,客户程序可以得到结果。
总结
本节介绍了有关数据库操作的SQL语句、实用程序,其中包括:
SQL语句:CREATE/DROP DATABASE,SHOW DATABASES,USE
程序mysqladmin
直接创建或删除数据库的目录