判斷數(shù)據(jù)庫(kù)是否存在是 MySQL 數(shù)據(jù)庫(kù)中非常常見(jiàn)和重要的一種操作。下面我們來(lái)介紹如何使用 SQL 語(yǔ)句來(lái)判斷數(shù)據(jù)庫(kù)是否已經(jīng)存在。
SHOW DATABASES;
首先,我們可以使用 SHOW DATABASES 命令來(lái)列出所有的數(shù)據(jù)庫(kù)。如果想要判斷的數(shù)據(jù)庫(kù)已經(jīng)被創(chuàng)建,那么它一定會(huì)在這個(gè)列表中顯示出來(lái)。例如:
mysql>SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec)
如果我們要判斷的數(shù)據(jù)庫(kù)是 test,那么可以直接在列表中找到它。但是,如果列表中沒(méi)有我們想要判斷的數(shù)據(jù)庫(kù),那么就需要使用下面的 SQL 語(yǔ)句進(jìn)行判斷。
SELECT COUNT(*) FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'database_name';
上面的 SQL 語(yǔ)句中,database_name 是我們要判斷的數(shù)據(jù)庫(kù)名。如果數(shù)據(jù)庫(kù)存在,那么查詢(xún)結(jié)果會(huì)返回 1;如果不存在,那么查詢(xún)結(jié)果會(huì)返回 0。例如:
mysql>SELECT COUNT(*) FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'test1'; +----------+ | COUNT(*) | +----------+ | 0 | +----------+ 1 row in set (0.00 sec) mysql>SELECT COUNT(*) FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'test'; +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set (0.00 sec)
通過(guò)上面的 SQL 語(yǔ)句,我們就可以很方便地判斷 MySQL 數(shù)據(jù)庫(kù)中是否存在某個(gè)數(shù)據(jù)庫(kù)了。同時(shí),我們也了解到了如何使用 SHOW DATABASES 命令來(lái)查看所有的數(shù)據(jù)庫(kù)。