Bueno, y tocó el turno de meternos ya en temas un poquito más avanzados.
Vamos a ver que en nuestra conexión a nuestra base de datos, donde tenemos nuestras tablas, que venimos
trabajando a lo largo del curso, también tenemos una base de datos extra llamada Information Schema.
Esta tabla, esta base de datos, no una tabla es una base de datos completa.
Es la base de datos que contiene todas las tablas que están relacionadas a nuestras bases de datos.
Aquí vamos a encontrar un resumen de todas las bases de datos de nuestro motor, porque no solo podemos
tener una base de datos llamada cursode B.
Podemos tener muchas bases de datos en un mismo motor y toda esa información.
La información de las tablas de los campos, los tipos de datos, los índices y todas las propiedades
que tenemos en nuestros objetos, como pueden ser los objetos de Hector, procedures, triggers y demás,
van a estar.
Esa información alojada en tablas pertenecientes a la base de datos information, quemÃ.
Ahora para qué se usa esto?
Lo usa principalmente el motor, pero también nos da la posibilidad de nosotros manipular esta información.
Cuando hablo de manipular, me refiero a consultar.
O sea, es una mala práctica tratar de meternos primero que hay que ver si tenemos los permisos para
hacerlo, pero de nosotros no podemos.
Si no tenemos los conocimientos necesarios, empezar a trabajar en estas tablas haciendo app, days
o insert, cuando ustedes ya tengan la información necesaria, la experiencia necesaria, van a poder
trabajar libremente con estas tablas.
Por supuesto, si tienen los permisos asignados, vamos a ver algunas tablas.
Por ejemplo, vamos a ver la tabla tablas, vamos a venir a la tabla tablas, vamos a hacer un panorama
de lo que tiene.
Fíjense que todos los datos, las columnas que tienen, están relacionadas a lo que nosotros venimos
trabajando, por ejemplo, el tipo de tabla, el nombre y la tabla.
Vamos a ver con un browse aquí, con la grilla con donde nos muestra los datos, vamos a ver que tenemos,
por ejemplo.
El esquema significa en qué motor estamos trabajando, en este caso es el motor, el motor es la base
de datos de el tabla esquema es la base de datos.
Hay una base de datos llamada May Cycle que no la tenemos visiblemente.
Ahora hay una base de datos que es información esquema, que es donde nosotros estamos parados, pero
también vamos a encontrar que tenemos nuestra base de datos.
Curso DB Aquí tenemos sings curso.
Y por qué?
Porque solamente vemos que tenemos las tablas.
Tenemos poquitas tablas en nuestro curso.
Tenemos la tabla Clientes, la tabla Productos, la tabla Proveedores, ventas, ventas, detalle histórico
de ventas.
Qué es todo esto mismo que tenemos aquí?
Por supuesto, aquí al ser tablas y no ser stor presidios, solamente me va a mostrar todos los objetos
de nuestra base de datos, que son tablas.
Fíjense clientes, clientes, historial.
Me doy cuenta por el icono que muestra la izquierda histórico Ventas aquí está histórico ventas, productos,
proveedores, ventas y ventas netas.
Nos dice cuál es el tipo.
Nos dice que es una.
Es una base teufel.
Ósea que es un objeto de tipo base.
Nos dice que el motor de esa tabla es y no debe.
Nos dice de qué versión de motor estamos corriendo.
Nos da mucha más información que la que nosotros vemos habitualmente.
Cuántos registros tiene en este momento?
O sea, el motor lleva aún una cuenta de la cantidad de registros que tiene a la tabla, cual es el
largo del registro?
O sea, cada uno de los registros.
Cuánto mide envites?
El da talen en total sería lo que está ocupando la tabla en el espacio de disco.
Aquí tenemos el.
Esto vendría a ser como múltiplo, no?
Aunque puede ser que por cuestiones internas de datos que no nos está mostrando puede haber variaciones.
Teóricamente 60 por 2004 18 me tendría que dar esto.
Puede haber diferencias en este caso.
Fíjense que en dos registros con 30Y 2007 68 que ocupa cada uno de los registros me da que está ocupando
la información en disco 65000 536, que es ni más ni menos que el doble, por supuesto, porque son
dos registros.
Luego tenemos obviamente el lo que ocupan los índices y tenemos también, por ejemplo, el auto incremente
en número de próximo.
Euclid está posicionado.
En este caso vemos que en la tabla clientes el próximo cliente va a tener el Heidy de 2004 18 nos da
información de cuándo fue creada, nos da información de qué tipo de colacion USA para saber qué juego
de caracteres estamos usando y nos da un montón de información más que cuando uno es un programador
avanzado le puede echar mano a esto.
Muy bien, ahora vamos a ver que hay otras tablas, por ejemplo la tabla Columns, porque aquí lo que
estamos viendo es la los registros que nos hablan de las tablas.
Ahora vamos a ver qué pasa cuando vemos las columnas.
Las columnas tienen varias, en realidad varias tablas, porque hay mucha información recolectada por
cada columna.
Yo aquí podría filtrar y decirle que por favor que me traiga solamente las columnas de Table name es
igual a clientes.
Si aplico el filtro me va a filtrar solamente los dos campos que tenemos en la tabla clientes.
Si nosotros venimos aquí a la tabla clientes, vemos que hay dos campos solamente.
Lo mismo está haciendo en la tabla columnas del information esquema vamos a volver que nos habíamos
sido aquí y aquí tenemos el filtro y vemos los dos.
Vamos a filtrar por otra tabla un poquito más jugosa, con más campos, que es la tabla Productos.
Productos?
Creo que era.
No eran inglés.
Era.
Vamos a aplicar filtro y aquí tenemos mucha información porque tenemos más campos.
Entonces, primero aquí donde dice tabla esquema me pone la la base de datos siempre, aunque diga tabla
me pone el nombre de la base de datos.
Esto es algo que en realidad confunde porque dice table, pero en realidad lo que está diciendo.
Bueno, a qué esquema pertenece esta tabla?
Esta tabla que estamos filtrando que es pro-ductos, pertenece a la base de datos cursos el table nain.
Obviamente si es la tabla productos y luego tenemos los campos, el column name, cada uno de los campos
que tenemos creados.
Cuál es el origen?
La posición ordinal?
O sea, primero me va a mostrar este y luego este.
Fíjense que me lo trae ordenado.
Luego tenemos el valor de foll de la de cada una de las columnas.
Me trae una columna que me pregunta si el campo permite null o no is null label.
Luego el tipo de dato fíjense que tenemos midio nym marchar todo el como tenemos definida la tabla,
el largo máximo de caracteres que nosotros lo hemos fijado si es un bar marchar de 80 bar char de 20
y aquí tenemos un long glob que es un texto totalmente.
Este no es un texto, es un binario totalmente grande de los más grandes.
Y podemos guardar una foto y en esa foto vamos a tener un largo máximo de un poco más de cuatro siglos.
Ese es el máximo que nosotros tenemos permitido en ese campo.
Bueno, tenemos mucha información más a que Character Zer cuando es un Bachar o cuando es algún campo
de texto.
Me pone el colacion que he.
Para ver qué juego de caracteres permite luego el tipo de columna.
Aquí se repite mucho el tema de del tipo de dato y la longitud lo expresa de otra manera.
Y aquí tenemos.
Si es una clave, si es un índice, esa columna, aquí tenemos el extra de que es auto incremento,
en este caso la primary aquí, aquí.
Fíjense que en colum que le puso Opry de primary aquí.
Y luego tenemos los privilegios que tenemos nosotros como usuarios, porque somos los que estamos viendo
la información sobre estas tablas.
Podemos hacer un select, podemos hacer un INSER, un APDAYC y pedir referencias, que es otro permiso
más.
Bueno, muy bien.
Luego tenemos comentarios que hemos dejado en la columna coment, en los comentarios que hemos dejado
si los hemos dejado y luego tenemos un par de columnas más que no nos interesa.
Para qué sirve esto?
Ustedes dirán Bueno, para qué me sirve conocer esto cuando ustedes quieran tener mayor información
y mayor control sobre cómo están visto los campos, cómo están grabados, cómo están configurados?
Pueden hacer consultas directamente hacia la tabla información, esquema.
Yo puedo venir aquí a mi acribillaron una consulta, puedo hacer un select de asterisco from columns
y si le doy ejecutar.
Me va a traer la información y como todo cl puede oponerle Weathers, puedo poner, puedo filtrarlo,
puedo agrupar, puedo hacer lo que yo quiera.
Para qué se usa esto?
Bueno, cada vez que alguien quiere hacer una aplicación sobre el motor de base de datos, cuando quiera
saber mediante un programa si tal columna existe, si tal campo existe.
Por ejemplo, si yo quiero hacer un alter, un alter table de una tabla que no existe, el motor me
va a dar error.
Entonces, muchas veces lo que hacen los desarrolladores es antes de ejecutar una sentencia select o
un o un criado o lo que sea.
Pueden hacer unas consultas SQL sobre estas tablas y saber si una tabla existe, si una base de datos
existe, si un campo e una columna existe, pueden capturar la información.
Pueden saber de qué tipo es un campo.
Pueden saber si el campo fue modificado cuando fue modificado.
Muchas tareas administrativas y de gestión que las pueden hacer contra esta gran base de datos que es
information esquema en.
En un momento yo hice una aplicación para Android que era un cliente de Heidy ese un cliente de mi Cicle
donde la persona descargaba la aplicación y le permitía conectarse a un servidor remoto de mi cicle,
crear tablas, ver qué tablas había creado, a ver que Campos había creado, crear bases de datos completas.
Bueno, todo eso es posible cuando uno trabaja contra esta base de datos llamada information esquema.
Por qué?
Porque aquí tiene toda la información de cómo está conformada cada una de las bases de datos de mi motor
y tiene mucha, muchas tablas muy interesantes, como los privilegios, como los usuarios, los roles.
Puedes saber el tema de.
Bueno, aquí tenemos toda la configuración de Hino DB puede conocer los triggers.
Vamos a ver si aquí en triggers me muestra algo bueno.
Los triga es que yo he creado en el curso clientes before inser clientes after added after update e
que nosotros hemos creado.
Recuerden que nosotros tenemos un trigger que hace que cuando modificamos un cliente, la razón social
hace un una especie de disparadores ciervas podemos grabar en archivos, logs y demás.
Bueno, y aquí tenemos el código del trigger que hemos creado y para cada cosa que hemos creado visualmente
arrastrando o con el mouse o escribiendo, bueno, para cada cosa que hemos creado en el motor.
Toda esa información se grabó en estas tablas y es muy útil.
Podemos crear realmente aplicaciones de estadísticas, de control, de auditoría.
Muchas cosas se hacen sobre esta base de datos que es information esquema.
Necesitaban conocerlo.
Es parte del mundo de las bases de datos y espero que se haya entendido.
Recuerden que al ser tablas y al ser campos, pueden jugar con esto tranquilamente.
Los invito a hacer a conocer las columnas.
Como hemos visto, las columnas de cada tabla, las columnas de la tabla, columnas de la tabla de tablas
de aquí tenemos la tabla tablas e iban a poder ver y consultar lo que ustedes quieran.
Esto les pido que hagan el ejercicio de ir jugando, haciendo select from Weider para ustedes, capturar
la información que quieren en el momento que quieran.
Fíjense que recuerden que todo lo que ustedes hacen, todos los que ustedes hacen con SELECT o simplemente
filtrando por donde tengan aquí aplicar filtros, ordenamiento, todo eso les va a traer en el panel
todas las instrucciones que está corriendo para que ustedes conozcan.
Le le pegan un vistazo a esto.
Ah, bueno, cuando yo hice tal cosa, hice clic aquí.
Aquí lo que hizo fue ejecutar un select asterisco from information esquema columns y aquí lo que ha
hecho es aplicar el filtro.
Por ejemplo, cuando en la base de datos es información, esquema y la tabla es triggers y lo ordeno
por la posición y me lo trajo ordenado.
Todo esto es una es un ayuda memoria nos muestra cómo internamente el Jaimie se cuele no hace más que
tirar instrucciones a la consola, porque en definitiva es eso.
Son todas instrucciones a la consola de mi ciclo.
Espero que les haya gustado este capítulo.
Vamos a hacer más capítulos de actualización y nos vemos en el próximo capítulo del curso de base de
datos.