Database
 sql >> Base de Dados >  >> RDS >> Database

RESTRIÇÕES SQL

SQL Constraints especifica as regras/limitações/restrições para os dados presentes na tabela. As restrições SQL são especificadas no momento da criação da tabela ou após a criação da tabela usando o comando ALTER. Existem dois tipos de restrições restrições em nível de coluna e restrição de nível de tabela .Como o nível de coluna de nome especifica, ele especifica uma coluna específica. Em uma restrição de nível de tabela, ela especifica mais de uma coluna ou todas as colunas da tabela.NOT NULL: Ele garante que o valor da coluna especificada não possa ser NULL.UNIQUE: Ele garante que cada valor na coluna seja diferente.CHAVE PRIMÁRIA: A chave primária garante NOT NULL e UNIQUE. Isso significa que o valor não pode ser nulo e deve ser diferente um do outro. Portanto, a chave primária identifica exclusivamente cada registro na tabela.FOREIGN KEY: Ele identifica exclusivamente o registro de outra tabela. A chave estrangeira é uma referência à outra tabela e é como a chave primária de outra tabela.PADRÃO: Ele define o valor padrão quando o valor não é fornecido.VERIFICAR: Ele garante que todos os valores na coluna satisfaçam uma condição.INDEX: O índice é criado e usado para recuperar dados do banco de dados.

NÃO NULO

O valor padrão para cada coluna é NULL. As restrições Not Null garantem que o valor da coluna não seja nulo. Essa restrição sempre garante que a coluna tenha algum valor. Não permite inserir ou atualizar registro sem mencionar valor a este campo. O usuário pode adicionar esta restrição a uma ou várias ou todas as colunas da tabela.Sintaxe: CREATE  TABLE table_name (tipo de dados da coluna 1 NOT NULL,………);Exemplo: Criar tabela STUDENT(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); No exemplo acima, NOT NULL A restrição é aplicada em duas colunas student_id e student_dept na tabela STUDENT durante a criação da tabela. A descrição da tabela STUDENT mostra quais colunas podem ser NULL ou não. Veja a tela de saída no momento da inserção de valores na tabela, restrição não nula não permite inserir valor NULL para os campos em que a restrição é aplicada.ÚNICO A restrição exclusiva evita entradas duplicadas na coluna. Uma tabela pode ter várias chaves exclusivas.Sintaxe: CREATE  TABLE table_name (tipo de dados da coluna 1 UNIQUE,………);Exemplo: criar tabela student(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Você pode escrever a consulta acima de outra forma. Criar tabela student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# definir várias colunas exclusivas de uma só vez Sintaxe: CREATE  TABLE table_name(column 1 data type, ……… column n, constraint constraint_name Unique (column1,..));Exemplo: criar tabela student(student_id int,student_name varchar(10) unique,student_dept varchar(10) não nulo,classyear int ,Constraint cs_studentunique (student_id, student_name)); # Adicionar restrição UNIQUE usando a instrução ALTERSintaxe: Alterar tabela table_nameAdd Unique (column_name);Exemplo: Alter table StudentAdd Unique (id_aluno);Sintaxe: Alterar tabela table_nameAdd Constraint constraint_name Exclusivo (column1,column2);Exemplo: Alterar tabela StudentAdd Restrição cs_student Unique (student_id,student_name);Chave primária A chave primária identifica exclusivamente cada registro na coluna, uma tabela tem uma única chave primária. A chave primária pode ser uma única coluna ou grupo de colunas.Sintaxe: Criar tabela table_name( tipo de dados da coluna Chave primária, tipo de dados da coluna2,………);Exemplo: Criar tabela STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); Sintaxe: Criar tabela table_name( tipo de dados da coluna1, tipo de dados da coluna2,……… tipo de dados da coluna n, chave primária (nome_da coluna));Exemplo: Criar tabela Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,chave primária (student_id)); # Usando a instrução ALTER Sintaxe: alter table table_nameadd chave primária (column_name); Exemplo: alter table studentadd chave primária (student_id); Sintaxe: alter table table_namedrop primária key;Exemplo: alterar a chave primária da tabela studentdrop;

PADRÃO

A restrição DEFAULT é usada para definir o valor padrão para a coluna. Essa restrição pode ser aplicada em uma única coluna ou em várias colunas. NULL é um valor padrão para todas as colunas na tabela. Quando o usuário aplica restrição não nula ou primária em qualquer coluna, seu valor padrão é alterado.Sintaxe: Criar tabela table_name (tipo de dados da coluna,…….valor padrão do tipo de dados da coluna);Exemplo: Criar tabela aluno (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); A tela de saída mostra o valor padrão ‘IT’ atribuído à coluna student_dept. 'TI' valor definido para a coluna student_dept quando nenhum valor é fornecido para a coluna student_dept .  # Adicionando a restrição DEFAULT na coluna usando a instrução ALTER   Sintaxe: alter table table_namealter column_nameset default value;Exemplo: alter table studentalter student_deptset default 'CS'; Sintaxe: alter table table_namealter column_namedrop default;Exemplo: alter table studentalter student_deptdrop default; Chave estrangeira Chave estrangeira é um link entre duas tabelas. A chave primária de uma tabela pode ser uma chave de referência/estrangeira de outra tabela. A tabela, que contém a chave estrangeira, é chamada de tabela filha e outra tabela cuja chave primária referencia como referência essa tabela ser uma tabela pai. O usuário deve inserir registros na tabela pai antes da tabela filho se não houver dados presentes na tabela pai. Uma tabela pode ter uma única chave primária.Tabela DEPARTMENT
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 TI Sr. SK Mishra 06
0002 CS Sr. D.P. Patil 04
0003 EXTC Sra. SK Bhosale 05
0004 MEC Sr. A. B. Jha 07
Tabela de ALUNOS
ID_ESTUDANTE ESTUDENTE_NAME DEPT_NAME AULAS
10001 RAM TI 02
10002 KIRAN TI 04
10003 NEHA CS 01
10004 ROOPA MEC 01
ESTUDANTE Chave primária   student_idChave estrangeira   dept_nameDEPARTAMENTO Chave primária   dept_nameAqui, DEPARTMENT é a tabela pai e STUDENT é a tabela filha. Chave primária da tabela DEPARTMENT referenciada como chave estrangeira na tabela do aluno nomeada como dept_name. Pode ser possível que duas tabelas possam ter colunas com o mesmo nome. Suponha que na tabela de alunos dept_name esteja presente com um nome diferente como student_dept ou qualquer outra coisa, isso não cria nenhum problema. A tabela pode conter uma ou mais chaves estrangeiras.# Aplicar restrição durante a criação da tabela Sintaxe: //  A tabela pai deve conter uma chave primária Criar tabela table_name(tipo de dados da coluna Chave primária,Coluna ……..,Tipo de dados da coluna n);//tabela filha contém chave estrangeira Criar tabela table_name(column data type,…………,Foreign key(column_name)References parent_table_name(column_name of primary key));Exemplo: Criar tabela department(dept_id int,dept_name varchar(30) Primary key,dept_head varchar(50),dept_loc int);Criar tabela student(student_id int primary key,student_name varchar(30),dept_name varchar(30),classyear int,Foreign key (dept_name)Departamento de referências (dept_name)); # Aplicar restrição de chave estrangeira usando a instrução Alter Sintaxe: alter table table_nameadd external key (column_name)references parent_table_name (column_name da chave primária);Exemplo: alter table studentadd Foreign key (dept_name)references department(dept_name);Sintaxe: alter table table_nameadd constraint constraint_nameforeign key (column_name)references parent_table_name (column_name da chave primária);Exemplo: alter table studentadd constraint fk_studentforeign key (dept_name)references department(dept_name);# DROP constraint Sintaxe: alter table table_namedrop chave estrangeira constraint_name;Exemplo: alter table studentdrop chave estrangeira fk_student;Cria tabela student (student_id int, student_name varchar(50) não nulo, student_dept varchar(30) default 'IT',classyear int check (classyear<5 e classyear>0), chave primária (student_id) );