2013-07-15 91 views
1

這是我第一次做MySQL。我正在使用MySQL 5.6命令行客戶端,並試圖顯示錶並顯示空集。這裏的腳本語句我想執行:如何在MySQL中顯示錶?保持顯示空集

CREATE DATABASE ACMEOnline; 

CREATE TABLE ITEM(Item_Number Integer DEFAULT 0, Item_Name Varchar(35) DEFAULT 'No Data', Model_Num Varchar(15) DEFAULT 'No Data', 
->Description Varchar(255) DEFAULT 'No Data', Price DOUBLE(8,2) NOT NULL DEFAULT 0.00, Category_Name Varchar(35), 
->CONSTRAINT item_item_number_pk PRIMARY KEY(Item_Number), 
->CONSTRAINT item_category_name_fk FOREIGN KEY(Category_Name) REFERENCES CATEGORY(Category_Name)); 

CREATE TABLE CATEGORY(Category_Name Varchar(35), ShippingPerPound DOUBLE(4,2), DiscountsAllowed Char(1), 
->CONSTRAINT category_category_name_pk PRIMARY KEY(Category_Name)); 

CREATE TABLE LINE_ITEM(Quantity TINYINT(2), Shipping_Amount DOUBLE(6,2), OrderID Integer, Item_Number Integer, 
->CONSTRAINT line_item_orderid_fk FOREIGN KEY(OrderID) REFERENCES ORDER_ITEM(OrderID), 
->CONSTRAINT line_item_item_number_fk FOREIGN KEY(Item_Number) REFERENCES ORDER_ITEM(Item_Number)); 

CREATE TABLE ORDER_ITEM(OrderID Integer, Item_Number Integer, PRIMARY KEY(OrderID, Item_Number)); 

CREATE TABLE ORDER(OrderID Integer, Total DOUBLE(10,2), CONSTRAINT order_orderid_pk PRIMARY KEY(OrderID), CustomerID Integer, OfferCode Varchar(15), 
    ->CONSTRAINT customer_offer_customerid_fk FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID), 
    ->CONSTRAINT customer_offer_offercode_fk FOREIGN KEY(OfferCode) REFERENCES OFFER(OfferCode)); 

CREATE TABLE CUSTOMER_OFFER(CustomerID Integer, OfferCode Varchar(15), PRIMARY KEY(CustomerID, OfferCode)); 

CREATE TABLE OFFER(OfferCode Varchar(15), MinAmount DOUBLE(4,2) NOT NULL, Discount Varchar(35), ExpirationDate Char(8) NOT NULL, 
    ->CONSTRAINT offer_offercode_pk PRIMARY KEY(OfferCode)); 

CREATE TABLE CUSTOMER(CustomerID Integer, CustomerName Varchar(50), Address Varchar(150), Email Varchar(80), 
    ->CONSTRAINT customer_customerid_pk PRIMARY KEY(CustomerID)); 

CREATE TABLE BUSINESS(PurchaseTerms Varchar(50), CustomerID Integer, CONSTRAINT business_customerid_pk PRIMARY KEY(CustomerID), 
    ->FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID)); 

CREATE TABLE HOME(CreditCardNum BIGINT(16) NOT NULL, CardExpiration Char(7) NOT NULL, CONSTRAINT home_customerid_pk PRIMARY KEY(CustomerID), 
    ->FOREIGN KEY(CustomerID) REFERENCES CUSTOMER(CustomerID)); 

CREATE TABLE CONTACT(ContactName Varchar(50), ContactPhone Char(12) NOT NULL, CONSTRAINT contact_contactname_pk PRIMARY KEY(ContactName), 
    ->FOREIGN KEY(Customer ID) REFERENCES BUSINESS(CustomerID)); 

SHOW TABLES; 
DESCRIBE ITEM; 
DESCRIBE CATEGORY; 
DESCRIBE LINE_ITEM; 
DESCRIBLE ORDER_ITEM; 
DESCRIBE ORDER; 
DESCRIBE CUSTOMER_OFFER; 
DESCRIBE OFFER; 
DESCRIBE CUSTOMER; 
DESCRIBE BUSINESS; 
DESCRIBE HOME; 
DESCRIBE CONTACT; 

在MySQL的5.6命令行客戶端:

mysql> use acmeonline; 
Database changed 
mysql> show tables; 
Empty set (0.00 sec) 
mysql> describe item; //the rest of the table names repeated. 
ERROR 1146 (42S02): Table 'acmeonline.item' doesn't exist 

我不知道最後一行意味着即使我有一個創建項目的表名爲acmeonline的數據庫。也許我錯過了一些重要的東西,雖然我不知道。您的幫助將不勝感激!

回答

1

您創建完成後,你應該已經改變了數據庫。現在,所有的表都駐留在數據庫中,該數據庫在執行CREATE TABLE語句之前連接到mysql或上次手動更改的數據庫時使用。

 
mysql> CREATE DATABASE ACMEOnline; 
Query OK, 1 row affected (0.00 sec) 

mysql> USE ACMEOnline; 
Database changed 

然後創建所有的表

 
mysql> CREATE TABLE test(id int); 
Query OK, 0 rows affected (0.02 sec) 

mysql> SHOW TABLES; 
+----------------------+ 
| Tables_in_acmeonline | 
+----------------------+ 
| test     | 
+----------------------+ 
1 row in set (0.00 sec) 

的另一種方法,以確保表是在正確的數據庫中創建是用點符號<database_name>.<table_name>

 
mysql> USE mysql; 
Database changed 

mysql> CREATE TABLE ACMEOnline.test1(id int); 
Query OK, 0 rows affected (0.01 sec) 

mysql> USE ACMEOnline; 
Database changed 

mysql> SHOW TABLES; 
+----------------------+ 
| Tables_in_acmeonline | 
+----------------------+ 
| test     | 
| test1    | 
+----------------------+ 
2 rows in set (0.00 sec) 
+0

我必須有我的所有腳本語句被添加到mysql命令的客戶端,而不是記事本文本文件? – TheAmazingKnight

+0

當然不是。這只是一個示範。因此,只需在腳本中使用'CREATE DATABASE ACMEOnline;'後面的'USE ACMEOnline;'或使用點符號。 – peterm

+0

@TheAmazingKnight有幫助嗎? – peterm

2

不要使用顯示錶格命令了。瞭解如何使用information_schema視圖。我懷疑你在錯誤的數據庫中創建了表。

執行以下命令

SELECT * FROM information_schema.tables

查找你的表有。 information_schema視圖對於任何開發人員/ dba都很重要。