2013-07-15 40 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都很重要。