DESC

Propaganda
José Antônio da Cunha
•29/06/2017
•José Antônio - CEFET-RN
Copyright 1996-99 © Dale Carnegie & Associates, Inc.
•1
Crie a tabela: TipoCli
CREATE Editora
GO
Use Editora
Go
Create table TipoCli (
Cod_Tipo int Not Null primary key,
Nome_Tipo Varchar(100) Not Null Unique)
•29/06/2017
•José Antônio - CEFET-RN
•2
Inclua os seguintes tipos:
Tipo de cliente
1
2
3
4
•29/06/2017
•José Antônio - CEFET-RN
Descrição
Diamante
Ouro
Preferencial
Especial
•3
Crie a tabela: Cliente
Create Table Cliente (
Cod_Cli int IDENTITY Not Null,
Tipo_Cli int
Not Null,
Nome_Cli Varchar(100) Not Null,
Sexo_Cli char(01) Not Null Constraint df_cli1 Default ‘F’,
Renda_Cli decimal(12,2) Not Null Constraint df_cli2 Default 0,
RG_Cli char(12),
Constraint pk_Cli Primary Key (Cod_Cli),
Constraint fk_Cli Foreign Key (Tipo_Cli) references TipoCli(Cod_Tipo),
Constraint ch_Cli1 Check(Sexo_Cli IN (‘F’, ‘M’)),
Constraint ch_Cli2 Check(Renda_Cli >=0))
•29/06/2017
•José Antônio - CEFET-RN
•4
Inclusão de Dados
Cod_Cli
Cod_Tipo
Nome_Cli
Sexo_Cli
Renda_Cli
RG_Cli
1
1
Olga Cristina Silva
F
6000
45868253
2
1
João Carlos Dantas
M
5000
12345678
3
1
Daniel Souza Leão
M
6000
14856969
4
1
Helena Leão
F
3500
76556935
5
2
Roberta Cunha
F
5500
52368987
6
2
Renata Medeiros
F
2500
25896356
•29/06/2017
•José Antônio - CEFET-RN
•5
Leitura de Dados
•Lendo todas as colunas e todas as linhas
SELECT ALL * FROM Cliente
Ou
SELECT * FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•6
Leitura de Dados
•Escolhendo as colunas a serem lidas
SELECT ALL Nome_Cli, Renda_Cli FROM Cliente
Ou
SELECT Nome_Cli, Renda_Cli FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•7
Leitura de Dados
•Modificando dados apenas para leitura
SELECT Nome_Cli, Renda_Cli, Renda_Cli * 1.1
FROM Cliente
•Ao executar este comando, note que a terceira coluna que
mostra o resultado da multiplicação ficou sem um título.
•29/06/2017
•José Antônio - CEFET-RN
•8
Leitura de Dados
•Lendo dados usando alias
SELECT Nome
= Nome_Cli,
Renda
= Renda_Cli,
[10% de aumento] = Renda_Cli * 1.1
FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•9
Leitura de Dados
•Lendo dados usando alias
SELECT Nome_Cli
Renda_Cli
AS Nome,
AS Renda,
Renda_Cli * 1.1
AS [10% aumento]
FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•10
Leitura de Dados
•Lendo dados usando alias
SELECT Nome_Cli
Renda_Cli
Nome,
Renda,
Renda_Cli * 1.1
[10% aumento]
FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•11
Leitura de Dados
•Apresentando dados repetidos apenas uma vez
SELECT DISTINCT Tipo_Cli FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•12
Leitura de Dados
•Escolhendo as linhas a serem lidas
SELECT * FROM Cliente Where Renda_Cli >= 5000
SELECT Nome
= Nome_Cli,
Renda
= Renda_Cli,
[10% de aumento] = Renda_Cli * 1.1
FROM Cliente
WHERE Renda_Cli >= 5000
•29/06/2017
•José Antônio - CEFET-RN
•13
Leitura de Dados
•Criando uma tabela permanente com dados de outra tabela.
SELECT * INTO ClienteAntigo FROM Cliente
SELECT Cod_Cli,
Nome_Cli,
Renda_Cli
INTO ClienteAntigo FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•14
Leitura de Dados
•Criando uma tabela permanente com dados de outra tabela.
SELECT Cod_Cli,
Nome_Cli,
Renda_Cli,
Renda_Cli * 1.1 as [10% de Aumento]
INTO ClienteAntigo FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•15
Leitura de Dados
•Criando uma tabela temporária com dados de outra tabela.
SELECT * INTO #Cli FROM Cliente
SELECT * INTO ##Cli FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•16
Leitura de Dados
•Tabelas temporárias - comentários
•(#) – uma cerquilha significa que a tabela criada com o
comando SELECT INTO poderá ser lida apenas da
conexão que a criou.
•(##) duas cerquilha significa que a tabela criada com o
comando SELECT INTO poderá ser lida de qualquer
conexão.
•Tanto a tabela temporária local, como a tabela global só
existirão enquanto a sessão que as criou estiver aberta.
•29/06/2017
•José Antônio - CEFET-RN
•17
Alteração dos Dados
•Escolhendo as colunas a serem alteradas
UPDATE Cliente
set Renda_Cli = Renda_Cli * 1.2 FROM Cliente
UPDATE Cliente
set Renda_Cli = Renda_Cli * 1.2
•29/06/2017
•José Antônio - CEFET-RN
•18
Alteração dos Dados
•Escolhendo as linhas a serem alteradas
UPDATE Cliente
set Renda_Cli = Renda_Cli * 1.2
Where Cod_Cli = 1
•29/06/2017
•José Antônio - CEFET-RN
•19
Alteração dos Dados
•Escolhendo mais de uma colunas de uma vez
UPDATE Cliente
set Nome_Cli = ‘João Carlos da Silva’,
Renda_Cli = Renda_Cli * 1.2
Where Cod_Cli = 2
•29/06/2017
•José Antônio - CEFET-RN
•20
Exclusão dos Dados
•Excluindo todas as linhas de uma tabela
DELETE Cliente
Ou
DELETE FROM Cliente
TRUNCATE TABLE Cliente --Não é registrado no log
•29/06/2017
•José Antônio - CEFET-RN
•21
Exclusão dos Dados
•Escolhendo as linhas a serem excluídas
DELETE Cliente Where Cod_Cli = 1
Ou
DELETE FROM Cliente Where Cod_Cli = 2
•29/06/2017
•José Antônio - CEFET-RN
•22
A cláusula WHERE
•É utilizada para restringir as linhas que serão afetadas pelos
comandos SELECT, UPDATE e DELETE.
Select * FROM Cliente WHERE Cod_Cli = 1
Select * FROM Cliente WHERE Cod_Cli <> 2
Select * FROM Cliente WHERE Cod_Cli !> 2
•29/06/2017
•José Antônio - CEFET-RN
•23
A cláusula WHERE
•A Cláusula Where com os operadores lógicos
•Mostre todos os clientes que têm o Cod_Tipo igual a 1
e uma renda maior ou igual a 6 mil reais.
•SELECT * FROM Cliente
•Where Cod_Tipo = 1 AND Renda_Cli >= 6000
•29/06/2017
•José Antônio - CEFET-RN
•24
A cláusula WHERE
•A Cláusula Where com os operadores lógicos
•Mostre todos os clientes que têm o Cod_Tipo igual a 1
ou uma renda maior ou igual a 6 mil reais.
SELECT * FROM Cliente
Where Cod_Tipo = 1 OR Renda_Cli >= 6000
•29/06/2017
•José Antônio - CEFET-RN
•25
A cláusula WHERE
•A Cláusula Where com os operadores lógicos
•Mostre todos os clientes do sexo feminino. Eles devem
ser do Tipo 1 ou devem ter uma renda maior ou igual a
6 mil reais.
SELECT * FROM Cliente
Where Sexo_Cli = ‘F’ AND (Cod_Tipo = 1 OR Renda_Cli
>= 6000)
•29/06/2017
•José Antônio - CEFET-RN
•26
A cláusula WHERE
•A Cláusula Where com os operadores “Like” e “Not Like”
•Mostre todos os clientes cujos nomes começam com
qualquer caractere e terminam com a palavra “Leão”.
SELECT * FROM Cliente
Where Nome_Cli Like ‘%Leão’
•29/06/2017
•José Antônio - CEFET-RN
•27
A cláusula WHERE
•A Cláusula Where com os operadores “Like” e “Not Like”
•Mostre todos os clientes cujos nomes contenham, no
início, no meio ou no fim, a palavra ‘’Souza”.
SELECT * FROM Cliente
Where Nome_Cli Like ‘%Souza%”’
•29/06/2017
•José Antônio - CEFET-RN
•28
A cláusula WHERE
•A Cláusula Where com os operadores “Like” e “Not Like”
•Mostre todos os clientes cujos nomes não contenham,
no início, no meio ou no fim, a palavra ‘’Souza”.
SELECT * FROM Cliente
Where Nome_Cli Like ‘%[^Souza]%”’
SELECT * FROM Cliente Where Nome_Cli Not Like
‘%Souza%’
•29/06/2017
•José Antônio - CEFET-RN
•29
A cláusula WHERE
•A Cláusula Where com os operadores “Like” e “Not Like”
•Mostre todos os clientes cujos nomes apresentam na
quinta e sexta posição as letras “el” e termine com
qualquer caractere.
SELECT * FROM Cliente
Where Nome_Cli Like ‘____el%’
•29/06/2017
•José Antônio - CEFET-RN
•30
A cláusula WHERE
•A Cláusula Where com os operadores “Like” e “Not Like”
•Mostre todos os clientes cujos nomes apresentam
apenas seis letras iniciais.
SELECT * FROM Cliente
Where Nome_Cli Like ‘______’
•29/06/2017
•José Antônio - CEFET-RN
•31
A cláusula WHERE
•A Cláusula Where com os operadores “Like” e “Not Like”
•Mostre todos os clientes cujos nomes tenham as seguintes
características: a primeira letra pode ser qualquer dígito entre “A” e
“D” e os outros caracteres podem ser qualquer um.
SELECT * FROM Cliente
Where Nome_Cli Like ‘[A_D]%’
•29/06/2017
•José Antônio - CEFET-RN
•32
A cláusula WHERE
•A Cláusula Where com os operadores “Is Null” e “Is Not Null”
•Mostre apenas os cliente que não têm RG.
SELECT * FROM Cliente Where RG_Cli IS NULL
•Mostre apenas os cliente que têm RG.
SELECT * FROM Cliente Where RG_Cli IS Not NULL
•29/06/2017
•José Antônio - CEFET-RN
•33
A cláusula WHERE
•A Cláusula Where com os operadores “Between” e “Not Between”
•Mostre todos os clientes que tenham uma renda entre 5 e 6 mil
reais.
SELECT * FROM Cliente Where Renda_Cli >= 5000 And
Renda_Cli <= 6000
SELECT * FROM Cliente
Where Renda_Cli BETWEEN 5000 And 6000
•29/06/2017
•José Antônio - CEFET-RN
•34
A cláusula WHERE
•A Cláusula Where com os operadores “Between” e “Not Between”
•Mostre todos os clientes que tenham uma renda menor do que 5
ou maior do que 6 mil reais.
SELECT * FROM Cliente Where Renda_Cli < 5000 And
Renda_Cli > 6000
SELECT * FROM Cliente
Where Renda_Cli NOT BETWEEN 5000 And 6000
•29/06/2017
•José Antônio - CEFET-RN
•35
Exibindo Dados Ordenados
•Order By Asc/Desc
•Mostre os dados da tabela cliente, ordenando-os de forma
crescente pelo nome dos clientes.
SELECT * FROM Cliente Order By Nome_Cli
Ou
SELECT * FROM Cliente Order By Nome_Cli ASC
•29/06/2017
•José Antônio - CEFET-RN
•36
Exibindo Dados Ordenados
•Order By Asc/Desc
•Mostre os dados da tabela cliente, ordenando-os de forma
decrescente pelo nome dos clientes.
SELECT * FROM Cliente Order By Nome_Cli DESC
•29/06/2017
•José Antônio - CEFET-RN
•37
Exibindo Dados Ordenados
•Order By Asc/Desc
•Mostre os dados da tabela cliente, ordenando-os de forma
crescente pelo código do tipo e de forma decrescente pela renda do
cliente.
•SELECTCod_Tipo, Renda_Cli, Nome_Cli
•FROM Cliente
•Order By Cod_Tipo ASC, Renda_Cli DESC
•29/06/2017
•José Antônio - CEFET-RN
•38
Exibindo Dados Ordenados
•Top n
•Mostre os dois primeiros registros da tabela cliente.
SELECT TOP 2 * FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•39
Exibindo Dados Ordenados
•Top n
•Selecione os cinco primeiros clientes, ordenando-os de forma
crescente pela renda de cada um, ou seja, apresenta os cinco
primeiros clientes que têm a menor renda.
SELECT TOP 5 Renda_Cli, Nome_Cli FROM Cliente
Order By Renda_Cli ASC
•29/06/2017
•José Antônio - CEFET-RN
•40
Exibindo Dados Ordenados
•Top n With Ties
Utilizando a cláusula WITH TIES, o SQL Server mostra as cinco
linhas determinadas pela cláusula Top 5 e mostra também todas as
outras linhas que tiverem a Renda_Cli igual ao valor da quinta
linha.
SELECT TOP 5 WITH TIES Renda_Cli, Nome_Cli FROM
Cliente
Order By Renda_Cli DESC
•29/06/2017
•José Antônio - CEFET-RN
•41
Exibindo Dados Ordenados
•Top n Percent
A cláusula PERCENT indica que deve ser retornado um valor
percentual de quantidade de linhas. Se for especificado, por
exemplo, TOP 50 PERCENT, siginifica que o SQL Server deve
retornar 50% das linhas inseridas na tabela.
SELECT TOP 50 percent * FROM Cliente
•29/06/2017
•José Antônio - CEFET-RN
•42
Exibindo Dados Ordenados
•Top n Percent
O comando seguinte ordena de forma crescente os dados de
acordo com a coluna Renda_Cli da tabela Cliente e apresenta
apenas 40% das linhas da tabela.
SELECT TOP 40 percent Renda_Cli, Nome_Cli
FROM Cliente
Order by Renda_Cli
•29/06/2017
•José Antônio - CEFET-RN
•43
Exibindo Dados Ordenados
•Top n Percent
O comando seguinte apresenta 30% das linhas da tabela Cliente,
ordenada de forma crescente, e por causa da cláusula WITH TIES
apresenta também todas as linhas cujo valor da coluna Renda_Cli,
empata com o valor da última linha apresentada pelos 30%.
•SELECT TOP 30 percent With Ties Renda_Cli, Nome_Cli
FROM Cliente
•Order by Renda_Cli
•29/06/2017
•José Antônio - CEFET-RN
•44
Fim
•29/06/2017
•José Antônio - CEFET-RN
•45
Download