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
- 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 数据库名
创建索引
- . ALTER TABLE
- //唯一索引 (文本字段不能添加索引)
- ALTER TABLE `表名` ADD UNIQUE `索引名` (`字段`, `字段`);
- //普通索引 (文本字段不能添加索引)
- ALTER TABLE `表名` ADD INDEX `索引名` (`字段`, `字段`);
- //主键索引
- ALTER TABLE `表名` ADD PRIMARY KEY (`字段`);
- . CREATE INDEX
- CREATE INDEX `索引名` ON `表名` (`字段`, `字段`)
- CREATE UNIQUE INDEX `索引名` ON `表名` (`字段`, `字段`)
删除索引
- //删除普通索引或唯一索引
- . DROP INDEX index_name ON talbe_name
- . ALTER TABLE table_name DROP INDEX index_name
注意: 按照一般情况, 主键我们一般都是设置为自增的, 所以删除主键索引前, 要先删掉自增
- //删除自增
- ALTER TABLE `表名` CHANGE `列名` `列名` int()
- //删除主键索引
- . ALTER TABLE table_name DROP PRIMARY KEY
mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除的更多相关文章
- MySQL 查询某个数据库中所有包含数据记录的表名
MySQL 查询某个数据库中所有包含数据记录的表名 有时根据实际应用需要,需要对数据进行备份. 如果一个数据库中有很多数据表,但是只想备份包含数据记录的那些表数据(空表不做数据备份). 如果通过如下S ...
- #mysql查询特定数据库中的所有表名
#mysql查询特定数据库中的所有表名select table_namefrom information_schema.tableswhere table_schema='smbms' and tab ...
- MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句
查询所有数据库占用磁盘空间大小的SQL语句: ,),' MB') as data_size, concat(,),'MB') as index_size from information_schema ...
- mysql查询某个数据库表的数量
在mysql中有个数据库information_schema下的表tables记录了所有数据库中所有的表相关信息 TABLE_SCHEMA 数据库名称 SELECT COUNT( * ) FROM i ...
- mysql查询某个数据库某个表的字段
1.查看字段详细信息 -- 查看详细信息 SELECT COLUMN_NAME "字段名称", COLUMN_TYPE "字段类型长度", IF(EXTRA=& ...
- python学习之老男孩python全栈第九期_数据库day001知识点总结 —— MySQL操作数据库以及数据表、基本数据类型、基本增删改查、外键定义以及创建
一. 学习SQL语句规则以及外键 1. 操作文件夹 create database db2; 创建文件夹 create database db2 default charset utf8; 创建文件夹 ...
- 【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果
背景: 现在要将接口自动化测试结果持久化,当前只是每次运行接口测试,将测试结果通过邮件发送给项目组成员.邮件内容如下: 表设计: 为了呈现这个结果:我设计了2张表run_result和run_deta ...
- powerdesigner 外键生成sql语句设置在创建表里面
根据情况需要将创建外键表的sql语句生成在创建表的sql语句中,如下设置:
- MySQL查询所有数据库表出错
1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:show tables 错误代码: 1046 No database sel ...
- mysql 查询整个数据库所有表的行数
>use information_schema; >select sum(table_rows) from tables where TABLE_SCHEMA = "test&q ...
随机推荐
- 解决a 标签 和 div 标签高度超出的问题
当a,或div标签里面有内容时,有时候a 或div的高度会超出,此时可以设置a或div的font-size:0:
- shell 条件测试
1.文件相关 -e 判断文件或者文件夹是否存在 -d 判断目录是否存在 -f 判断文件是否存在 -r 判断是否有读权限 -w 判断是否有写权限 -x 判断是否有执行权限 1.1命令行使用 [root@ ...
- [bzoj4569] [loj#2014] [Scoi2016] 萌萌哒
Description 一个长度为 \(n\) 的大数,用 \(S1S2S3...Sn\) 表示,其中 \(Si\) 表示数的第 \(i\) 位, \(S1\) 是数的最高位,告诉你一些限制条件,每个 ...
- LeetCode 11 水池蓄水问题
今天给大家分享的是一道LeetCode中等难度的题,难度不大,但是解法蛮有意思.我们一起来看题目: Link Container With Most Water Difficulty Medium 题 ...
- CSS-14-浮动
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- MySQL5.6绿色版安装
1.下载 MySQL绿色版安装需下载好三个文件 (1).MySQL5.6版本离线安装包 (2).Microsoft Visual C++ (3).Microsoft .NET Framework 1. ...
- gerrit merge后不能提交问题
需求:git 分支合并 问题:使用 git merge 在本地执行分支合并操作,然后想 push 到 gerrit 上评审入库,可是在提交时,提示: ! [remote rejected] HEAD ...
- PKU 1185-炮兵阵地(状压DP)
炮兵阵地 题目链接 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 34827 Accepted: 13353 Descripti ...
- Springboot | @RequestBody 接收到的参数对象属性为空
背景 今天在调试项目的时候遇到一个坑,用Postman发送一个post请求,在Springboot项目使用@RequestBody接收时参数总是报不存在,但是多次检查postman上的请求格式以及项目 ...
- 004-OSI参考模型和分层思想
OSI参考模型 应用层 所有能产生网络流量的程序 表示层 在传输之前是否进行加密或者压缩处理 涉及安全问题 会话层 Session 是建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能 ...