Mostrando entradas con la etiqueta Consultas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Consultas. Mostrar todas las entradas

Algunas consultas utiles usando Information_Schema




 * Mostrar si hay tablas sin PK (clave primaria)

SELECT t.TABLE_SCHEMA,t.TABLE_NAME,ENGINE
FROM information_schema.TABLES t
INNER JOIN information_schema.COLUMNS c
ON t.TABLE_SCHEMA=c.TABLE_SCHEMA
AND t.TABLE_NAME=c.TABLE_NAME
AND t.TABLE_SCHEMA NOT IN ('performance_schema','information_schema','mysql')
GROUP BY t.TABLE_SCHEMA,t.TABLE_NAME
HAVING sum(if(column_key in ('PRI','UNI'), 1,0))=0;




* Mostrar numero de conexiones por cada usuario

SELECT USER, COUNT(*) FROM information_schema.processlist GROUP BY USER;


 
* Mostrar numero de conexiones por cada host


SELECT HOST, COUNT(*) FROM information_schema.processlist GROUP BY HOST;



* Mostrar la actividad del usuario root

SELECT * FROM information_schema.processlist WHERE USER = ‘root’;



* Mostrar procesos asociados con consultas SELECT o UPDATE

SELECT * FROM information_schema.processlist WHERE INFO LIKE ‘SELECT%’;

SELECT * FROM information_schema.processlist WHERE INFO LIKE ‘UPDATE%’;



* Mostrar tiempo medio de consulta para cada base de datos

SELECT DB, AVG(TIME) FROM information_schema.processlist GROUP BY DB;



Conocer las rutinas existentes

information_schema: los datos de los datos


Todos las rutinas se guardan en la BD 'information_schema' más concretamente en la tabla 'routines'.

De esta manera si lo que quieren ver son todas las rutinas creadas en nuestras bases de datos, estaría bien hacer una consulta como esta:
SELECT specific_name FROM information_schema.routines;

Si lo que quieren ver es el código de alguna rutina, para este ejemplo le vamos a llamar 'nombre_rutina':
SELECT routine_definition FROM information_schema.routines WHERE specific_name = 'nombre_rutina';

Si lo que deseamos es saber de que tipo es, es decir, si es función o procedimiento entonces:
SELECT routine_type FROM information_schema.routines WHERE specific_name = 'nombre_rutina';

Y así de esta manera podemos saber muchos detalles de nuestras rutinas.

Si quieres más información basta con que le eches un vistazo a las columnas de la tabla 'routines' del esquema 'information_schema', puedes hacer esta consulta:
SHOW columns FROM information_schema.routines;

Distintas opciones de consulta (2/2):

La tabla INFORMATION_SCHEMA SCHEMA_PRIVILEGES

La tabla SCHEMA_PRIVILEGES proporciona información acerca del esquema de permisos (base de datos). Esta información viene de la tabla de permisos mysql.db .

SELECT *  
  FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES



Las columnas que puede mostrar son: 

GRANTEE
TABLE_CATALOG
ABLE_SCHEMA
PRIVILEGE_TYPE
IS_GRANTABLE

La tabla INFORMATION_SCHEMA TABLE_PRIVILEGES

La tabla TABLE_PRIVILEGES proporciona información de permisos de tablas. Esta información viene de la tabla de permisos mysql.tables_priv .

SELECT *
 FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES



Las columnas que puede mostrar son: 

GRANTEE
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
PRIVILEGE_TYPE
IS_GRANTABLE

La tabla INFORMATION_SCHEMA COLUMN_PRIVILEGES

La tabla COLUMN_PRIVILEGES proporciona información acerca de permisos de columnas. Esta información viene de la tabla de permisos mysql.columns_priv

SELECT *
 FROM INFORMATION_SCHEMA.COLUMN_PRIVILEGES


Las columnas que puede mostrar son: 

GRANTEE
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
PRIVILEGE_TYPE
IS_GRANTABLE


La tabla INFORMATION_SCHEMA CHARACTER_SETS

La tabla CHARACTER_SETS proporciona información acerca de los conjuntos de caracteres disponibles.

SELECT *
 FROM INFORMATION_SCHEMA.CHARACTER_SETS

 [WHERE CHARACTER_SET_NAME LIKE 'nombre_del_tipo_de_caracter']  

 Las columnas que puede mostrar son: 

CHARACTER_SET_NAME
DEFAULT_COLLATE_NAME
DESCRIPTION
MAXLEN


La tabla INFORMATION_SCHEMA COLLATIONS

La tabla COLLATIONS proporciona información acerca de colaciones para cada conjunto de caracteres.

SELECT *

  FROM INFORMATION_SCHEMA.COLLATIONS
  [WHERE collation_name LIKE 'nombre_de_la_colacion'] 



Las columnas que puede mostrar son: 
 
COLLATION_NAME

CHARACTER_SET_NAME
ID
IS_DEFAULT
IS_COMPILED
SORTLEN

La tabla INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY

La tabla COLLATION_CHARACTER_SET_APPLICABILITY indica qué conjunto de caracteres es aplicable a cada colación.

SELECT *
 FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY
 [WHERE collation_name LIKE 'nombre_de_la_colacion']

Las columnas que puede mostrar son: 

COLLATION_NAME
CHARACTER_SET_NAME


La tabla INFORMATION_SCHEMA TABLE_CONSTRAINTS

La tabla TABLE_CONSTRAINTS describe qué tablas tienen restricciones



SELECT *
 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
 [WHERE table_name = 'nombre_de_la_tabla']
 [
WHERE | AND table_schema = 'nombre_de_la_base_de_datos']

Las columnas que puede mostrar son: 
 
CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_SCHEMA
TABLE_NAME
CONSTRAINT_TYPE 

La tabla INFORMATION_SCHEMA KEY_COLUMN_USAGE

La tabla KEY_COLUMN_USAGE describe qué columnas clave tienen restricciones


SELECT *
 FROM INFORMATION_SCHEMA.
KEY_COLUMN_USAGE
 [WHERE table_name = 'nombre_de_la_tabla']
 [
WHERE | AND table_schema = 'nombre_de_la_base_de_datos']

Las columnas que puede mostrar son: 

CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
ORDINAL_POSITION
POSITION_IN_UNIQUE_CONSTRAINT
REFERENCED_TABLE_SCHEMA
REFERENCED_TABLE_NAME
REFERENCED_COLUMN_NAME

La tabla INFORMATION_SCHEMA ROUTINES

La tabla ROUTINES proporciona información acerca de rutinas almacenadas (procedimientos y funciones).


SELECT *
 FROM INFORMATION_SCHEMA.
ROUTINES 
 [WHERE table_name = 'nombre_de_la_tabla']

Las columnas que puede mostrar son: 
 
SPECIFIC_NAME
ROUTINE_CATALOG
ROUTINE_SCHEMA
ROUTINE_NAME
ROUTINE_TYPE
DATA_TYPE
CHARACTER_MAXIMUM_LENGTH
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISION
NUMERIC_SCALE
DATETIME_PRECISION
CHARACTER_SET_NAME
COLLATION_NAME
DTD_IDENTIFIER
ROUTINE_BODY
ROUTINE_DEFINITION
EXTERNAL_NAME
EXTERNAL_LANGUAGE
PARAMETER_STYLE
IS_DETERMINISTIC
SQL_DATA_ACCESS
SQL_PATH
SECURITY_TYPE
CREATED
LAST_ALTERED
SQL_MODE
ROUTINE_COMMENT
DEFINER
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION 

La tabla INFORMATION_SCHEMA VIEWS

La tabla VIEWS proporciona información acerca de las vistas en las bases de datos.

SELECT *
 FROM INFORMATION_SCHEMA.VIEWS  


Las columnas que puede mostrar son:

TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
VIEW_DEFINITION
CHECK_OPTION
IS_UPDATABLE
DEFINER
SECURITY_TYPE
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
ALGORITHM

La tabla INFORMATION_SCHEMA TRIGGERS

La tabla TRIGGERS proporciona información acerca de disparadores.
Esta tabla se implementó inicialmente en MySQL 5.0.10.
Debe tener el permiso SUPER para ver esta tabla.
Las columnas TRIGGER_SCHEMA y TRIGGER_NAME contienen el nombre de la base de datos en que se produce el dispardor, y el nombre del disparador, respectivamente.

SELECT * 

  FROM INFORMATION_SCHEMA.TRIGGERS

Las columnas que puede mostrar son: 

TRIGGER_CATALOG

TRIGGER_SCHEMA
TRIGGER_NAME
EVENT_MANIPULATION
EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA
EVENT_OBJECT_TABLE
ACTION_ORDER
ACTION_CONDITION
ACTION_STATEMENT
ACTION_ORIENTATION
ACTION_TIMING
ACTION_REFERENCE_OLD_TABLE
ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW
ACTION_REFERENCE_NEW_ROW
CREATED
SQL_MODE
DEFINER
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION


La tabla INFORMATION_SCHEMA PARAMETERS


La tabla PARAMETERS proporciona información acerca de los parámetros en las bases de datos.

SELECT * 
  FROM INFORMATION_SCHEMA.PARAMETERS 

Las columnas que puede mostrar son:TRIGGER_CATALOG

SPECIFIC_CATALOG
SPECIFIC_SCHEMA
SPECIFIC_NAME
ORDINAL_POSITION
PARAMETER_MODE
PARAMETER_NAME
DATA_TYPE
CHARACTER_MAXIMUM_LENGTH
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISION
NUMERIC_SCALE
DATETIME_PRECISION
CHARACTER_SET_NAME
COLLATION_NAME
DTD_IDENTIFIER
ROUTINE_TYPE
 
La tabla INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS

La tabla REFERENTIAL_CONSTRAINTS proporciona información acerca de las claves foráneas en las bases de datos.

SELECT * 
  FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS

Las columnas que puede mostrar son: 

CONSTRAINT_CATALOG
CONSTRAINT_SCHEMA
CONSTRAINT_NAME
UNIQUE_CONSTRAINT_CATALOG
UNIQUE_CONSTRAINT_SCHEMA
UNIQUE_CONSTRAINT_NAME
MATCH_OPTION
UPDATE_RULE
DELETE_RULE
TABLE_NAME
REFERENCED_TABLE_NAME

Distintas opciones de consulta (1/2).

La tabla INFORMATION_SCHEMA SCHEMATA

Un esquema es una base de datos, así que la tabla SCHEMATA proporciona información acerca de bases de datos.

SELECT *
  FROM INFORMATION_SCHEMA.SCHEMATA
  [WHERE SCHEMA_NAME LIKE 'nombre_de_la_tabla']


Las columnas que puede mostrar son:

CATALOG_NAME
SCHEMA_NAME
DEFAULT_CHARACTER_SET_NAME
DEFAULT_COLLATION_NAME
SQL_PATH

La tabla INFORMATION_SCHEMA TABLES

La tabla TABLES proporciona información acerca de las tablas en las bases de datos.

SELECT *

  FROM INFORMATION_SCHEMA.TABLES
  [WHERE table_schema = 'nombre_de_la_base_de_datos']
  [WHERE|AND table_name LIKE 'nombre_de_la_tabla']


Las columnas que puede mostrar son:  

TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
TABLE_TYPE
ENGINE
VERSION
ROW_FORMAT
TABLE_ROWS
AVG_ROW_LENGTH
DATA_LENGTH
MAX_DATA_LENGTH
INDEX_LENGTH
DATA_FREE
AUTO_INCREMENT
CREATE_TIME
UPDATE_TIME
CHECK_TIME
TABLE_COLLATION
CHECKSUM
CREATE_OPTIONS
TABLE_COMMENT

La tabla INFORMATION_SCHEMA COLUMNS

La tabla COLUMNS proporciona información acerca de columnas en tablas.

SELECT *
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'nombre_de_la_tabla'
  [AND table_schema = 'nombre_de_la_base_de_datos']
  [AND column_name LIKE 'nombre_de_la_columna'] 


Las columnas que puede mostrar son:  

TABLE_CATALOG
ABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
ORDINAL_POSITION
COLUMN_DEFAULT
IS_NULLABLE
DATA_TYPE
CHARACTER_MAXIMUM_LENGTH
CHARACTER_OCTET_LENGTH
NUMERIC_PRECISION
NUMERIC_SCALE
DATETIME_PRECISION
CHARACTER_SET_NAME
COLLATION_NAME
COLUMN_TYPE
COLUMN_KEY
EXTRA
PRIVILEGES
COLUMN_COMMENT

La tabla INFORMATION_SCHEMA STATISTICS

La tabla STATISTICS proporciona información acerca de los índices de las tablas.

SELECT * 

  FROM INFORMATION_SCHEMA.STATISTICS
  WHERE
table_name = 'nombre_de_la_tabla'
  [
WHERE | AND table_schema = 'nombre_de_la_base_de_datos']

Las columnas que puede mostrar son:  

TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
NON_UNIQUE
INDEX_SCHEMA
INDEX_NAME
SEQ_IN_INDEX
COLUMN_NAME
COLLATION
CARDINALITY
SUB_PART
PACKED
NULLABLE
INDEX_TYPE
COMMENT
INDEX_COMMENT

La tabla INFORMATION_SCHEMA USER_PRIVILEGES

La tabla USER_PRIVILEGES proporciona información acerca de permisos globales. Esta información viene de la tabla de permisos mysql.user .


SELECT * 
  FROM INFORMATION_SCHEMA.USER_PRIVILEGES

Las columnas que puede mostrar son: 

GRANTEE
TABLE_CATALOG
PRIVILEGE_TYPE
IS_GRANTABLE