Subido por 192h17142

Investigación de requerimientos de MySQL

Anuncio
UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO
DIVISIÓN ACADÉMICA DE CIENCIAS Y
TECNOLOGÍAS DE
LA INFORMACIÓN
Docente:
Doris Crystal Gómez carrillo
5to “a”
alumna:
Yesenia Sarai Martínez Collado
Villahermosa, Centro Tabasco
a
02 de diciembre del 2021
Investigación de restricciones
Concepto de (PK): Una llave primaria o PRIMARY KEY es una
columna o un grupo de columnas que identifica de forma exclusiva
cada fila de una tabla. Puede crear una llave primaria para una
tabla utilizando la restricción PRIMARY KEY.
Uso: Primary key (PK): Indica si la columna es la que define al
registro, este debe ser único en la tabla y sera obligatorio de
escribir. Si es numérico es buena idea unirlo con Auto Increment
(AI). Estará asociado con NN.
Una llave primaria o PRIMARY KEY es una columna o un grupo de
columnas que identifica de forma exclusiva cada fila de una tabla.
Puede crear una llave primaria para una tabla utilizando la
restricción PRIMARY KEY.
Si la llave principal consta de solo una columna, puede definir el uso
de la restricción PRIMARY KEY como una restricción de columna.
Concepto: Not Null (NN): Significa No nulo o no está vacio, La
restricción SQL NOT NULL también se puede crear utilizando SQL
Server Management Studio, haciendo clic en el botón derecho en la
tabla necesaria y seleccionando la opción Diseño. Al lado de cada
columna, usted encontrará una pequeña casilla de verificación que
puede usar para especificar la capacidad nula de esa columna. Al
desmarcar la casilla de verificación junto a la columna, entonces se
creará automáticamente una restricción SQL NOT NULL, evitando
que se inserte cualquier valor NULL en esa columna, como se
muestra a continuación:
Uso: indica que una columna no puede estar vacía, haciéndola
obligatoria.
Concepto: Unique index (UQ): Este tipo de índice no permite el
almacenamiento de valores iguales.
Uso: este tipo de índice se refiere a un índice normal, no único. Esto
implica que admite valores duplicados para la columna (o
columnas) que componen el índice. No aplica ninguna restricción
especial a los datos de la columna (o columnas) que componen el
índice, sino que se emplea simplemente para mejorar el tiempo de
ejecución de las consultas. Indica que la columna debe ser única, es
como el primary key pero sin sus restricciones.
Concepto: Binary colunm: es abreviatura para especificar la
colación binaria del conjunto de caracteres de la columna. La
ordenación y la comparación se basa en los valores numéricos de
los caracteres.
Uso: indica que la columna contendrá un valor binario
Concepto: Unsigned (UN): El atributo "unsigned" (sin signo)
permite sólo valores positivos. Si necesitamos almacenar edades,
por ejemplo, nunca guardaremos valores negativos, entonces sería
adecuado definir un campo "edad" de tipo entero sin signo:
edad integer unsigned;
En los tipos enteros, "unsigned" duplica el rango, es decir, el tipo
"integer" permite valores de -2000000000 a 2000000000 aprox., si
se define "integer unsigned" el rango va de 0 a 4000000000 aprox.
Uso: indica que si el campo contiene un numero este no podrá ser
negativo, haciendo que sea más óptimo, al tener un menor rango
de números. Solo si estas 100% seguro de que no podrá tener
negativos.
Concepto: Zero Filled (ZF): "zerofill" rellena con ceros los espacios
disponibles a la izquierda.
Por ejemplo, creamos la tabla "libros", definiendo los campos
"codigo" y "cantidad" con el atributo "zerofill":
create table libros(
codigo int(6) zerofill auto_increment,
titulo varchar(40) not null,
autor varchar(30),
editorial varchar(15),
precio decimal(5,2) unsigned,
cantidad smallint zerofill,
primary key (codigo)
);
Note que especificamos el tamaño del tipo "int" entre paréntesis
para que muestre por la izquierda ceros, cuando los valores son
inferiores al indicado; dicho parámetro no restringe el rango de
valores que se pueden almacenar ni el número de dígitos.
Al ingresar un valor de código con menos cifras que las
especificadas (6), aparecerán ceros a la izquierda rellenando los
espacios; por ejemplo, si ingresamos "33", aparecerá "000033". Al
ingresar un valor para el campo "cantidad", sucederá lo mismo.
Si especificamos "zerofill" a un campo numérico, se coloca
automáticamente el atributo "unsigned".
Cualquier valor negativo ingresado en un campo definido "zerofill"
es un valor inválido.
Uso: si el campo es numérico, rellena con 0 todas las posiciones a la
izquierda para completar hasta su longitud máxima.
Concepto: Auto increment (AI): Auto Increment es una función que
opera en tipos de datos numéricos. Genera automáticamente
valores numéricos secuenciales cada vez que se inserta un registro
en una tabla para un campo definido como incremento automático.
Uso: si el campo es numérico, aumenta en uno su valor, viene bien
para campos tipo id numéricos.
Concepto: Generated column (G):
Se trata de un tipo de columnas que son el resultado de otras dos o
más columnas. Estas columnas pueden ser el resultado de
operaciones aritméticas como sumas, multiplicaciones, una
concatenación de varios campos, etc.
Podríamos por ejemplo calcular el IVA o un descuento en una
factura o bien podríamos crear un campo calculado que sea el
resultado de concatenar dos o más campos como puede ser el
nombre y los apellidos. Básicamente, se refiere a que podemos
generar esta columna a partir de otras, por ejemplo, el resultado de
multiplicar un campo por otro, podemos indicarle si queremos
guardar ese valor (stored) o no(virtual).
Uso: Para mostraros un ejemplo de como funcionan vamos a crear
una tabla de usuarios en la que el nombre y los dos apellidos se
introduzcan individualmente y generemos un campo nuevo
«usuario» que sea el nombre completo.
CREATE TABLE `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(45) DEFAULT NULL,
`primerApellido` varchar(45) DEFAULT NULL,
`segundoApellido` varchar(45) DEFAULT NULL,
`usuario` varchar(45) GENERATED ALWAYS AS (concat(`nombre`,'
',`primerApellido`,' ',`segundoApellido`)) STORED,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
En el código anterior especificamos el parámetro STORED. Con este
parámetro indicamos que se guarden los resultados en la tabla y
podamos añadir por ejemplo un índice.
Si no especificamos nada por defecto la columna es VIRTUAL. Las
columnas de este tipo se generan automáticamente en cada
consulta y no permiten la creación de índices.
Para insertar los datos tendremos que ejecutar por ejemplo:
INSERT INTO `pruebas`.`usuarios`
(`nombre`,`primerApellido`,`segundoApellido`)
'Moreno', 'González');
VALUES
('David',
Una vez ejecutada la inserción, deberían haberse producido la
concatenación de ambos y devolver en el campo «usuario»: «David
Moreno González».
Otra opción que nos permite este tipo de columnas es usar
operaciones aritméticas, veamos por ejemplo como aplicar el I.V.A
automáticamente a cada artículo esta vez creándolo desde MySQL
Workbench:
Si ejecutamos:
INSERT INTO
tenis',1);
`articulos`(`articulo`,`precio`)VALUES('Pelota
de
Descargar