本文參照:
【mysql獲取資料庫的所有表,以及表所有字段資訊】
【mysql 查詢指定資料庫所有表, 指定表所有列, 指定列所有表 所有外來鍵及索引, 以及索引的建立和刪除】
查詢指定 資料庫 中所有 表 (指定資料庫的,所有表)
// 可以把 table_name 換成 * 號, 檢視更豐富的資訊
select
table_name
from
information_schema. tables
where
table_schema = '資料庫名'
//where 後面還有更多的條件選擇,比如只查出以 oauth_表開頭的表
and table_name like 'oauth_%';
查詢指定 資料庫 中,指定 表 的所有 字段 (指定表的,所有列)
select
column_name
from
information_schema.columns
where
table_schema = '資料庫名'
and table_name = '表名'
或
select
table_name tablename,
engine,
table_comment tablecomment,
create_time createtime
from
information_schema.tables
where
table_schema = ( select database ( ) )
查詢指定 資料庫 所有表中, 含有 某個字段 的表 (指定列的,所有表)
select
column_name columnname,
data_type datatype,
column_comment columncomment,
column_key columnkey,
extra
from
information_schema.columns
where
table_name = 'table_name'
and table_schema = ( select database ( ) )
order by
ordinal_position
或
select
table_name
from
information_schema. columns
where
table_schema = '資料庫名'
and table_name in (
select
table_name
from
information_schema. tables
where
table_schema = '資料庫名'
) and column_name = '欄位名';
查詢指定 資料庫 中所有 表 的 外來鍵
select
*from
information_schema.table_constraints
where
//注意指定約束型別, 是為了過濾掉 "primary key, unique"這兩個索引
constraint_type = 'foreign key'
and constraint_schema = '資料庫名'
//如果只查詢外來鍵是以 fk_開頭命名的 (如果你的外來鍵命名以 fk_開頭的話)
and constraint_name like 'fk_%';
查詢指定 資料庫 中所有 表 的 索引 (主鍵,唯一,普通等, 除了外來鍵)
select
*from
information_schema.statistics
where
table_schema = '資料庫名';
//對常用的幾個字段進行說明
//table_schema, 表所在庫
//table_name, 表名
//non_unique, 該索引能否包含重複, 1代表可以, 0代表不可以, 注意primary ,unique 為0,
//用index_name 欄位將兩者區分
//index_name, 索引名
//column_name 表欄位名,(表示此欄位上加了索引)
如果只想查出 某個表 的 索引
//以下兩個 sql 是等價的,
//注意 表名和資料庫名 順序 以及 是否加引號 ''
select * from information_schema.statistics
where table_name = '表名'
and table_schema = '資料庫名'
show index
from 表名
from 資料庫名
select * from information_schema.statistics where table_name='表名' and table_schema='資料庫名';
建立索引
1. alter table
//唯一索引 (文字字段不能新增索引)
alter table `表名` add unique `索引名` (`字段`, `字段`);
//普通索引 (文字字段不能新增索引)
alter table `表名` add index `索引名` (`字段`, `字段`);
//主鍵索引
alter table `表名` add primary key (`字段`);
2. create index
create index `索引名` on `表名` (`字段`, `字段`)
create unique index `索引名` on `表名` (`字段`, `字段`)
刪除索引
//刪除普通索引或唯一索引
1. drop index index_name on talbe_name
2. alter table table_name drop index index_name
注意: 按照一般情況, 主鍵我們一般都是設定為自增的, 所以刪除主鍵索引前, 要先刪掉自增
//刪除自增
alter table `表名` change `列名` `列名` int(10)
//刪除主鍵索引
3. alter table table_name drop primary key
Mysql獲取資料庫的所有表,以及表所有字段資訊
在許多時候,我們需要獲取資料庫中所有的表,比如常見的 生成,腳手架之類的,通過選擇庫中的表,配置幾個類屬性,自動生成實體類,dao,service等。下面是mysql獲取資料庫所有表的語句。select table name tablename,engine,table comment tablec...
sql 查詢所有資料庫 表 字段
sql server 用master資料庫查詢所有的資料庫 use master select name from sysdatabases 用其中的乙個資料庫查詢所有表 use student select id name from sysobjects where type u 根據id查詢某個...
查詢SQL Server資料庫所有表字段備註
select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,字段說明 isnull g...