MySQL 查看表結(jié)構(gòu)簡(jiǎn)單命令。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、固安網(wǎng)站維護(hù)、網(wǎng)站推廣。
一、簡(jiǎn)單描述表結(jié)構(gòu),字段類型desc tabl_name;
顯示表結(jié)構(gòu),字段類型,主鍵,是否為空等屬性,但不顯示外鍵。
二、查詢表中列的注釋信息
select * from information_schema.columns where table_schema = 'db' #表所在數(shù)據(jù)庫
and table_name = 'tablename' ; #你要查的表
三、只查詢列名和注釋
select column_name,
column_comment from information_schema.columns where table_schema ='db' and
table_name = 'tablename' ;
四、#查看表的注釋
select table_name,table_comment from information_schema.tables where table_schema = 'db' and table_name ='tablename'
ps:二~四是在元數(shù)據(jù)表中查看,我在實(shí)際操作中,常常不靈光,不知為什么,有了解的大俠請(qǐng)留印。
五、查看表生成的DDL show create table table_name;
show tables即為顯示當(dāng)前數(shù)據(jù)庫中所有的表。又如:
mysql use mysql
Database changed
mysql show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.05 sec)
這個(gè)是顯示“mysql”這個(gè)數(shù)據(jù)庫中的所有的表,一共有28張。
查詢數(shù)據(jù)庫中所有表名有兩種方法:
1、select?table_name?from?information_schema.tables?where?table_schema='當(dāng)前數(shù)據(jù)庫';
2、show tables;
其中,information_schema這張數(shù)據(jù)表保存了MySQL服務(wù)器所有數(shù)據(jù)庫的信息。如數(shù)據(jù)庫名,數(shù)據(jù)庫的表,表欄的數(shù)據(jù)類型與訪問權(quán)限等。
再簡(jiǎn)單點(diǎn),這臺(tái)MySQL服務(wù)器上,到底有哪些數(shù)據(jù)庫、各個(gè)數(shù)據(jù)庫有哪些表,每張表的字段類型是什么,各個(gè)數(shù)據(jù)庫要什么權(quán)限才能訪問,等等信息都保存在information_schema表里面。
擴(kuò)展資料:
Mysql的INFORMATION_SCHEMA數(shù)據(jù)庫包含了一些表和視圖,提供了訪問數(shù)據(jù)庫元數(shù)據(jù)的方式。
元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)庫名或表名,列的數(shù)據(jù)類型,或訪問權(quán)限等。有些時(shí)候用于表述該信息的其他術(shù)語包括“數(shù)據(jù)詞典”和“系統(tǒng)目錄”。
下面對(duì)一些重要的數(shù)據(jù)字典表做一些說明:
SCHEMATA表:提供了關(guān)于數(shù)據(jù)庫的信息。
TABLES表:給出了關(guān)于數(shù)據(jù)庫中的表的信息。
COLUMNS表:給出了表中的列信息。
STATISTICS表:給出了關(guān)于表索引的信息。
USER_PRIVILEGES表:給出了關(guān)于全程權(quán)限的信息。該信息源自mysql.user授權(quán)表。
SCHEMA_PRIVILEGES表:給出了關(guān)于方案(數(shù)據(jù)庫)權(quán)限的信息。該信息來自mysql.db授權(quán)表。
TABLE_PRIVILEGES表:給出了關(guān)于表權(quán)限的信息。該信息源自mysql.tables_priv授權(quán)表。
COLUMN_PRIVILEGES表:給出了關(guān)于列權(quán)限的信息。該信息源自mysql.columns_priv授權(quán)表。
CHARACTER_SETS表:提供了關(guān)于可用字符集的信息。
COLLATIONS表:提供了關(guān)于各字符集的對(duì)照信息。
COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校對(duì)的字符集。
TABLE_CONSTRAINTS表:描述了存在約束的表。
KEY_COLUMN_USAGE表:描述了具有約束的鍵列。
ROUTINES表:提供了關(guān)于存儲(chǔ)子程序(存儲(chǔ)程序和函數(shù))的信息。此時(shí),ROUTINES表不包含自定義函數(shù)(UDF)。
VIEWS表:給出了關(guān)于數(shù)據(jù)庫中的視圖的信息。
TRIGGERS表:提供了關(guān)于觸發(fā)程序的信息。
可以使用語句檢查表。如果結(jié)果的msg_text部分是好的,那么你的表是健康的。反之,則表明mysql數(shù)據(jù)庫中的表有損壞。另外有些厲害的高手一額可以通過運(yùn)行腳本來檢測(cè)。
MyISAM?表可以采用以下方法進(jìn)行修復(fù)?:使用?reapair table?或myisamchk?來修復(fù)。如果修復(fù)無效,采用備份恢復(fù)表。
階段1?:檢查你的表
如果你有很多時(shí)間,運(yùn)行myisamchk *.MYI?或myisamchk -e *.MYI?。使用-s?(沉默)選項(xiàng)禁止不必要的信息。如果mysqld?服務(wù)器處于宕機(jī)狀態(tài),應(yīng)使用--update-state?選項(xiàng)來告訴myisamchk?將表標(biāo)記為'?檢查過的'?。
你必須只修復(fù)那些myisamchk?報(bào)告有錯(cuò)誤的表。對(duì)這樣的表,繼續(xù)到階段2?。如果在檢查時(shí),你得到奇怪的錯(cuò)誤(?例如out of memory?錯(cuò)誤)?,或如果myisamchk?崩潰,到階段3?。
階段2?:簡(jiǎn)單安全的修復(fù)
注釋:如果想更快地進(jìn)行修復(fù),當(dāng)運(yùn)行myisamchk?時(shí),你應(yīng)將sort_buffer_size?和Key_buffer_size?變量的值設(shè)置為可用內(nèi)存的大約25%?。
首先,試試myisamchk -r -q tbl_name(-r -q?意味著“?快速恢復(fù)模式”)?。這將試圖不接觸數(shù)據(jù)文件來修復(fù)索引文件。如果數(shù)據(jù)文件包含它應(yīng)有的一切內(nèi)容和指向數(shù)據(jù)文件內(nèi)正確地點(diǎn)的刪除連接,這應(yīng)該管用并且表可被修復(fù)。開始修復(fù)下一張表。否則,執(zhí)行下列過程:
在繼續(xù)前對(duì)數(shù)據(jù)文件進(jìn)行備份。使用myisamchk -r tbl_name(-r?意味著“?恢復(fù)模式”)?。這將從數(shù)據(jù)文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件。
如果前面的步驟失敗,使用myisamchk --safe-recover tbl_name?。安全恢復(fù)模式使用一個(gè)老的恢復(fù)方法,處理常規(guī)恢復(fù)模式不行的少數(shù)情況(?但是更慢)?。如果在修復(fù)時(shí),你得到奇怪的錯(cuò)誤(?例如out of memory?錯(cuò)誤)?,或如果myisamchk?崩潰,到階段3?。
階段3?:困難的修復(fù)
只有在索引文件的第一個(gè)16K?塊被破壞,或包含不正確的信息,或如果索引文件丟失,你才應(yīng)該到這個(gè)階段。在這種情況下,需要?jiǎng)?chuàng)建一個(gè)新的索引文件。按如下步驟操做:
把數(shù)據(jù)文件移到安全的地方。使用表描述文件創(chuàng)建新的(?空)?數(shù)據(jù)文件和索引文件:
shell mysql db_name
mysql SET AUTOCOMMIT=1;
mysql TRUNCATE TABLE tbl_name;
mysql quit
如果你的MySQL?版本沒有TRUNCATE TABLE?,則使用DELETE FROM tbl_name?。將老的數(shù)據(jù)文件拷貝到新創(chuàng)建的數(shù)據(jù)文件之中。回到階段2??,F(xiàn)在myisamchk -r -q?應(yīng)該工作了。你還可以使用REPAIR TABLE tbl_name USE_FRM?,將自動(dòng)執(zhí)行整個(gè)程序。
階段4?:非常困難的修復(fù)
只有.frm?描述文件也破壞了,你才應(yīng)該到達(dá)這個(gè)階段。這應(yīng)該從未發(fā)生過,因?yàn)樵诒肀粍?chuàng)建以后,描述文件就不再改變了。
從一個(gè)備份恢復(fù)描述文件然后回到階段3?。你也可以恢復(fù)索引文件然后回到階段2?。對(duì)后者,你應(yīng)該用myisamchk -r?啟動(dòng)。
如果你沒有進(jìn)行備份但是確切地知道表是怎樣創(chuàng)建的,在另一個(gè)數(shù)據(jù)庫中創(chuàng)建表的一個(gè)拷貝。刪除新的數(shù)據(jù)文件,然后從其他數(shù)據(jù)庫將描述文件和索引文件移到破壞的數(shù)據(jù)庫中。這樣提供了新的描述和索引文件,但是讓.MYD?數(shù)據(jù)文件獨(dú)自留下來了?;氐诫A段2并且嘗試重建索引文件。
你是要在創(chuàng)建表之前刪除表嗎???
可以使用drop table if exists 表名。
如果只是需要查詢需要的表,可以使用命令show tables;查看當(dāng)前數(shù)據(jù)庫中的所有表
show databases;可以查看當(dāng)前用戶中的所有數(shù)據(jù)庫
use 數(shù)據(jù)庫名;改變當(dāng)前數(shù)據(jù)庫
use 數(shù)據(jù)庫名
show tables就能看到這個(gè)庫中所有的表
或者更直接一點(diǎn),你到mysql 的data文件夾下看看,有多少個(gè)文件夾就有多少個(gè)庫,看看有多少個(gè)不同的文件名,就有多少個(gè)表
//看當(dāng)前使用的是哪個(gè)數(shù)據(jù)庫 ,如果你還沒選擇任何數(shù)據(jù)庫,結(jié)果是NULL。mysqlselect database(); +------------+ | DATABASE() | +------------+ | menagerie ?| +------------+
如何查看Mysql中有哪些數(shù)據(jù)庫和表
我想要知道自己的Mysql中有哪些數(shù)據(jù)庫和表,該如何查看?
2006-6-20 02:22 lcy234
show databases;use databaseName;show tables;
MySQL(發(fā)音為"my ess cue el",不是"my sequel")是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。