sql >> Base de Datos >  >> RDS >> Database

RESTRICCIONES DE SQL

Restricciones SQL especifica las reglas/limitaciones/restricciones para los datos presentes en la tabla. Las restricciones de SQL se especifican en el momento de la creación de la tabla o después de la creación de la tabla mediante el comando ALTER. Hay dos tipos de restricciones restricción a nivel de columna y restricción a nivel de tabla .Como especifica el nivel de la columna de nombre, especifica una columna en particular. En una restricción de nivel de tabla, especifica más de una columna o todas las columnas de la tabla.NO NULL: Garantiza que el valor de la columna especificada no puede ser NULL.ÚNICO: Garantiza que cada valor en la columna sea diferente.CLAVE PRINCIPAL: La clave principal garantiza tanto NO NULO como ÚNICO. Significa que el valor no puede ser nulo y debe ser diferente entre sí. Por lo tanto, la clave principal identifica de forma única cada registro en la tabla.CLAVE EXTERNA: Identifica de forma única el registro de otra tabla. La clave externa es una referencia a la otra tabla y es como la clave principal de otra tabla.DEFAULT: Establece el valor predeterminado cuando no se proporciona el valor.COMPROBAR: Garantiza que todos los valores de la columna cumplan una condición.ÍNDICE: El índice se crea y se utiliza para recuperar datos de la base de datos.

NO NULO

El valor predeterminado para cada columna es NULL. Las restricciones Not Null garantizan que el valor de la columna no debe ser nulo. Esta restricción siempre asegura que la columna tenga algún valor. No permite insertar o actualizar registros sin mencionar el valor de este campo. El usuario puede agregar esta restricción a una o varias columnas de la tabla. Sintaxis: CREATE  TABLE table_name (columna 1 tipo de datos NO NULO,………);Ejemplo: Crear tabla ESTUDIANTE(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); En el ejemplo anterior, NO NULO la restricción se aplica en dos columnas id_estudiante y departamento_estudiante en la tabla ESTUDIANTE mientras se crea la tabla. La descripción de la tabla ESTUDIANTE muestra qué columnas pueden ser NULL o no pueden ser NULL. Ver la pantalla de salida al momento de insertar valores en la tabla, la restricción no nula no permite ingresar valor NULL a aquellos campos en los que se aplica la restricción.ÚNICO Restricción única para evitar entradas duplicadas en la columna. Una tabla puede tener varias claves únicas.Sintaxis: CREATE  TABLE table_name (columna 1 tipo de datos ÚNICO,………);Ejemplo: crear tabla estudiante(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Puede escribir la consulta anterior de otra forma. Crear tabla estudiante(student_id int,student_name varchar(10) único,student_dept varchar(10) no nulo,classyear int ,unique (student_id));# definir varias columnas únicas a la vez Sintaxis: CREATE  TABLE nombre_tabla(columna 1 tipo de datos, ……… columna n, restricción nombre_restricción Único (columna1,..));Ejemplo: crear tabla estudiante (student_id int,student_name varchar(10) único,student_dept varchar(10) no nulo,classyear int ,Constraint cs_studentunique (student_id, student_name)); # Añadir Restricción ÚNICA usando sentencia ALTERSintaxis: Modificar tabla table_nameAdd Unique (column_name);Ejemplo: Modificar tabla StudentAdd Unique (student_id);Sintaxis: Modificar tabla nombre_tablaAñadir restricción nombre_restricción Único (columna1,columna2);Ejemplo: Modificar tabla StudentAdd Constraint cs_student Unique (student_id,student_name);Clave principal La clave principal identifica de forma única cada registro en la columna, una tabla tiene una clave principal única. La clave principal puede ser una sola columna o un grupo de columnas.Sintaxis: Crear tabla table_name (tipo de datos de columna clave principal, tipo de datos de columna 2,………);Ejemplo: Crear tabla ESTUDIANTE(student_id int Clave principal,student_name varchar(20),student_dept varchar(20),classyear int); Sintaxis: Crear tabla table_name(tipo de datos de la columna 1, tipo de datos de la columna 2, tipo de datos de la columna n, clave principal (nombre_de la columna));Ejemplo: Crear tabla Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primary key (student_id)); # Uso de la instrucción ALTER Sintaxis: alterar la tabla table_nameadd clave principal (column_name); Ejemplo: alter table studentadd clave principal (student_id); Sintaxis: alter table table_namedrop clave principal;Ejemplo: alterar la clave principal de la tabla studentdrop;

POR DEFECTO

La restricción DEFAULT se utiliza para establecer el valor predeterminado de la columna. Esta restricción se puede aplicar en una sola columna o en varias columnas. NULL es un valor predeterminado para todas las columnas de la tabla. Cuando el usuario aplica una restricción no nula o principal en cualquier columna, se cambia su valor predeterminado.Sintaxis: Crear tabla table_name (Tipo de datos de columna,…….Valor predeterminado del tipo de datos de columna);Ejemplo: Crear tabla estudiante (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); La pantalla de salida muestra el valor predeterminado ‘IT’ asignado a la columna student_dept. 'ESO' valor establecido en la columna student_dept cuando no se proporciona ningún valor para la columna student_dept .  # Agregando una restricción DEFAULT en la columna usando la instrucción ALTER   Sintaxis: alter table table_namealter column_nameset valor predeterminado;Ejemplo: alter table studentalter student_deptset default 'CS'; Sintaxis: alter table table_namealter column_namedrop default;Ejemplo: alterar tabla estudiantealter estudiante_deptdrop predeterminado; Clave foránea La clave externa es un enlace entre dos tablas. La clave principal de una tabla puede ser una clave externa/de referencia de otra tabla. La tabla, que contiene la clave externa, se denomina tabla secundaria y otra tabla cuya clave principal se refiere como referencia a que la tabla es una tabla principal. El usuario debe ingresar registros en la tabla principal antes que en la tabla secundaria si no hay datos presentes en la tabla principal. Una tabla puede tener una sola clave principal. Tabla DEPARTMENT
DEPT_ID NOMBRE_DEPARTAMENTO DEPT_HEAD DEPT_LOC
0001 TI Sr. S.K. Mishra 06
0002 CS Sr. D.P. patil 04
0003 EXTC Sra. S.K. Bosale 05
0004 MECÁNICO Sr. AB Jaja 07
Tabla ESTUDIANTE
STUDENT_ID NOMBRE_ESTUDIANTE DEPT_NAME AÑO DE CLASE
10001 RAM TI 02
10002 KIRAN TI 04
10003 NEHA CS 01
10004 ROOPA MECÁNICO 01
ESTUDIANTE Clave principal   student_idClave externa   dept_nameDEPARTAMENTO Clave principal   dept_nameAquí, DEPARTAMENTO es la tabla principal y ESTUDIANTE es la tabla secundaria. Clave principal de la tabla DEPARTAMENTO a la que se hace referencia como clave externa en la tabla de estudiantes denominada nombre_depto. Es posible que dos tablas tengan una columna con el mismo nombre. Supongamos que en la tabla de estudiantes dept_name está presente con un nombre diferente como student_dept o cualquier otro, no crea ningún problema. La tabla puede contener una o más claves foráneas.# Aplicar restricción durante la creación de la tabla Sintaxis: //  La tabla principal debe contener una clave principal Crear tabla table_name(tipo de datos de columna clave principal, columna …….., tipo de datos de columna n);//tabla secundaria contiene clave externa Crear tabla nombre_tabla(tipo de datos de columna,…………,clave externa(nombre_columna)Referencias nombre_tabla_padre(nombre_columna de la clave principal));Ejemplo: Crear tabla departamento(dept_id int,dept_name varchar(30) Clave principal,dept_head varchar(50),dept_loc int);Crear tabla estudiante(student_id int clave principal,student_name varchar(30),dept_name varchar(30),classyear int,Foreign clave (dept_name)Departamento de referencias (dept_name)); # Aplicar restricción de clave externa mediante la instrucción Alter Sintaxis: modificar tabla nombre_tablaañadir clave externa (nombre_columna)referencias nombre_tabla_padre (nombre_columna de la clave principal);Ejemplo: modificar tabla estudianteañadir clave externa (dept_name)referencias departamento(dept_name);Sintaxis: modificar tabla nombre_tablaañadir restricción nombre_restricciónclave externa (nombre_columna)referencias nombre_tabla_padre (nombre_columna de la clave principal);Ejemplo: alterar tabla estudianteañadir restricción fk_studentclave extranjera (dept_name)referencias departamento(dept_name);# DROP restricción Sintaxis: alter table table_namedrop clave foránea constrict_name;Ejemplo: modificar tabla estudiante soltar clave externa fk_student; Crear tabla estudiante (student_id int, student_name varchar(50) no nulo, student_dept varchar(30) predeterminado 'IT',classyear int check (classyear<5 y classyear>0), clave principal (student_id) );