1. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 52 LENGUAJE DE CONSULTA SQL
2. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 53 LENGUAJE DE CONSULTA SQL
Restringiendo Campos
Una vez cargada la data de todas las tablas de la BD con sus respectivas restricciones primarias y
foráneas; entonces es momento de restringir algunos campos de algunas tablas que lo necesiten
para que la BD funcione con mayor seguridad. Estas restricciones son los siguientes:
UNIQUE
DEFAULT
CHECK
5.1 Creación de restricción valor no duplicado ( UNIQUE )
La restricción UNIQUE identifica de forma única a cada registro de una tabla de la BD. Las
restricciones UNIQUE y PRIMARY KEY, ambas proporcionan una garantía de unicidad
(única) para una columna o conjunto de columnas. Una restricción PRIMARY KEY tiene
automáticamente una restricción UNIQUE definida en la clave primaria.
Además puede haber varias restricciones UNIQUE en diferentes columnas de una tabla,
pero solo una restricción PRIMARY KEY.
Sintaxis:
ALTER TABLE nombre_tabla
ADD CONSTRAINT U_nombre_tabla_nombre_columna
UNIQUE (columnaX, columnaY, …)
Donde:
U_nombre_tabla_nombre_columna es el nombre de la restricción valor no
duplicado o UNIQUE. Se recomienda utilizar como nombre de la restricción, el
nombre de la tabla seguido del nombre de la columna afectada, todo con el prefijo
U_, si no escribe el nombre, lo hace MySQL por Ud.
columnaX, columnaY es la columna o columnas a la que se aplica la restricción.
Ejemplo:
Supongamos que se ha establecido como regla, que el nombre de un
curso no se puede duplicar. Para garantizar el cumplimiento de la regla
creamos una restricción UNIQUE en la columna nomCurso de la tabla
Curso.
Solución:
ALTER TABLE Curso
ADD CONSTRAINT U _Curso_nomCurso
UNIQUE( nomcurso );
CAPÍTULO
5
3. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 54 LENGUAJE DE CONSULTA SQL
Objetivos:
Crear la restricción UNIQUE para una de las columnas de la tabla Curso y ver su
importancia, utilizando la herramienta MySql Workbench, con seguridad y responsabilidad.
1. Ingresar el código del ejemplo anterior.
2. Ejecute, que sucedió: _________________________________________________________
______________________________________________________________________ (2 pts)
3. Probemos la restricción ejecutando la siguiente inserción:
Insert into curso
values('AM2A','Aplicacion de Móviles Avanzado',20,0,'Nohemy Carhuancho',850);
4. Para visualizar el resultado ejecutamos lo siguiente:
Select * From Curso;
5. Copie el resultado: (2 pts)
6. Ahora ingrese la siguiente inserción:
insert into curso
values('AM2B','Aplicacion de Móviles Avanzado',20,0,'Olga Ferrer',850);
7. Ejecute Que sucedió: ________________________________________________________
____________________________________________________________________ (2 pts)
8. Copie el resultado: (2 pts)
4. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 55 LENGUAJE DE CONSULTA SQL
9. Que significa el error: _________________________________________________________
______________________________________________________________________ (3 pts)
10. Como se soluciona ____________________________________________________________
______________________________________________________________________ (3 pts)
11. Ingrese esta inserción:
insert into curso
values('AM2B','Aplicacion de Móviles Experto',20,0,'Olga Ferrer',850);
12. Ejecute que sucedió: __________________________________________________________
_____________________________________________________________________ (2 pts)
13. Para visualizar el resultado se escribe la instrucción: ____________________________ (2 pts)
14. Copie el resultado: (2 pts)
5. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 56 LENGUAJE DE CONSULTA SQL
5.2 Creación de valor por defecto ( DEFAULT )
El valor por defecto es el que toma una columna cuando no especificamos su valor en una
instrucción insert.
Sintaxis:
ALTER TABLE nombre_tabla
ALTER COLUMN nombre_columna
SET DEFAULT Valor;
Donde:
ALTER COLUMN nombre_columna es el nombre de la columna que sufrirá el
cambio o la alteración. Se recomienda utilizar el nombre de la columna, como figura
en la tabla.
SET DEFAULT Valor es el valor que se almacena en la columna alterada; ahora
cuando inserte una fila, no debe especificar el valor, ni el nombre de esa columna.
Ejemplo:
Para cada curso, el número de vacantes por defecto es 20, para ello crear
en la columna vacantes de la tabla curso la siguiente restricción
DEFAULT.
ALTER TABLE curso
ALTER COLUMN vacantes
SET DEFAULT 20;
Objetivos:
Crear el valor por defecto DEFAULT para una de las columnas de la tabla Curso y ver su
importancia, utilizando la herramienta MySql Workbench, con seguridad y responsabilidad.
1. Ingresar el código del ejemplo anterior y ejecute.
2. Que sucede: ________________________________________________________________
__________________________________________________________________________
3. Verificar la restricción, visualizando la estructura de la tabla con la siguiente instrucción:
DESCRIBE curso;
6. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 57 LENGUAJE DE CONSULTA SQL
4. Nos muestra el siguiente resultado:
5. Probemos la restricción insertando un curso en el que no se establece de modo explícito el
número de vacantes:
Insert into Curso(idcurso, nomcurso, vacantes, matriculados, profesor, precurso)
Values('TPC1','Taller de Programación Concurrente',0,'Susan Rivas',750);
6. Que sucedió, salió error: _____________________________________
7. Copie el resultado de la ventana de resultado:
8. Ahora; vuelva a ingresar la inserción, pero sin la columna vacantes.
Insert into curso(idcurso, nomcurso, matriculados, profesor, precurso)
values('TPC1','Taller de Programación Concurrente',0,'Susan Rivas',750);
9. Que sucedió, salió error: _____________________________________
10. Copie el resultado:
11. Finalmente se visualiza los registros:
12. La cantidad de vacantes se muestra con el valor de ________________
7. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 58 LENGUAJE DE CONSULTA SQL
5.3 Creación de regla de validación ( CHECK )
Las reglas de validación verifican que los datos que un usuario introduce en un registro
cumplen con las normas que especifica antes de que el usuario guarde el registro. Una regla
de validación puede contener una fórmula o expresión que evalúa los datos en uno o más
campos y ofrece un valor “Verdadero” o “Falso”.
Sintaxis:
ALTER TABLE nombre_tabla
ADD CONSTRAINT CK_nombre_tabla_nombre_columna
CHECK (condición);
Donde:
CK_nombre_tabla_nombre_columna es el nombre de la restricción regla de
validación Check. Se recomienda utilizar el nombre de la tabla, seguido del nombre
de la columna afectada, todo con el prefijo CK_, si no escribe el nombre, lo hace
MySQL por Ud.
Condición es la expresión que determina como debe ser el valor a ingresar en la
columna afectada por la restricción.
Ejemplo:
Se quiere aplicar la siguiente condición, donde el precio de un curso no
puede ser 0 (cero) ni menor que 0, para ello definir la siguiente regla de
validación, para la columna precurso de la tabla Curso.
Solución:
ALTER TABLE curso
ADD CONSTRAINT CK_CURSO_PreCurso
CHECK (precurso > 0);
Objetivos:
Crear la regla de validación CHECK para una de las columnas de la tabla Curso y ver su
importancia, utilizando la herramienta MySql Workbench, con seguridad y responsabilidad.
1. Ingresar el código del ejemplo anterior y ejecute.
2. Que sucede: ________________________________________________________________
__________________________________________________________________________
8. INSTITUTO DE EDUCACION SUPERIOR TECNOLÓGICA PÚBLICO
SANTIAGO ANTUNEZ DE MAYOLO
“Ser excelentes” Lic. Nohemy Esther CARHUANCHO HIDALGO
DISEÑO Y PROGRAMACIÓN WEB 59 LENGUAJE DE CONSULTA SQL
3. Ingrese el siguiente registro
Insert into curso(idcurso, nomcurso, matriculados, profesor, precurso)
values('JV1A','JAVA BASICO',0,'Dora Galvez',0);
4. Que sucedió: _______________________________________________________________
__________________________________________________________________________
5. Salió error: _______________________
6. Copie el error a continuación:
7. Como se puede dar solución al error mostrado: ____________________________________
__________________________________________________________________________
8. Ahora cambie el valor correcto en la columna indicada:
9. Ingrese nuevamente el registro modificado (escriba la inserción del registro)
10. Que sucedió: _______________________________________________________________
__________________________________________________________________________
11. Para verificar el resultado del registro ingresado, que instrucción se ejecuta:
12. Copie o pegue el resultado: