Hola qué tal.
Bienvenidos a este nuevo capítulo del curso completo de base de datos.
Como habíamos dicho nos vamos a meter de lleno en lo que es la creación de nuestras tablas y nuestros
campos.
Vamos a abrir nuestros Jaydy SQL vamos a ir a nuestra sesión local teníamos nuestra base curso de base
de datos ya creada y vamos a dar click derecho crear nuevo y ahora fijense que base de datos me aparece
destiladas destiladas o deshabilitada porque por qué estoy haciendo clic derecho sobre ella una base
de datos y no sobre nuestro servidor.
Al estar en una base de datos me aparecen solamente las opciones propias de lo que puedo crear en una
base de datos.
En este caso vamos a crear una tabla hacemos clic nos aparece nuestro editor de tablas y lo primero
que vamos a hacer es colocarle un nombre a la tabla que queremos crear por ejemplo clientes
podemos guardar un comentario que explique qué es la tabla esto es una buena práctica para por si alguien
otro desarrollador usa nuestra base de datos para saber de qué trata la base de datos.
Obviamente no vamos a especificar de qué trata una tabla de clientes pero hay tablas que a veces se
crean que son tablas auxiliares que le ponemos nombres que representan para nosotros algo pero por ahí
para otro desarrollador no conviene dejar un comentario en esta parte superior vamos a ver todas las
solapas que tienen que ver con la creación de nuestra tabla y nuestros campos pero los campos o columnas
se van a crear en esta parte de abajo para ya tenemos creada nuestra tabla todavía no está grabada no
nos da la opción de grabar porque todavía no hemos creado un campo no se graban tablas vacías al menos
tienen que tener un campo creado así que vamos a ir al botón de Agregar columna hacemos clic vamos a
colocar el primer campo de nuestra tabla acuérdense que siempre conviene empezar siempre por una buena
práctica.
El primer campo tiene que ser la clave principal no es que deba ser así.
Es una buena práctica es algo de sentido común quiero que quiero ya saber que el primer campo de todas
mis tablas va a ser la clave principal y es algo como es una especie de normalización de nuestro trabajo.
Vamos a colocar el prefijo clique bajo que me indica que es un campo de la tabla clientes y todo lo
que tiene que ver con ideal.es o sea con campos Identity con campos que nos van a dar una identidad
al registro.
Siempre se abrevia con y de ustedes no están obligados a esto Tommen todo esto como consejos que los
pueden tomar o pueden buscar su propio camino.
Lo que sigue es el tipo de datos.
Ahora voy a pasar más o menos de manera rápida.
Ustedes van a tener un capítulo dedicado a los tipos de datos donde vamos a ver qué es cada tipo de
dato y qué nos conviene usar.
Vamos a hacer click en el link de tipo de dato y siempre nuestros aided van a ser numéricos.
Conviene que la idea de una tabla siempre sea numérico ocupa muchísimo menos espacio.
Son fáciles de indexar acuerden que recuerden que habíamos hablado de los índices son muy fáciles de
indexar comienzan siempre en los primeros registros con el valor 1 luego el 2 y luego el 3 y dependiendo
de la dimensión que va a tener nuestra tabla cuántos registros vamos o calculamos que va a tener.
Vamos a elegir el tipo de dato entero no es lo mismo.
Esto lo vamos a ver más en detalle.
Un campo de tipo big INET que es el campo más grande numérico que hay que un campo tinc.
Si ustedes se fijan en la ayuda que me da el Jaydy SQL me dice que un campo Tini tiene un rango cuando
es entero fíjense que tiene.
Si yo uso el signo aquí no puedo retirar del mapa porque se me va el mensaje dice designed RAM ish.
Esto significa que si yo uso este dato consigno sea en negativo o positivo el rango de valores va a
ir de menos 128 a 127 positivo si es un dato que lo voy a usar sin signo o sea que siempre va a ser
positivo.
El rango es de cero a 255 en este caso no aplica porque es muy probable que tengamos más de 255 clientes
sino nuestro negocio va a andar mal vamos a colocar por las dudas y para no andar tocando mucho vamos
a colocar un tipo de dato misión INET que va a tener un rango de un millón 600 77000.
Perdón 16 millones 777 215 si ustedes le parece exagerado pueden usar el molín pero hay una gran diferencia
del rango entre un Molin que solo tiene hasta 65000 valores posibles a un medio Ninet ustedes eligen
el que ustedes prefieran le colocan hacen clic donde dice sin signo vamos a ampliar un poquito estas
estas columnas tenemos la posibilidad de que el dato grave null null ni siquiera es un dato en cero
el Null es un dato vacío.
O sea esto me me indica que en ese campo yo voy a permitir que se grabe un valor vacío generalmente
en las claves principales.
Es por costumbre que las claves principales no permitan Null porque nunca van a tener un Null es digamos.
Es ridículo dejar este valor porque nunca va a ser null es una clave principal.
Mi cliente va a ser el número 1 o el 2 nunca va a ser null a lo sumo será cero pero cero no es Null
el Null es la nada misma y para qué se usa el Null.
Para Campos que yo creo y que en ciertas ocasiones van a tener un valor grabado no es lo mismo Null
que un espacio.
El espacio ocupa aunque sea un bit el Null no ocupa espacio.
Entonces si yo no tengo ningún valor grabado en un registro de un campo determinado estoy achicando
el espacio físico de disco de lo que va a ocupar ese dato.
Por ejemplo yo hago un campo y mail le pondría Null.
Por qué.
Por qué no todos mis clientes tienen mail o no todos los que todos mis clientes me han informado el
mail.
Entonces le digo que permita Nul en algunos clientes voy a tener un email grabado y en otros no voy
a tener absolutamente nada.
Vamos al siguiente dato importante que es para mi clave principal.
Vamos a achicar esto un poquito el predeterminado.
Estos son los valores predeterminados.
Vamos a comprender mucho más esto cuando veamos el lenguaje SQL pero en el lenguaje SQL cuando yo inserte
datos en mis tablas cuando conforme mi registro quizás el registro tenga quizás nuestro registro tenga
20 campos 20 columnas pero yo en el insert coloco cinco nada más.
Eso significa que las otras 15 que yo he obviado se va a agravar lo que tenga sentido en el valor predeterminado
puede ser un espacio puede ser un cero puede ser una fecha nula o puede ser un valor determinado.
Por ejemplo yo quiero que todos mis clientes en el campo Estado inicialmente arranquen con un Estado
en cero significa.
Algunos pueden interpretarlo como que es un estado de un cliente que está habilitado si tienen un valor
1 significa que está deshabilitado eso son cosas que ustedes van a jugar con esto y lo van a manejar
a su manera.
Vamos a seguir a valor predeterminado que nos indica que todavía no tiene un valor predeterminado y
le voy a decir a mi clave principal que va a ser de tipo alto incremento y si recuerdan cuando vimos
la parte de índices dijimos que un campo auto incremental era una clave principal que el motor de base
de datos se encargaba de ir no mirando constantemente a medida que iba agregando registros.
Esto significa que no voy a tener que preocuparme por cargar un valor en este campo cada vez que agregue
nuevos clientes el motor va a ir incrementando el valor de la columna CLI y bajo hay vida pero todavía
este campo no es una clave principal para que sea una clave principal.
Tengo que hacer botón derecho crear nuevo índice y decirle que es mi Primary aquí se acuerdan lo que
habíamos hablado de Primary de las claves de tipo aquí y yo respeté los colores para que ustedes las
identifiquen.
Las que vamos a usar.
Básicamente son las tres primeras la clave primaria claves que necesito indexar campos porque en mis
búsquedas tienen que hacer una búsqueda rápida y no recorrer todos los registros y las claves únicas.
Las claves únicas son una forma de restricción que pongo a mi tabla de decir Ojo todo lo que figura
en este campo es clave única.
No puede repetirse en el resto de la tabla.
Si yo tengo un número de documento de un usuario cuando quiera insertar un registro de otro usuario
con el número de documento que ya existe en la tabla me va a dar un error y me va a avisar de que ojo
estoy intentando grabar un registro duplicado.
Entonces mi prima ariki vamos a aceptarla con la primer llave amarilla no existen más de una prima ariki
por tabla siempre es una.
Por eso es la primaria es la principal cuando quiere agregar índices voy a tener que elegir entre los
entre los tipos aquí y los tipos Ironic pero nunca más voy a poder agregar un primarily vamos a agregar
otro campo en este caso nuestra columna se va a llamar Klim bajo razón social razón social el nombre
depende del país lo llaman de una manera diferente.
Ya si estoy indicando que va a ser un nombre no puede ser un dato entero voy a tener que buscar un dato
de tipo cáracter hago clic en el Jaydy SQL me los ordena de manera perfecta me ponen todos los enteros
juntos los que son con decimales y punto flotante de otro grupo y los que son de texto me los ubica
aquí.
Recuerden que vamos a ver en otro capítulo vamos a ser mucho más exhaustivos con los tipos de datos
en mi círculo que no son los mismos tipos de datos aunque se llamen igual que en otros motores en sí
al server.
Si bien tenemos el char el bar Char y el Tec hay algunos tipos de datos que tiene mi ciclo que no tiene
si cual Server y viceversa y además tienen límites limitaciones diferentes en cuanto a la cantidad de
datos que puedo grabar.
Por ejemplo un Tapp un tipo de dato INT en el cual Server tiene un rango mucho mayor que Maisí.
Bueno vamos a ver que podemos grabar nuestro nombre en estos dos tipos de campos.
Por qué.
Porque el test es.
Ustedes dirán Bueno es un texto ok pero el test me permite grabar páginas y páginas de texto.
Es un es un tipo de dato muy grande muy grande que me permite grabar por ejemplo una historia clínica
de un paciente Simin.
Sí si mi desarrollo fuera para un médico.
Hay mil y un test que son más grandes todavía son campos mucho más grandes Teck sería el más pequeño
fijense que permite grabar hasta 65000 bits.
Solamente tenemos el video un test que permite grabar 16 millones de beiges y el test que ya permite
grabar prácticamente 4 gigas de información algo que igualmente habría que discutirlo.
Yo no lo aconsejo por un tema de performance cuando tengan que hacer consultas a esas tablas que tienen
un solo campo que se lleva 4 gigas habría que justificarlo bastante bien y sobre todo porque no estamos
hablando de campos binarios que pueden grabar imágenes estamos hablando de texto.
No me imagino un texto que ocupe 4 gigas o sea a no ser que sea un libro completo y alguien quiere una
tabla de catálogos y en un campo se grabe todo el libro completo.
Me parece una locura no es algo aconsejable.
Entonces después tenemos los Tiny Tex que son cara.
Son textos que solamente van a ocupar hasta 255 caracteres alguien podrá decir bueno una razón social
puede andar bien con el Tiny pero no vamos a usar el bar Char porque porque el Vercher el solo hecho
de llamarse bar van a ver esto repetido en algunos campos.
Fíjense que acá tenemos bar Char bar Binary y tenemos también a veces se me mezcla porque sigo al Sarver
tenemos variedad de numéricos pero en México no tenemos bar Char y bar Binary me permite grabar un texto
que se va a ajustar al contenido del campo.
Si la razón social que yo grabé para un cliente es sólo de 20 caracteres va a ocupar 20 caracteres y
si otra otro cliente tiene una razón social de 60 va a ocupar 60.
Esto es muy óptimo nos permite ahorrar mucho espacio en disco así que funciona de esta manera yo elijo
marchar y en esta columna de longitud le pongo la cantidad que yo quiera.
Qué significa que cada registro va a ocupar 60 caracteres.
Esto significa que va a ocupar 60 caracteres máximo mi máximo de caracteres para ese campo va a ser
60 y el mínimo es cero.
Si tengo un cliente que no tiene razón social no va a ocupar nada no va a ocupar absolutamente nada
por eso se usa tanto el bar Char esto lo van a poder repetido en cualquier tutorial que tomen en cualquier
curso que quieran hacer de base de datos van a ver marchar para todo lo que tiene que ver con texto.
Después vamos a ver cuándo no usar parchar y vamos a explicar por qué sí y por qué no bueno en predeterminado
aquí me puso un cero porque antes yo tenía un valor numérico aquí pero no es correcto que un valor predeterminado
de una razón social sea cero.
Yo puedo tildar aquí arriba donde dice sin valor predeterminado o directamente en castrum decirle que
mi valor predeterminado es nada ni siquiera es un espacio es un valor.
Este es el famoso comilla comilla es no puedo decir nulo porque si fuera nulo tendría que tildara aquí
donde hice Nul puedo poner lol pedos por decir que mi mi mi dato predeterminado cuando grabe si no indico
la razón social que le Gravier nulo por eso automáticamente me tildã en permitir nulos en la columna
comentarios yo no no hice ningún ninguna aclaración pero ustedes pueden y es una muy buena práctica
aclarar de qué de qué es el campo para qué lo usan.
Por qué pensaron en ese campo.
Ustedes piensan que sus bases de datos y usted están en un grupo de desarrollo sus bases de datos van
a ser vistas por otros desarrolladores y a veces si ustedes no usan un campo nemotécnica nemotécnica
significa que use un nombre que se entiende para nombrar el campo la persona no va a tener idea de qué
hace ese campo.
Hay veces que lo voy a poder salvar porque quien no sabe lo que es una razón social pero a veces tengo
que guardar datos con siglas o Ocon con siglas o con nombres que solamente los entiendo yo y voy a tener
que aclarar en un comentario Qué es y para qué se usa es una buena práctica ustedes podrían obviar todo
eso.
Podrían en vez de marchar a usar un texto podrían en vez de un medio Ni-Ni medio Ninth usar un Beguin
podrían hacerlo todo a grosso modo como se dice podrían hacerlo todo mal iba a funcionar igual.
Pero la gran diferencia acá es vamos a aprender a hacer bien las cosas y vamos a adoptar buenas prácticas
que después van a impactar.
No crean que es gratuito.
Yo puedo poner un bint y el Beguin me ocupa 8 bits.
Para qué voy a grabar un Heydi de cliente en 8 bits cuando puedo usar un video Ninth que me graba en
4 bits.
Estoy ahorrando espacio que luego en las consultas se nota cuando use lenguaje se cuele y pida entablas
que tienen millones de registros que me traigas determinada información.
Ahí nos vamos a dar cuenta cuán importante es el tamaño de nuestros campos y toda la optimización que
hagamos de nuestras tablas.
Lo mismo si pusimos los índices correctos en los campos correctos vamos a aprender va a ser muy interesante.
No se pueden perder las clases de optimización de bases de datos y son optimizaciones que no fueron
inventadas por Pablo chilota fueron el fruto de trabajo de miles de expertos en bases de datos que han
generado numerosa documentación que está en la red y que ustedes la van a poder corroborar para ver
de que lo que estoy enseñando no es.
No es mentira de cómo hay que optimizar las tablas y de esto no se habla en los cursos.
He visto muchos cursos de base de datos y no hablan de estas cosas y es hora de que aprendan de una
vez por todas a optimizar sus tablas.
Vamos a seguir agregando campos para ver distintas variantes.
Voy a bajar los fijense que me lo insertó entre campo y campo y yo no quiero que sea mi tercer columna
y la voy a llamar CLI Imai va a ser más que nunca un parchar porque yo no sé cuánto va a ocupar un mail.
No tengo forma de ocupar un mail y le voy a dar 200.
No importa porque no va a ocupar 200.
Recuerden esto no va a ocupar 200 va a ocupar lo que yo coloque en el dato así que no importa que es
mucho mejor pasarme en este caso qué quedarme corto.
Va a ser muy frustrante cuando quiera grabar un mail de esos que son kilométricos y no tenga espacio
en la tabla.
Que si en la tabla tengo un Barça en este caso le voy a decir que mi valor predeterminado es la nada
que no es no es lo mismo que Nul.
Fíjense que no me aparece la palabra Nul sino que me va a grabar un carácter vacío.
No me tildo Nul y me va a permitir tener mi mail aunque sea vacío cada vez que yo agregue que me va
a ir duplicando lo de arriba por si tengo que agregar campos similares en este caso voy a hacer un cli
Estado y mi cliente va a tener diferentes estados va a tener por ejemplo va vamos a hacer de cuenta
que mi cliente puede ser un cliente habilitado un cliente suspendido es un cliente que yo lo suspendí
porque es un cliente que se excedió en el crédito que me debe dinero que está atrasado en el crédito.
Entonces el sistema automáticamente le pone una marca de suspendido.
Esto significa que va a seguir operando pero por ejemplo no va a poder comprar en cuenta corriente y
va a tener que pagar de contado por qué.
Porque no tiene más crédito va a poder seguir vendiendo y poder seguir comprando en mi negocio.
Yo le voy a seguir vendiendo pero el sistema me aclara me va a aclarar de que es un cliente que está
con su cuenta suspendida y el Tercer Estado es un cliente anulado.
Son clientes que no lo puedo borrar.
No es no es una buena práctica y está totalmente vedado o borrar datos de las tablas maestras.
Me refiero a tablas maestras de productos tabla maestra de proveedores tabla maestra de clientes.
Si yo tengo registros que están apuntando a esas tablas supongamos que un cliente no trabaja más con
nosotros dice bueno no compro más con ustedes me voy.
Nosotros queremos que ese cliente no compre más porque nos peleamos porque hubo un problema porque nos
estafó porque nos pagó con billetes falsos.
Por el motivo que ustedes quieran yo no puedo borrar esa ficha de cliente yo tengo que a lo sumo ponerle
un estado de anulado o de su no suspendido no de Vedado de baneado como se usan los foros y demás.
Entonces voy a tener tres estados en ese caso yo puedo apelar a un carácter de tipo string con una letra
significativa o un timing que me grabe un dato numérico.
Esto lo van a manejar ustedes yo.
Cada uno tiene su forma de hacerlo.
Yo puedo grabar un Tiny Hint y decirle que el valor predeterminado para mis clientes cuando los doy
de alta es cero cero significa que están habilitados uno que están suspendidos dos que están baneados
o o con prohibición de comprar sea de contado de lo que sea que no pisa el negocio.
Puede ser un estado cuatro o tres que indica que el cliente falleció y que ya no hay que contactarlo
ni se entiende.
O sea podemos jugar con los estados el timing me da la posibilidad de tener hasta 255 estados diferentes.
Aquí le voy a poner que sin signo para qué va a quedar el campo preparado para ver si es negativo o
positivo.
Yo ya sé que va a ser siempre un valor positivo y tenemos nuestro estado otra otra sería usar el campo
echar.
Cuál es la diferencia de echar y marchar Chara.
Va a respetar lo que yo coloque en la longitud lo que yo con lo que en la longitud va a reservar ese
espacio físico en el registro.
Si yo coloco un char de cincuenta van a ser en todos los registros cincuenta caracteres.
Si yo en el mail hubiera puesto en lugar de marchar un char cada registro hubiera reservado 220.
Imagínense el espacio que ocuparía mi tabla con 1000 o 2000 o 5000 clientes.
Sería una locura.
Es 5000 multiplicado por 220 saquen la cuenta.
Es es y no es optimización.
Tenemos que optimizar.
No importa que ahora haya mucha memoria no importa que haya muchos gigas y gigas de disco.
Es nuestra responsabilidad como desarrolladores que las tablas estén optimizadas para qué.
Para que si una consulta puede demorar cinco milisegundos no dure cinco segundos porque parece que no
pero cinco segundos en una consulta es mucho hablar hay consultas que demoran minutos.
He conocido consultas ya.
Ya estamos hablando de muchos millones de registros que duran muchos minutos incluso algunas horas.
Entonces imagínense si eso demora una consulta histórica de millones y millones de registros en tablas
que ya están optimizadas.
Cuánto tardará una mega consulta en una tabla que no está optimizada.
Entonces es muy importante que cuidemos los caracteres que cuidemos los bits que vamos a usar.
Entonces vamos a usar un char de un bit.
Por qué.
Porque va a ser una letra y yo voy a decirle que todos mis clientes cuando se den de alta tengan un
estatus de activo.
Una de activos una S de suspendido una vez de baneado una F de fallecido.
Yo voy a dar la calificación que yo quiera.
Ok bueno podemos seguir agregando Campos Yo quiero que ustedes abran sus Jaydy huele.
Hagan esto que estamos haciendo.
Que vayan poniendo campos que se fijen en los tipos de datos vamos a aprender bien los tipos de datos
a continuación.
Y van a ver como en clases posteriores a esto mismo vamos a agregarle índices yo no me quiero adelantar
ahora porque hay una clase donde vamos a colocar los índices y vamos a jugar con los índices de la tabla.
A ver si me quedó algún tipo de dato puedo tener aquí.
Esto es muy importante provincia o mejor país aided.
Qué creen que significa esto.
Esto significa que en lugar de grabar un nombre de país estoy apuntando a otra tabla batallaron una
tabla llamada países y yo le estoy diciendo que en lugar de la ficha de cliente grabar el nombre Argentina
o el nombre España o el nombre México o el nombre Colombia o el nombre de donde Uds. estén o sus clientes
estén bien grabar simplemente un número y por ahí me voy a ocupar uno dos bits nada más.
Esto es una buena práctica esto lo vamos a ver en optimización de tablas y ya algo hemos hablado en
los índices.
Entonces tengo Akashi se recomienda que mi tipo de dato coincida con la clave principal de la tabla
país si en la tabla principal de la tabla de país la clave principal que se va a llamar País aided yo
uso el timing aquí tengo que usar timing se recomienda se use un medio Ninet tengo que usar mi violín
si es Molinet lo mismo.
Ahora yo les pregunto en el planeta hay 181 países cuál voy a usar.
él es Molin no hay 65000 países y además de esos 181 países cuántos clientes de países diferentes voy
a tener.
Siempre hay que optimizar Husson tinen.
No voy a ponerle un valor predeterminado.
Voy a forzar.
Esto es muy importante si yo no coloco un valor predeterminado.
Si yo no coloco un valor predeterminado de todos estos.
Este es el único campo no seguían porque acá no hay nada hay un espacio.
Si no hubiera un espacio y no hubiera un Nul y no hubiera ningún valor me va a aparecer esta leyenda
sin valor predeterminado.
Esto significa que cuando yo agregue un registro de cliente sí o sí en la consulta de inserción de datos
voy a tener que especificar el dato país eso significa si yo no especifico el dato del país me va a
dar un error la consulta la ejecución de la consulta que me inserta la sentencia SQL que me inserta
registros en mi tabla va a dar error.
Si yo no especifico el país no se preocupen.
Todo esto lo vamos a ver en el lenguaje de SQL que lo van a ver más completo que ningún otro curso así
que ahora nos tenemos que preocupar por esto tenemos nuestro nuestro CLI ir de país metido a mi tabla
clientes y aquí podría agregar CLI província id a otra tabla província que va a estar relacionada me
Ibid de país y voy a poder agregar si quieren CLI localidad hoy día a una tabla de localidades que no
va a ser tenim porque aquí el rango ya se empieza a agrandar.
Puedo llegar a tener vamos a ser así es más lógico.
Puedo tener 181 países de los cuales la multiplicación de esos países por cada provincia que hay en
esos países me va a dar un Molinet y si encima de esos países y de esas provincias tengo que multiplicar
exponencialmente por la cantidad de localidades que pudo haber ahí si se justifica un medio en hint.
Ahora yo puedo grabar mi tabla en este momento y quedaría normal pero qué pasa conviene que estos tres
campos sean índices para estar unidos a mi tabla.
Yo voy a explicar esto bien de índices en otro.
En otro capítulo pero lo vamos a hacer ahora para que ustedes terminen este capítulo con un panorama
general y no detallado pero general de cómo se maneja esto.
Si hago clic con el botón derecho y pongo crear un nuevo índice yo aquí voy a elegir el tipo aquí.
Por qué.
Porque va a ser normal no puede ser Ironic porque voy a tener muchos clientes del mismo país.
Si yo pusiera un IPC donde grabé un cliente de Argentina por ejemplo no podría haber otro cliente que
tenga Argentina como país me va a dar un error va a querer grabar y va a decir Ojo esta clave es única
no se puede repetir el guión.
EC Se puede usar si yo aquí agrego no vamos a bajar por ejemplo en la columna 6 voy a poner
documento y voy a poner que aquí se grabe el número de su documento por las dudas porque no sé no sé
el largo de los tipos de documento en distintos países hay algunos que van a ser más largos que otros
voy a usar un tipo entero y va a ser sin signo y por valor de foll.
Le puedo poner Nul porque quizás el cliente no me lo.
No me lo informó ahora si yo no quiero que se repita el número de documento de un cliente en mi tabla
clientes o sea que el sistema me avise Ojo estas dando de alta a un cliente que ya está dado de alta.
Cuál es la forma de darme cuenta que un cliente ya está dado de alta por el número de documento o no
se va a repetir.
En cambio el usuario final no tiene idea del Leydi de la clave principal este dato ni ni ni lo sabe
o sea quizás lo sepa como número de clientes pero lo que más nos importa es el número de documento.
Entonces aquí yo creo un índice de tipo y único y ahí tengo mi índice de tipo y no va a haber y de esto
se va a encargar el motor y se los puedo asegurar que les va a dar un error no va a haber posibilidad
de grabar números de documento iguales.
Y aquí estoy cometiendo un error no puedo colocar Nul.
Por qué.
Porque donde yo tenga dos registros de tipo Null me va a dar error.
Esto fue un error de inicio.
No puedo poner un valor predeterminado en una clave única.
Esto es algo que también se tienen que grabar.
No puede haber un valor predeterminado.
No puedo decirle cuando no me informes el documento ponele cero.
Se entiende de esta manera algunos sistemas no los convierten en Yúnez precisamente porque hay clientes
que no lo informan.
Entonces me gustaría no me estaría dejando grabarlo pero en los sistemas donde es estricto de que el
cliente tiene que tener un número de documento sí o sí asociado por ejemplo en las empresas telefónicas
en las empresas de servicios no aceptan que el cliente no tenga un número de identificación mucho menos
un banco.
Entonces en esos casos en esas tablas en cuando hemos trabajado para desarrollos de empresas grandes
estos datos son obligatorios.
No hay forma de que no se informe.
Bueno voy a completar mis índices.
Voy a decirle que todos estos son índices y ya estoy en condiciones fijense aquí en la solapa lo voy
a agrandar un poco en la solapa índices que me va enumerando todos los índices que yo fui creando.
Vamos a ver más adelante cómo agregar más campos un índice puede estar compuesto esto lo vimos al principio
en cuanto explicábamos los índices lo vamos a ver después en la práctica llaves foráneas todavía no
hemos agregado.
Después vamos a ver cómo agregar sabe foráneas que en realidad son estas tres que hemos creado pero
como no tenemos nuestras tablas país y tabla provincia y tabla localidad no podemos aún convertirlas
en llaves foráneas las llaves foráneas son índices que en realidad están unidos a otras tablas lo que
indica la llave foránea es una relación entre tablas una tabla cliente está relacionada con una tabla
de facturas.
Por qué.
Porque la factura sí o sí tienen una idea de cliente están unidas por el Eiriz del cliente.
Las llaves foráneas se usan como medida de seguridad para que si yo quiero borrar un registro de mi
tabla maestra de clientes el sistema no me deje porque encuentra quizá ese registro de cliente está
asociado a un registro de facturas.
Entonces qué pasa.
Supongamos que me dejara y no tuviera una llave foránea y no he relacionado mis tablas y he hecho lo
que se dice una mala práctica donde yo borre mi registro de clientes y en una consulta de facturas quiera
traer todas las facturas de un mes determinado cuando esa consulta quiera unir el dato de Heydi de cliente
con el nombre para mostrarme por pantalla.
Mira esta factura del 4 de enero de que fue una factura de tipo A del cliente número 3 1228 y cuando
me quiera mostrar el nombre del cliente va a dar un error.
Ese registro no me lo va a traer va a dar un error porque no va a encontrar la ficha de cliente.
Esas cosas las que nos indican que no tenemos que borrar registros de las tablas maestras salvo que
reciban las Xallas que recién haya creado el registro todavía no tenga movimientos y me dé cuenta que
fue creado mal y mi sistema no sea lo suficientemente bueno que me permita modificarlo lo que creé y
grabé mal.
Esto va a depender mucho del desarrollador y va a depender de nosotros como programadores que hagamos
buenas prácticas no sólo en las tablas sino en los códigos
particiones no lo vamos a usar esto si nuestras tablas esta partición nada en diferentes servidores.
No vamos a usarlo y el código Kraid es una ayuda que me da el mail el Jaydy SQL donde todo lo que yo
fui creando con el mouse y con el teclado me crea el código creíais necesario para que yo ejecute esto
por ejemplo o en un sistema hay sistemas internamente crean nuevas tablas nuevos campos y nuevos índices.
Si yo quisiera el código necesario para crear esta tabla lo tengo aquí.
Lo único que tengo que hacer es copiarlo pegarlo en mi sistema y mi sistema se va a encargar de crearla
manualmente automáticamente perdónanos manualmente porque no podemos decirle a nuestro usuario final
vaya al Jaydy SQL y creé una tabla para que usted pueda manejar los productos porque los sistemas se
van actualizando tengo un sistema en la calle con clientes que lo están usando y ahora he implementado
una nueva funcionalidad.
El cliente actualiza su sistema pero no la base de datos entonces la forma de crear tablas de halter
de alterar tablas.
Vamos a ver que después hay un código llamado halter que lo que me permite es tener el código necesario
cuando yo fui y modifico un campo por ejemplo o borré un campo o le cambió el nombre a un campo o grande
de bar Char 200 o 300.
Todo eso me va a generar un código halter que también lo voy a tener disponible para colocar en mi sistema
el sistema que yo tengo en la calle tiene trabaja con una tabla a clientes cuyo mail tiene 200 posiciones
y nos avisa a un cliente que le dio error porque quiso grabar un mail de 300 posiciones.
Si nosotros consideráramos que eso es válido y que puede ser útil para el resto de las distribuciones
que tengo en la calle creo la modificación necesaria coloco 300 y se me va a crear un código halter.
Por qué no lo hace ahora porque para el Jaydy SQL todavía esta tabla es nueva.
Entonces solo me lo va a permitir crear.
Si yo tomara una tabla ya existente y modifico un campo ahí me va a habilitar una solapa nueva con el
código halter ese código halter solo voy a encapsular en mi aplicación y le voy a decir Bueno mira a
la aplicación le voy a ir cuando empieces a ejecutar antes de trabajar con las bases de datos ejecuta
estos escrit se llaman de creación y de alteración.
Ejecuta estos escrit y modifica la tabla del cliente para que después de error con el resto de las opciones
esto se los estoy explicando para que ustedes tengan una noción de porque van a ver inclusive he visto
cursos que dice vamos a enseñarles a crear el código halter no tiene sentido que les enseñen a crear
el código halter cuando tengo un software una aplicación que lo voy haciendo yo en tiempo real en pantalla
y ya me va creando el código solo sea de qué les sirve aprenderse de memoria.
Después lo pueden aprender si quieren que el código se llama criadita el que tienen que poner el nombre
de la tabla entre comillas en ese tipo de Comillas entre paréntesis cada uno de los campos separados
por comas que tienen que colocar el tipo de datos si es assigned o no Null que es un auto incremental
y las variaciones son enormes.
Yo he hecho una aplicación para Android que es un gestor de ciclo es un gestor que permite crear tablas
Campos y ahí sí tuve que aprender esto por qué.
Porque mientras el usuario con su móvil iba creando campos yo no tenía un Jaydy SQL atrás que me creara
el comando lo tuve que aprender y lo tuve que hacer a medida yo.
Pero ustedes no van a tener que pasar por eso y si pasa lo aprenden pero en la mayoría de los casos
cuando les toque manejar o gestionar una base de datos no van a tener que lidiar con este Código.
Vamos por último a la solapa opciones no van a tener que tocar prácticamente nada.
Yo les diría que aquí no toquen nada.
Ustedes pueden elegir el motor de base de datos si quieren con cuál quieren trabajar.
Maisí tiene varios motores varios tipos de motores que gestionan los datos de manera diferente.
Básicamente nos vamos a manejar entre estos dos Isam o y no debe.
Son motores de características diferentes inclusive por ejemplo.
Luego vamos a ver que podemos optimizar con la herramienta nuestras tablas o reparar nuestras tablas
o chequear nuestras tablas y no de vez más duro para eso pero lo reconocen como un motor más potente
más robusto pero para optimizar o para reparar una tabla con niño de ver desde Jaydy SQL van a ver
si después lo vamos a ejecutar van a ver que dice que ese motor no acepta reparaciones de nuestras tablas.
A veces las tablas pueden dañarse el típico corte de luz justo cuando estaba haciendo una inserción
una actualización.
A veces nos quedan mal los datos y bueno hay que cada tanto hacerle un mantenimiento.
No se asusten porque no es algo para asustarse no es algo habitual.
No es que hoy cada semana se me rompe una tabla pero sepan que podría pasar y bueno nosotros vamos a
elegir.
Después hay muchísima documentación en internet no nos vamos a extender mucho en este curso no tiene
sentido.
Acerca de las características de cualquiera de estas de estos motores.
Ok vamos a dejar y no debe y vamos a guardar nuestra tabla
acostumbran a hacer clases más largas.
Al principio fue todo muy muy rápido pero yo quiero dejar en claro en cada clase a partir de ahora todas
las variantes íbamos a quizás extendernos un poquito más de lo que alguno quizá le guste.
Vamos a ver que ya tenemos una tabla clientes vamos a hacer click aquí para que vean si hacemos clic
en la base de datos vamos a tener una solapa que es el nombre de nuestra base y todas las tablas se
van a ir enumerando.
El ejemplo lo van a ver aquí.
Aquí tenemos la base Information quema y tenemos todas las tablas de esa base de datos de tipo they've
cuando fue creada.
Qué tamaño tiene.
Fíjense que la mayoría están 00:20 en la base de datos cicle no son bases de datos internas de cada
motor.
Ustedes no van a interactuar con esto nunca salvo que sean desarrolladores profesionales y Siniora y
tengan que hacer algo muy específico consultas muy específicas al motor de la base de datos.
Nosotros tenemos ya nuestra base de datos curso de base de datos y nuestra tabla tabla clientes fíjense
algo.
Ahora ya como ya fue creada me aparece nuestra solapa Colli código halter donde yo venga y vuelva a
poner el mail en €200 porque es una es una exageración ponerle 300 ya en código al Terme aparece nuestro
código que dice que tiene que alterar la tabla clientes y cambiar la columna clima Veil llamada clima.
Lo repite dos veces y que tiene que ponerle un nuevo tipo de datos llamados Bahar Char €200 no le importa
cuánto tenía antes lo que te dices es en la columna Climent sería la de Bart Char 200 que sea no Nul.
Esto lo repite porque no he hecho ningún cambio ningún cambio en la columna en los datos de Nul.
Si no me hubiera cambiado esto.
Y cuando la tiene que la tiene que colocar la columna la tiene que colocar después de Kili razón social
por qué me agrega esto si yo no cambié el no porque yo puedo venir a clima decir mira ahora quiero bajarla
ahora quiero bajarla.
Fíjense como va cambiando este dato de After no solo me cambia el tipo de dato sino que dice Bueno mira
el campo fue reubicado en la tabla a veces por un tema de elegibilidad.
Yo quiero que un campo esté primero no es tan importante lo mandó abajo de todo.
Entonces eso también va a ir en mi tabla en mi código halter vamos a agravarlo y ya mi código halter
se ejecutó el código.
No importa me lo repite porque este dato es muy importante.
Como les dije Si yo tengo un desarrollo y lo quiero usar es como un ayuda memoria me sigue apareciendo
comida inclusive fíjense que el código Krieg también fue actualizado porque el mail ya dejó de estar
abajo de razón social ya me ubicó el mail donde va y me puso un marchar de 200.
Entonces yo ya tengo mi campo y mail ubicado donde tiene que ir en mi código crié bueno no me voy a
extender más porque tenemos muchas clases por delante para ir profundizando todo esto.
Así que ahora sin más los invito a continuar con la próxima clase.