Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Tutorial de SQL
SEÇÕES
Manuais relacionados
+Tutorial de SQL
Categorias
+Linguagem SQL

Índice do Manual Tutorial de SQL
+ O que é SQL
+ Tipos de campos
+ Adicionar um novo registro
+ Apagar um registro
+ Atualizar um registro
+ Seleção de tabelas I
+ Seleção de tabelas II
+ Seleção de tabelas III
+ Seleção de tabelas IV
+ Aproveite seu banco de dados
+ Tabelas temporárias no Sql Server
+ Adquirindo informações do Usuário com a classe System
+ Alguns truques práticos
+ Criação de tabelas
+ SQL e Programação de Banco de Dados
+ Funções para buscas com datas em Access
+ Função em SQL para o cálculo de dias de trabalho
+ SQL com Oracle
+ SQL com Oracle. Operadores
+ Sub-consultas SQL
+ Funções SQL
+ Agrupamento e combinação de elementos com SQL
+ Manipulação de dados com SQL
+ Chaves primárias com SQL com Oracle
+ Definição de chaves para tabelas e restrições
+ Supressão e modificação de tabelas com SQL
+ Gerenciamento de vistas em SQL
+ Usuários em Oracle
+ Gerenciamento em Oracle com SQL
+ Otimizar consultas SQL
+ Consultas de seleção
+ Critérios de seleção em SQL
+ Como exibir informações com múltiplas instruções SQL
+ Critérios de seleção em SQL II
+ Consultas de ação
+ Tipos de dados SQL
+ Subconsultas em SQL
+ Consultas SQL de União Internas
+ Estruturas das tabelas em SQL
+ Cursores em SQL
+ Referências Cruzadas em SQL
+ Introdução a freetext e contains em SQL-Server
+ Acesso ao banco de dados externos
+ Consultas com parâmetros e omissão de permissões
+ Procedures e busca de registros duplicados em SQL
+ A função datepart() em Access
+ Emular um Cursor SQL com um Loop
+ Tipos de instruções SQL e seus componentes sintáticos

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Estruturas das tabelas em SQL

Um banco de dados em um sistema relacional está composto por um conjunto de tabelas, que correspondem às relações do modelo relacional.


Na terminologia usada em SQL não se menciona às relações, do mesmo modo que não se usa o termo atributo, porém sim a palavra coluna e linha.

Criação de Tabelas Novas

CREATE TABLE tabela (
campo1 tipo (tamanho) índice1,
campo2 tipo (tamanho) índice2,... ,
índice multicampo , ... )


Onde:

tablaÉ o nome da tabela que será criada.
campo1
campo2
É o nome do campo ou dos campos que serão criados na nova tabela. A nova tabela deve conter, ao menos, um campo.
tipoÉ o tipo de dados de campo na nova tabela.
tamanhoÉ o tamanho do campo, só se aplica para campos de tipo texto.
índice1
índice2
É uma cláusula CONSTRAINT que define o tipo de índice a criar. Esta cláusula é opcional.
índice multicamposÉ uma cláusula CONSTRAINT que define o tipo de índice multicampos a criar. Um índice multicampo é aquele que está indexado pelo conteúdo de vários campos. Esta cláusula é opcional.

CREATE TABLE
   Empregados (
   Nome TEXT (25),
   Sobrenomes TEXT (50)
    )


(Cria uma nova tabela chamada Empregados com dois campos, um chamado Nome de tipo texto e longitud 25 e outro chamado sobrenomes com longitude 50).

CREATE TABLE
   Empregados (
   Nome TEXT (10),
   Sobrenomes TEXT,
   DataNascimento DATETIME
   )
CONSTRAINT
   IndiceGeral
   UNIQUE (
       Nome, Sobrenomes, DataNascimento
    )

(Cria uma nova tabela chamada Empregados com um campo Nome de tipo texto e longitude 10, outro chamado Sobrenomes de tipo texto e longitude pré-determinada (50) e um mais chamado DataNascimento de tipo Data/Hora. Também cria um índice único - não permite valores repetidos - formado pelos três campos.)

CREATE TABLE
    Empregados (
   IdEmpregado INTEGER CONSTRAINT IndicePrimario PRIMARY,
    Nome TEXT,
   Sobrenomes TEXT,
   DataNascimento DATETIME
   )


(Cria uma tabela chamada Empregados com um campo Texto de longitude pré-determinada (50) chamado Nome e outro igual chamado Sobrenomes, cria outro campo chamado DataNascimento de tipo Data/Hora e o campo IdEmpregado de tipo inteiro o que estabelece como chave principal.)

A cláusula CONSTRAINT

Utiliza-se a cláusula CONSTRAINT nas instruções ALTER TABLE e CREATE TABLE para criar ou eliminar índices. Existem duas sintaxes para esta cláusula dependendo se deseja Criar ou Eliminar um índice de um único campo ou se se trata de um campo multi-índice. Se se utiliza o motor de dados de Microsoft, só poderá utilizar esta cláusula com os bancos de dados próprias de tal motor. Para os índices de campos únicos:

CONSTRAINT nome {PRIMARY KEY | UNIQUE | REFERENCES tabela externa
[(campo externo1, campo externo2)]}


Para os índices de campos múltiplos:

CONSTRAINT nome {PRIMARY KEY (primario1[, primario2 [,...]]) |
UNIQUE (único1[, único2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabela externa
[(campo externo1 ,campo externo2 [,...])]}

Onde:

nomeÉ o nome do índice que se criará.
primarioNÉ o nome do campo ou dos campos que formam o índice primário.
únicoNÉ o nome do campo ou dos campos que formam o índice de chave única.
refN É o nome do campo ou dos campos que formam o índice externo (fazem referência a campos de outra tabela).
tabela externaÉ o nome da tabela que contém o campo ou os campos referenciados em refN
campos externosÉ o nome do campo ou dos campos da tabela externa especificados por ref1, ref2,... , refN

Se se deseja criar um índice para um campo quando se está utilizando as instruções ALTER TABLE ou CREATE TABLE a cláusula CONTRAINT deve aparecer imediatamente depois da especificação do campo indexado.

Se se deseja criar um índice com múltiples campos quando se está utilizando as instruções ALTER TABLE ou CREATE TABLE a cláusula CONSTRAINT deve aparecer fora da cláusula de criação de tabela.

Indice Descrição
UNIQUEGera um índice de chave única. O que implica que os registros da tabela não podem conter o mesmo valor nos campos indexados.
PRIMARY KEYGera um índice primário o campo ou os campos especificados. Todos os campos da chave principal devem ser únicos e não nulos, cada tabela só pode conter uma única chave principal.
FOREIGN KEYGera um índice externo (toma como valor do índice campos contidos em outras tabelas). Se a chave principal da tabela externa consta de mais de um campo, se deve utilizar uma definição de índice de múltiplos campos, listando todos os campos de referência, o nome da tabela externa, e os nomes dos campos referenciados na tabela externa na mesma ordem que os campos de referência listados. Se os campos referenciados são a chave principal da tabela externa, não tem que especificar os campos referenciados, pré-determinado por valor, o motor Jet se comporta como se a chave principal da tabela externa estivesse formada pelos campos referenciados.

Criação de Índices

Se se utiliza o motor de dados Jet de Microsoft só se podem criar índices em banco ed dados do mesmo motor. A sintaxe para criar um índice em uma tabela já definida na seguinte:

CREATE [ UNIQUE ] INDEX índice
ON Tabela (campo [ASC|DESC][, campo [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]


Onde:

índiceÉ o nome do índice a criar.
tablaÉ o nome de uma tabela existente na que se criará o índice.
campoÉ o nome do campo ou lista de campos que constituem o índice.
ASC|DESCIndica a ordem dos valores dos campos ASC indica uma ordem ascendente (valor pré-determinado) e DESC uma ordem descendente.
UNIQUEIndica que o índice não pode conter valores duplicados.
DISALLOW NULLProíbe valores nulos no índice
IGNORE NULLExclui do índice os valores nulos incluídos nos campos que o compõem.
PRIMARYAtribui ao índice a categoria de chave principal, em cada tabela só pode existir um único índice que seja "Chave Principal". Se um índice é chave principal implica que não pode conter valores nulos nem duplicados.

No caso de ACCESS, se pode utilizar CREATE INDEX para criar um pseudo índice sobre uma tabela adjunta em uma fonte de dados ODBC tal como SQL Server que não tenha ainda um índice. Não necessita permissão ou ter acesso a um servidor remoto para criar um pseudo índice, ademais o banco de dados remoto não é consciente e não é afetado pelo pseudo índice. Utiliza-se a mesma sintaxe para as tabelas adjuntas que para as originais. Isto é especialmente útil para criar um índice em uma tabela que seria só de leitura devido à falta de um índice.

CREATE INDEX
   MeuIndice
ON
    Empregados (Prefixo, Telefone)
(Cria um índice chamado MeuIndice na tabela empregados com os campos Prefixo e Telefone.)

CREATE UNIQUE INDEX
    MeuIndice
ON
   Empregados (IdEmpregado)
   WITH DISALLOW NULL

(Cria um índice na tabela Empregados utilizando o campo IdEmpregado, obrigando que o campo IdEmpregado não contenha valores nulos nem repetidos.)

Modificar o Desenho de uma Tabela

Modifica o desenho de uma tabela já existente, se podem modificar os campos ou os índices existentes. Sua sintaxe é:

ALTER TABLE tabela {ADD {COLUMN tipo de campo[(tamanho)]
[CONSTRAINT índice]
CONSTRAINT índice multicampo} |
DROP {COLUMN campo I CONSTRAINT nome do índice}}

Onde:

tablaÉ o nome da tabela que se deseja modificar.
campoÉ o nome do campo que se adicionará ou eliminará.
tipoÉ o tipo de campo que adicionará.
tamanhoÉ o tamanho do campo que se adicionará (só para campos de texto).
índiceÉ o nome do índice do campo (quando se criam campos) ou o nome do índice da tabela que se deseja eliminar.
índice multicampoÉ o nome do índice do campo multicampo (quando se criam campos) ou o nome do índice da tabela que se deseja eliminar.

OperaçãoDescrição
ADD COLUMNUtiliza-se para adicionar um novo campo à tabela, indicando o nome, o tipo de campo e opcionalmente o tamanho (para campos de tipo texto).
ADDUtiliza-se para agregar um índice de multicampos ou de um único campo.
DROP COLUMN Utiliza-se para apagar um campo. Especifica-se unicamente o nome do campo.
DROPUtiliza-se para eliminar um índice. Especifica-se unicamente o nome do índice a seguir da palavra reservada CONSTRAINT.

ALTER TABLE
Empregados
ADD COLUMN
Salario CURRENCY
(Agrega um campo Salario de tipo Moeda a tabela Empregados.)

ALTER TABLE
    Empregados
DROP COLUMN
   Salario
(Elimina o campo Salario da tabela Empregados.)

ALTER TABLE
   Pedidos
ADD CONSTRAINT
   RelacaoPedidos
FOREIGN KEY
   (IdEmpregado)
REFERENCES
    Empregados (IdEmpregado)
(Agrega um índice externo à tabela Pedidos. O índice externo se baseia no campo IdEmpregado e se refere ao campo IdEmpregado da tabela Empregados. Neste exemplo, não é necessário indicar o campo junto ao nome da tabela na cláusula REFERENCES, pois ID_Empregado é a chave principal da tabela Empregados.)

ALTER TABLE
   Pedidos
DROP CONSTRAINT
   RelacaoPedidos
(Elimina o índice da tabela Pedidos.)

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Tutorial de SQL
Seguinte: Cursores em SQL

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Linguagem SQL


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites