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 |
| ID_ESTUDANTE | ESTUDENTE_NAME | DEPT_NAME | AULAS |
| 10001 | RAM | TI | 02 |
| 10002 | KIRAN | TI | 04 |
| 10003 | NEHA | CS | 01 |
| 10004 | ROOPA | MEC | 01 |
# 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) );