MySQL information_schema 数据库

information_schema  
CHARACTER_SETS 可用字符集  
COLLATIONS 字符集的排序规则
COLLATION_CHARACTER_SET_APPLICABILITY 字符集和排序规则的可设置信息 SHOW COLLATION;
COLUMNS 数据库中所有列及属性  
COLUMN_PRIVILEGES 数据库中所有列DML权限  
ENGINES 存储引擎描述  
EVENTS 调度事件  
FILES    
GLOBAL_STATUS 服务器状态变量 SHOW GLOBAL STATUS;
GLOBAL_VARIABLES 服务器状态变量 SHOW GLOBAL VARIABLES;
KEY_COLUMN_USAGE 有约束的键列
PARAMETERS 存储过程和函数的参数或返回值  
PARTITIONS 分区表分区信息  
PLUGINS 服务器插件  
PROCESSLIST 当前正在运行的线程  
PROFILING 跟踪信息 SHOW PROFILES;
SHOW PROFILE;
REFERENTIAL_CONSTRAINTS 外键约束  
ROUTINES 存储过程或函数信息  
SCHEMATA 数据库部分信息  
SCHEMA_PRIVILEGES 方案(数据库)权限
SESSION_STATUS 会话状态变量 SHOW SESSION STATUS;
SESSION_VARIABLES 会话状态变量 SHOW SESSION VARIABLES;
STATISTICS 索引信息 SHOW INDEX FROM mysql.db;
SHOW INDEX FROM mysql;
TABLES 表信息 SHOW TABLES FROM mysql;
SHOW TABLES LIKE 'user';
TABLESPACES 表空间信息(非 InnoDB)  
TABLE_CONSTRAINTS 表约束信息  
TABLE_PRIVILEGES 表权限信息  
TRIGGERS 触发器信息  
USER_PRIVILEGES 用户权限  
VIEWS 视图信息  
INNODB_CMP INNODB 压缩信息  
INNODB_CMP_RESET INNODB 压缩信息  
INNODB_TRX INNODB 当前未提交的事务  
INNODB_CMPMEM INNODB 缓冲池中压缩信息  
INNODB_CMPMEM_RESET INNODB 缓冲池中压缩信息  
INNODB_LOCK_WAITS INNODB 锁等待信息  
INNODB_LOCKS INNODB 锁等待信息  
查看配置变量及运行状态变量:
#变量(全局)
mysqladmin -uroot -pmysql variables
mysql -uroot -pmysql -e "show global variables;"
select * from information_schema.global_variables;

#运行状态(全局)
mysqladmin -uroot -pmysql extended-status
mysql -uroot -pmysql -e "show global status;"
select * from information_schema.global_status;

#变量(会话)
mysql -uroot -pmysql -e "show session variables;"
select * from information_schema.session_variables;

#运行状态(会话)
mysql -uroot -pmysql -e "show session status;"
select * from information_schema.session_status;

#重置状态(会话等)
flush status;

--服务器信息
status;

--当前连接情况
show processlist;

--当前正在执行语句的连接
select * from information_schema.processlist where info is not null;


--查看数据库中所有外键  
select referenced_table_name,referenced_column_name,constraint_name,table_name,column_name
from information_schema.key_column_usage
where constraint_name <> 'PRIMARY';

SELECT CONSTRAINT_SCHEMA,TABLE_NAME,CONSTRAINT_NAME,REFERENCED_TABLE_NAME,UPDATE_RULE,DELETE_RULE
FROM information_schema.REFERENTIAL_CONSTRAINTS 
WHERE CONSTRAINT_SCHEMA='MYSQL';


 --查看数据库中表大小及行数
select table_name,table_rows
,round((data_length / 1024 / 1024), 3) "data_length_MB" 
,round((index_length / 1024 / 1024), 3) "index_length_MB" 
,create_time,engine,table_collation 
from information_schema.tables
where table_schema = 'MYSQL'
order by table_rows desc;


--各表索引字段
SELECT TABLE_NAME,INDEX_NAME,NON_UNIQUE,NULLABLE,INDEX_TYPE,GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'mysql' and TABLE_NAME='user'
GROUP BY TABLE_NAME,INDEX_NAME,NON_UNIQUE,NULLABLE,INDEX_TYPE;


--存储引擎
show engines;
show variables like '%storage_engine%';
show create table <table_name>;
show table status from <db_name> where name='<table_name>';

--数据库字符集&排序规则
select * from information_schema.schemata;

--查看表存储引擎&字符集
select TABLE_SCHEMA,ENGINE,VERSION,ROW_FORMAT,TABLE_COLLATION,CREATE_TIME 
from information_schema.tables where table_schema='mysql';


--查看存储过程/函数/触发器/视图 定义 
select name from mysql.proc where type='PROCEDURE';
select name from mysql.proc where type='FUNCTION';
select * from information_schema.triggers where trigger_name='';
select * from information_schema.views where table_name='';
select * from information_schema.tables where table_name='';

show create procedure proc_name;
show create function func_name;
show create view view_name;


--------------------------------------------------------------------

分钟排序编号:

--分组排序编号
SELECT @rownum := @rownum + 1 AS rank,t.*
FROM mysql.user t, (SELECT @rownum := 0) r;

SELECT
 @row_num := IF(@prev_value=concat_ws('',t.table_schema),@row_num+1,1) AS RowNumber
,@prev_value := concat_ws('',t.table_schema )
,t.table_schema,t.table_name
FROM information_schema.`TABLES` t,(SELECT @row_num := 1) x,(SELECT @prev_value := '') y
ORDER BY t.table_schema;

mysql 同列字符相加:

create table test(id int,name varchar(10));

insert into test value(1,'aa'),(1,'bb'),(1,'aa'),(2,'bb'),(2,'dd'),(3,'gg'),(3,null);

select * from test

SELECT id, GROUP_CONCAT(name SEPARATOR ', ') usernames FROM test GROUP BY id;

SELECT DISTINCT T0.id, (SELECT GROUP_CONCAT(DISTINCT name SEPARATOR ', ') FROM test T1 WHERE T1.id = T0.id) AS 'nameAll' 
FROM test T0;

游标:

DROP PROCEDURE  IF EXISTS proc_test;
delimiter //
CREATE PROCEDURE proc_test()
BEGIN
	declare flag boolean default true;
	declare v_id int;
	declare cur_test cursor for select id from tablename ;
	declare continue handler for not found set flag=false;
	open cur_test;
	fetch cur_test into v_id;
	while flag do
		select v_id;
		fetch cur_test into v_id;
	commit;
	end while;
	close cur_test;
END //
delimiter ;






猜你喜欢

转载自blog.csdn.net/kk185800961/article/details/49148779