Escolar Documentos
Profissional Documentos
Cultura Documentos
Sejam bem-vindos!
Definição:
(http://pt.wikipedia.org/wiki/SQL).
DDL:
DML:
DCL:
DQL:
SELECT: Consulta dados em uma tabela.
DTL:
BEGIN TRANSACTION : Marca o ponto inicial de uma
transação.
COMMIT TRANSACTION : Força a gravação das mudanças no
banco.
ROOLBACK TRANSACTION: Descarta as alterações desde o último
commit.
Em Banco de Dados:
Em Banco de Dados:
CREATE DATABASE BancoDados
USE BancoDados
Em Tabelas:
Em Tabelas:
CREATE TABLE Dept (DepNume numeric(4),
DepNome varchar(20),
DepLoca varchar (20),
DepOrca numeric(12,2));
13. Selecione todos os dados dos funcionários cujo salário seja maior ou igual a R$
2.000,00.
SELECT * FROM cadfun WHERE salario>=2000;
14. Selecione todos os nomes dos funcionários que pertencem a família Silva.
SELECT * FROM cadfun WHERE nome LIKE '%SILVA%';
15. Selecione todos os nomes dos funcionários que possuem nome começando com
a letra M.
SELECT * FROM cadfun WHERE nome LIKE 'M%„;
17. Selecione todos os dados dos funcionários que não são Programadores nem
Analistas.
SELECT * FROM cadfun WHERE funcao NOT IN ('PROGRAMADOR', 'ANALISTA');
18. Selecione todos os dados dos funcionários cujo salário esteja entre R$ 1.500,00 e
R$ 2.000,00.
SELECT * FROM cadfun WHERE salario BETWEEN 1500 AND 2000;
19. Selecione todos os funcionários cujo salário sejam menores que R$ 1.500,00 ou
maiores que R$ 2.500,00.
SELECT * FROM cadfun WHERE salario NOT BETWEEN 1500 AND 2500;
20. Torne NULO todas as funções dos funcionários cuja função seja vendedor.
UPDATE cadfun SET funcao = NULL WHERE funcao = 'VENDEDOR';
22. Selecione todos os dados dos funcionários que não possuem a função nulo.
SELECT * FROM cadfun WHERE funcao IS NOT NULL;
24. Selecione todos os funcionários que são programadores e possuem salário maior
que R$ 2.000,00.
SELECT * FROM cadfun WHERE funcao = 'PROGRAMADOR' and SALARIO > 2000;
25. Crie uma cópia vazia da tabela cadfun com o nome morto.
SELECT * INTO morto FROM cadfun WHERE 1=2;
ALTER TABLE morto ADD CONSTRAINT CODFUN PRIMARY KEY (CODFUN);
27. Liste nome, salário dos funcionários de cadfun com salário igual ao do registro da
tabela morto.
SELECT nome,salario FROM cadfun WHERE salario IN (SELECT salario FROM morto);
28. Liste todos os dados dos funcionários de cadfun com o mesmo departamento do
registro da tabela morto.
SELECT * FROM cadfun WHERE depto IN (SELECT depto FROM morto);
USE Fred;
37. Liste, utilizando INNER JOIN, o código, nome, pedido e data dos clientes que
possuem pedidos.
SELECT
CLI.cli_cod, CLI.cli_nome, PED.ped_cod, PED.ped_data
FROM
CLIENTE CLI INNER JOIN PEDIDO PED
ON
CLI.cli_cod = PED.ped_cli;
39. List o código do pedido, nome do cliente, data do pedido, código e quantidade
do ítem.
SELECT
PED.PED_COD, CLI.CLI_NOME ,CONVERT(char,PED.PED_DATA,103), ITEN.ITEN_COD, ITEN.ITEN_QTD
FROM
PEDIDO PED , CLIENTE CLI, ITENSPEDIDO ITEN
WHERE
PED.PED_COD = ITEN.PED_COD AND PED.PED_CLI = CLI.CLI_COD
BEGIN TRANSACTION
<instruções SQL>
Em Banco de Dados:
BEGIN TRANSACTION
ROLLBACK TRANSACTION
BEGIN TRANSACTION
COMMIT TRANSACTION
ROLLBACK TRANSACTION
Prof. Fred Lucena fred.lucena@unibratec.edu.br 49
JUNÇÕES
s. f.
1. Ato ou efeito de juntar.
2. Ponto onde duas ou mais coisas se juntam.
3. Reunião.
4. Confluência.
Interseção;
Diferença.
Criando base para testes
CREATE DATABASE Juncao
GO
USE Juncao
E01:C01
C01
E01:C02
E01
E01:C03
C02
E02:C01
E02
E02:C02
C03
E02:C03
A B AxB
Produto Cartesiano
Matricula Nome Cd_Cargo Cd_Cargo Cargo
E01 Pedro C01 C01 Presidente
E02 Paulo C02 C02 Diretor
C03 Gerente
E02
E01
E01
E02
E03
E03
E02
E04
E04
A B A B
União
Matricula Nome Cd_Cargo Matricula Nome Cd_Cargo
E01 Pedro C01 E02 Paulo C02
E02 Paulo C02 E03 Don Diego C01
E04 Zorro C02
E02 E01
E01 E02
E03 E02
E02 E03
E04 E04
A B A B
União Total
Matricula Nome Cd_Cargo Matricula Nome Cd_Cargo
E01 Pedro C01 E02 Paulo C02
E02 Paulo C02 E03 Don Diego C01
E04 Zorro C02
E02
E01 E03
E03 E01 E02
E02 E04
E04
A B A B
Interseção
Matricula Nome Cd_Cargo Matricula Nome Cd_Cargo
E01 Pedro C01 E02 Paulo C02
E02 Paulo C02 E03 Don Diego C01
E04 Zorro C02
E02
E01 E03
E03 E01 E02
E02 E04
E04
A B A B
Diferença
Matricula Nome Cd_Cargo Matricula Nome Cd_Cargo
E01 Pedro C01 E02 Paulo C02
E02 Paulo C02 E03 Don Diego C01
E04 Zorro C02
SELECT * FROM Empregado WHERE Mt_Empregado NOT IN (SELECT Mt_Empregado FROM Empregado2)
JOIN
(conceito)
OUTER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
CROSS JOIN
Tipos de Junções
INNER JOIN
Ex:
Ex:
select m.nome, c.modelo
from marcas as m left join carros as c
on c.marca = m.marca
Tipos de Junções
RIGHT JOIN
Ex:
select m.nome, c.modelo
from marcas as m right join carros as c
on c.marca = m.marca
Tipos de Junções
FULL OUTER JOIN
EXEC sp_InserirDados
@codfun = '99999',
@nome = 'Teste de SP',
@depto = '99',
@funcao = 'Função do SP',
@salario = 999.99
GO
EXEC sp_InserirDados
@codfun = '99999',
@nome = 'Teste de SP',
@depto = '99',
@funcao = 'Função do SP',
@salario = 999.99
GO
Um tipo de dados numérico aproximado para armazenamento de longos números em ponto-flutuante, com a precisão
Float
de até 15 dígitos em 8 bytes. O SQL Server feralmente arredonda esses números para cima.
Contém até 2.147.483.647 bytes (aproximadamente 2Gbytes) de dados binários e costuma ser utilizado para armazenar
Image grandes quantidades de dados como imagens ou arquivos de som. Campos definidos com este tipo de dado não podem
ser indexadas, pesquisadas, agrupadas ou ordenadas.
Armazena um dado numérico preciso para todo número armazenado em 4 bytes. Pode conter números de -2^1031 a
Int
2^1031.
Contém dados monetários definidos com precisão de 4 dígitos. Ele é representado como um inteiro de precisão dupla
Money e consome 8 bytes de armazenamento. Valores podem estar entre -992.337.293.685.477,5808 e
922.337.203.685.447,5807.
Contém até 4.000 caracteres Unicode. Tipo de dado de largura fixa, sendo armazenado no dobro de bytes (caracteres
Nchar
Unicode precisam de 2 bytes por caracter).
Armazena caracteres Unicode até 1.073.741.823 posições, armazenados no dobro dos bytes declarados (caracteres
Ntext
Unicode precisam de 2 bytes por caracter).