0% acharam este documento útil (0 voto)
3 visualizações10 páginas

Criando Tabelas e Comandos SQL Básicos

O documento discute vários comandos SQL para criar, manipular e consultar tabelas de banco de dados. Ele fornece exemplos de uso do CREATE TABLE para definir esquemas de tabela, INSERT para adicionar dados, SELECT para recuperar dados, cláusulas WHERE e BETWEEN para filtrar resultados, GROUP BY para agregar dados e JOINs para combinar dados de várias tabelas. Também cobre comandos de definição e manipulação de dados SQL como ALTER TABLE, DROP TABLE, UPDATE, DELETE e outros.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações10 páginas

Criando Tabelas e Comandos SQL Básicos

O documento discute vários comandos SQL para criar, manipular e consultar tabelas de banco de dados. Ele fornece exemplos de uso do CREATE TABLE para definir esquemas de tabela, INSERT para adicionar dados, SELECT para recuperar dados, cláusulas WHERE e BETWEEN para filtrar resultados, GROUP BY para agregar dados e JOINs para combinar dados de várias tabelas. Também cobre comandos de definição e manipulação de dados SQL como ALTER TABLE, DROP TABLE, UPDATE, DELETE e outros.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

CRIAR TABELA COMANDO

Criar Tabela

A mecânica de criar uma tabela é relativamente simples. Ser capaz de projetar uma bem
um banco de dados bem pensado que escalará para atender às necessidades de uma grande empresa é muito
empreitada desafiadora. Nestes exemplos, estaremos passando pelo desenvolvimento de um bastante
banco de dados simples de três tabelas. Ao fazer isso, cobriremos uma boa parte do desenvolvimento
fundamentos para criar tabelas e índices.

Criando a tabela pessoa


CRIE TABELA pessoa
(
num INT NÃO NULO,
VARCHAR(20) NULL
sobrenome VARCHAR(30) NULL ,
VARCHAR(1) NULL
DATA E HORA
DATA E HORA
CONSTRAINT PK_Pessoa PRIMARY KEY CLUSTERED (num ASC)
NA [PRIMÁRIO]
)

Criando a tabela de telefone


CRIE A TABELA telefone
(
person_num INT NÃO NULO ,
type_code CHAR(3) NÃO NULO ,
CHAR(3) NULL
CHAR(3) NULL
extensão CHAR(4) NULL ,
RESTRIÇÃO PK_phone CHAVE PRIMÁRIA CLUSTERIZADA
(person_num ASC, type_code ASC) ON [PRIMÁRIO]
)

Criando a tabela de endereços


CRIAR TABELA endereço
(
person_num INT NOT NULL ,
tipo_codigo CHAR(4) NOT NULL ,
CHAR(30) NULL
CHAR(30) NULL
cidade CHAR(30) NULL ,
estado CHAR(2) NULL ,
CHAR(10) NULL
RESTRIÇÃO PK_address CHAVE PRIMÁRIA AGRUPADA
(person_num ASC, type_code ASC) ON [PRIMÁRIO]
)
Esta declaração SQL CREATE TABLE define uma nova tabela para armazenar os dados dos produtos:

CRIAR TABELA PRODUTOS


CHAR(3)
CHAR(5)
DESCRIÇÃO VARCHAR(20)
PREMIO EM DINHEIRO
QTD_EM_ESTOQUE INTEGER

SQL Server - Noções Básicas de SQLTable - Tipos de Dados

SQL Server Precisão de Dados


BIT 0 ou 1
TINYINT Número inteiro positivo 0 -> 255

SMALLINT Inteiro Assinado -32.768 -> 32.767


INT Número Inteiro Assinado -2^31 -> 2^31-1

BIGINT Inteiro Assinado -2^63 -> 2^63-1


REAL Precisão flutuante -1,79E + 308 -> 1,79E + 308
FLOAT Precisão flutuante -3.40E + 38 -> 3.40E + 38
DINHEIRO 4 casas decimais, -2^63/10000 -> 2^63-1/10000
DINHEIRO PEQUENO
4 casas decimais, -214.748,3648 -> 214.748,3647
DECIMAL Precisão fixa -10^38 + 1 -> 10^38 - 1
NUMÉRICO Precisão fixa -10^38 + 1 -> 10^38 - 1
DATA E HORA Data+Hora 1753-01-01 -> 9999-12-31, precisão de 3,33 ms
SMALLDATETIMEData+Hora 1900-01-01 -> 2079-06-06, precisão de um minuto
CARActere String de comprimento fixo não-Unicode de 8.000 caracteres
NCHARn String Unicode de comprimento fixo de 4.000 caracteres
VARCHARn String não Unicode de comprimento variável para 8.000 caracteres
NVARCHARn String Unicode de comprimento variável para 4.000 caracteres
TEXTO String de comprimento variável não Unicode de [Link] caracteres
NTEXT String Unicode de comprimento variável para [Link] caracteres
BINÁRIO Dados binários de comprimento fixo de até 8.000 caracteres

VARBINARY Dados binários de comprimento variável de até 8.000 caracteres

IMAGEM Dados binários de comprimento variável de até [Link] caracteres

COMANDO DE INSERÇÃO PARA INSERIR DADOS NA TABELA


Uma vez que a tabela tenha sido criada, você pode preenchê-la com dados usando o comando INSERT

INSERIR NA TABELA PRODUTOS VALORES ('ACI', '41007', 'Widget Tamanho 7', 225.00, 250);
DELETAR TABELA
DROPAR TABELA PRODUTOS;

ATUALIZAR TABELA
ATUALIZAR PRODUTOS DEFINIR DESCRIÇÃO='ASDFGFG' ONDE PRODUCT_ID='41007';

DELETAR REGISTRO DA TABELA


DELETE FROM PRODUCTS WHERE PRODUCT_ID='41007';

ALTERAR COLUNA DE UMA TABELA


ALTERAR TABELA aluno
ALTERAR COLUNA rollint NÃO NULL;

Comando ALTER PARA ADICIONAR RESTRIÇÃO


ALTERAR TABELA ALUNO
ADICIONAR RESTRIÇÃO pk_roll
primário chave(rolagem);

Comando ALTER PARA EXCLUIR RESTRIÇÃO

alterar tabela de desistências de alunos restrição pk_roll;

CHAVE ESTRANGEIRA
Uma coluna em uma tabela cujo valor corresponde à chave primária em outra tabela é chamada de
uma chave estrangeira.

criar tabela marcas(rollint,tmarksint,FOREIGN chave(rolar) referências


estudante(roll));

Aqui, o aluno é a tabela pai e a matrícula é a chave primária da tabela pai que
é referenciado pela tabela filho marcas.

ALTERAR PARA ADICIONAR RESTRIÇÃO DE CHAVE ESTRANGEIRA

ALTERAR tabela
ADICIONAR RESTRIÇÃO fk_r
ESTRANGEIRO CHAVE(rotação)
REFERÊNCIAS aluno1(matrícula);

CHAVE PRIMÁRIA COMPOSTA


CRIAR Tabela CategoriasComp (
IDCategoriaint NÃO NULO
CategoriaCódigochar(5) NÃO NULO
NomeDaCategoriavarchar(50) NÃO NULO
RESTRIÇÃO PK_Categorias
PRIMÁRIO CHAVE(CategoryID, CategoryCode));

INSERIR EM CategoriasCompVALORES(1, AAA Gato 1


INSERIR INTO CategoriesCompVALUES(2, AAA Gato 4
INSERIR EM CategoriasCompVALORES(2, AAA Gato 3');//falhar
INSERIR EM CategóriasCompVALORES(1, BBB Gato 2

RESTRIÇÃO DEFAULT
criar tabela aluno2(rollint,nomechar(15),tmarksint padrão(0));

inserir para aluno2(matrícula,nome) valores(1,'Ram');

selecionar * do aluno2;

RESTRIÇÃO DE VERIFICAÇÃO
criar tabela aluno3(matricula int, nome char(15), notas int) verificar(tmarks<500));
inserir into student3values(1,'Ram',367);
inserir into student3values(1,'Ram',602);//falhar

DECLARAÇÃO SELECT

A instrução SQL que recupera dados do banco de dados é chamada de


SELECIONE. Esta declaração SQL recupera os dados que você deseja:

PARA SELECIONAR TODAS AS COLUNAS DA TABELA "ESCRITÓRIO"

SELECIONE *
DE ESCRITÓRIOS;

PARA SELECIONAR COLUNAS ESPECIFICADAS DA TABELA “ESCRITÓRIO”


CITY
DE ESCRITÓRIOS;

DECLARAÇÃO SELECT COM CONDIÇÃO


SELECIONE NOME, VENDAS, QUOTA
DE ESCRITÓRIOS
ONDE VENDAS < QUOTA

CIDADE
DE ESCRITÓRIOS
ONDE REGIÃO = 'Leste'
E VENDAS > META

SELECIONE NOME, VENDAS


DE REPRESENTANTES DE VENDAS
ONDE GERENTE = 104

SELECIONAR CIDADE, GESTOR


DAS ESCRITÓRIOS
ONDE MGR <> 108

PALAVRA-CHAVE DISTINTA
Você pode eliminar linhas duplicadas dos resultados da consulta inserindo a palavra-chave DISTINCT em
o comando SELECT logo antes da lista de seleção.

SELECIONE DISTINTO MGR


DE ESCRITÓRIOS;

CLÁUSULA ORDER BY PARA CLASSIFICAR DE ACORDO COM A COLUNA DADA


Você pode pedir ao SQL para classificar os resultados de uma consulta incluindo a cláusula ORDER BY na SELECT
declaração.

ORDENAMENTO CRESCENTE

SELECIONAR CIDADE, REGIÃO, VENDAS


DE ESCRITÓRIOS
ORDER BY REGIÃO, CIDADE

CIDADE REGIÃO VENDAS


----------- -------- -----------
Atlanta Oriental R$ 367.911,00
Chicago Oriental R$ 735.042,00
Nova Iorque Oriental R$ 692.637,00
Denver Ocidental R$186.042,00
Los Angeles Ocidental R$ 835.915,00
ORDEM DECRESCENTE

SELECIONE CIDADE, REGIÃO, VENDAS


DOS ESCRITÓRIOS
ORDENAR POR VENDAS DESC

CIDADE REGIÃO VENDAS


----------- -------- -----------
Los Angeles Ocidental R$ 835.915,00
Chicago Oriental R$ 735.042,00
Nova Iorque Oriental R$ 692.637,00
Atlanta Oriental R$ 367.911,00
Denver Ocidental R$ 186.042,00

CLÁUSULA BETWEEN
O SQL fornece uma forma diferente de condição de busca com o teste de intervalo usando BETWEEN

SELECIONE CIDADE, NOME, QUOTA


DE ESCRITÓRIOS
ONDE AS VENDAS ESTÃO ENTRE 4095 E 12000

SELECIONAR NUMERO_DO_PEDIDO, VALOR


DOS PEDIDOS
ONDE O VALOR ESTÁ ENTRE 20000,00 E 29999,99

A versão negada do teste de intervalo (NÃO ENTRE) verifica valores que estão fora
a faixa, como neste exemplo:

SELECIONAR NÚMERO_DO_PEDIDO, VALOR


DE PEDIDOS
ONDE O VALOR NÃO ESTÁ ENTRE 20000,00 E 29999,99

NA CLÁUSULA
Outra condição de busca comum é o teste de pertencimento ao conjunto usando IN

SELECIONE * DE ESCRITÓRIOS
ONDE A CIDADE EM ('DELGHI','MUMBAI','CHENNAI');

NOME
DE REPRESENTANTES DE VENDAS
ONDE REP_OFFICE EM (11, 13, 22)

LIKE PALAVRA-CHAVE
Um teste de comparação simples pode ser usado para recuperar linhas onde o conteúdo de um texto
coluna coincidir com algum texto específico.

O caractere curinga de porcentagem (%) corresponde a qualquer sequência de zero ou mais


personagens.

SELECIONAR EMPRESA, LIMITE_CREDITO


DE CLIENTES
ONDE A EMPRESA LIKE 'Smith%';

O caractere curinga sublinhado (_) corresponde a qualquer caractere único.

SELECIONAR EMPRESA, LIMITE_DE_CREDITO


DOS CLIENTES
ONDE A EMPRESA LIKE 'S_ith';

FUNÇÃO AVG PARA OBTER A MÉDIA DA COLUNA DADA


SELECIONE A MÉDIA(VENDAS)
DOS ESCRITÓRIOS
ONDE REGIÃO = 'Leste'

FUNÇÃO SOMA PARA OBTER A SOMA DA COLUNA DADA


SELECIONE A SOMA(VENDAS)
DE ESCRITÓRIOS;

ENCONTRANDO VALORES EXTREMOS (MÍNIMO E MÁXIMO)


SELECIONE MÍNIMO(VENDAS), MÁXIMO(VENDAS)
DE ESCRITÓRIOS;

A função de coluna COUNT ( ) conta o número de dados


valores em uma coluna.
SELECIONE CONTAR (CUST_NUM)
DE CLIENTES;

O SQL suporta uma função de coluna especial COUNT(*), que


conta linhas em vez de valores de dados.

SELECIONAR CONTAGEM(*)
DE PEDIDOS;

Uniões (Uniões Equivalentes)


O processo de formar pares de linhas comparando o conteúdo de relacionadas
colunas é chamado de junção das tabelas. A tabela resultante (contendo dados
entre as duas tabelas) é chamado de junção entre as duas tabelas. (Uma
junção baseada em uma correspondência exata entre duas colunas é chamada mais precisamente de uma
junção equi

SELECIONAR
DE PEDIDOS, CLIENTES
ONDE CUST = CUST_NUM

Junções com Critérios de Seleção de Linha

SELECIONE CIDADE, NOME, TÍTULO


DE ESCRITÓRIOS, REPRESENTANTES DE VENDAS
ONDE MGR = EMPL_NUM
E META > 6000

Joins Não Equivalentes


O termo 'join' se aplica a qualquer consulta que combina dados de duas tabelas comparando
valores em um par de colunas das tabelas. Embora junções baseadas na igualdade entre
as junções de colunas correspondentes (junções de igualdade) são de longe as junções mais comuns, o SQL também permite que você
junte tabelas com base em outros operadores de comparação. Aqui está um exemplo onde um maior
o teste de comparação que é utilizado como base para um junte é:

NOME
DE REPRESENTANTES DE VENDAS, ESCRITÓRIOS
ONDE QUOTA > META

Cláusula GROUP BY
A cláusula SQL GROUP BY é usada juntamente com funções de agrupamento para recuperar dados agrupados
de acordo com uma ou mais colunas.

Por exemplo: Se você quiser saber o valor total do salário gasto em cada departamento, o
a consulta seria:

SELECIONAR dept, SOMA(salário)


DE empregado
AGRUPAR POR dept;

A saída seria assim:

dep salário
Elétrico 25000
Eletrônicos
Aeronáutica 35000
InfoTech 30000

Várias Colunas de Agrupamento

SELECIONE localização, dept, SOMA(salário)


DE funcionário
AGRUPAR POR localização, dept;
A saída seria assim:

localização
Bangalore Elétrico 25000
Eletrônicos de Bangalore 55000
Mysore Aeronáutica 35000
Mangalore InfoTech 30000

Condições de busca em grupo (Cláusula HAVING)


Assim como a cláusula WHERE pode ser usada para selecionar e rejeitar as linhas individuais
que participam de uma consulta, a cláusula HAVING pode ser usada para selecionar e
rejeitar grupos de linhas.

SELECIONAR REP, MÉDIA(VALOR) DE PEDIDOS

AGRUPAR POR REP

TENDO A SOMA(VALOR) > 30000

Subconsultas
Uma subconsulta é uma consulta dentro de uma [Link]
ou consulta interna ou consulta aninhada é uma
consulta em uma consulta. Uma subconsulta é geralmente adicionada na cláusula WHERE do
declaração SQL.

SELECIONAR CIDADE
DE ESCRITÓRIOS
ONDE O ALVO > (SELECIONE A SOMA (COTA)
DE VENDAS
ONDE REP_OFICINA = OFICINA

SELECIONE NOME
DE VENDAS
ONDE QUOTA >= (SELECIONE META
DOS ESCRITÓRIOS
ONDE CIDADE = 'Atlanta')

PROCEDIMENTOS ARMAZENADOS
Uma procedure armazenada é um ou mais comandos SQL armazenados em um banco de dados como um objeto executável.
Procedimentos armazenados podem ser chamados interativamente, de dentro do código do aplicativo cliente, de dentro de
outras procedures armazenadas e a partir de dentro de gatilhos. Os parâmetros podem ser passados e retornados de
procedimentos armazenados para aumentar sua utilidade e flexibilidade. Um procedimento armazenado também pode retornar
um número de conjuntos de resultados e um código de status.
Uma Procedure Armazenada Que Retorna Títulos de Livros e os Nomes dos Autores Que os Escreveram

CRIE [OU SUBSTITUA] A PROCEDIMENTO nome_proc [lista de parâmetros]


É
Seção de declaração
INICIO
Seção de Execução
EXCEÇÃO
Seção de Exceções
FIM;

Você também pode gostar