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 ;