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 ...
随机推荐
- 集合下篇—Map和Set 源码分析
Map Map不同于Collection集合,Map存放的是键值对,且键不能重复 1 .HashMap (底层是哈希表,Java中用链表的数组实现,存取顺序不一致) 这篇博客主要讲集合的,哈希表这样的 ...
- Spring Boot2 系列教程 (八) | 配置日志
前言 如题,今天介绍 springboot 默认日志的配置. 默认日志 Logback 默认情况下,Spring Boot 用 Logback 来记录日志,并用 INFO 级别输出到控制台.如果你在平 ...
- MySQL/数据库 知识点总结
书籍推荐 <SQL基础教程(第2版)> (入门级) <高性能MySQL : 第3版> (进阶) 文字教程推荐 SQL Tutorial (SQL语句学习,英文).SQL Tut ...
- Redis高可用方案-哨兵与集群
Redis高可用方案 一.名词解释 二.主从复制 Redis主从复制模式可以将主节点的数据同步给从节点,从而保障当主节点不可达的情况下,从节点可以作为 后备顶上来,并且可以保障数据尽量不丢失(主从 ...
- VirtualBox扩充磁盘&清空安装包
1.virtual box 扩充磁盘空间 D:\VirtualBox\VBoxManage.exe modifyhd "E:\virtual box\daisyyun\daisyyun.vd ...
- 【python系统学习05】input函数——实现人机交互
input函数 目录 input用途 语法 示例 参数 返回值 返回值数据类型转换 容错处理 动手吧 input用途 实现人机交互: 1.你提出问题打印在屏幕上, 2.运行程序的人再输入回答. 3.按 ...
- mysql 添加/删除列(column)
1.添加 格式:alter table 表名 add column 列名 列的数据类型;示例alter table test4 add column addr text; 2.删除 格式: alter ...
- Java单体应用 - Markdown - 03.高级技巧
原文地址:http://www.work100.net/training/monolithic-markdown-advance.html 更多教程:光束云 - 免费课程 高级技巧 序号 文内章节 视 ...
- Linux中两个重要的基础服务
本文服务器基于centos7,客户端Windows10 FTP FTP(File Transfer Protocol),文件传输协议,是一个比较古老的基于TCP,用于不同计算机间传递文件的协议. 安装 ...
- centOS7.1安装nginx与可能遇见的问题
一,安装nginx(系统:CentOS7.1) 1.Nginx下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz [root@linux src]# c ...