Anda di halaman 1dari 48

Banco de Dados IIReviso

das principais sentenas de DDL e DML

Prof. Cleber Seixas

Prof. Cleber Seixas

Linguagem de Consulta SQL


SQL uma linguagem universal para criao

e manipulao de Bancos de Dados; Um programador sem conhecimentos de SQL No um Programador; SQL dividido em DDL e DML DDL para definir Tabelas e DML para manipular tabelas;

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


Insert Create DDL Alter Drop Select
Prof. Cleber Prof. CleberSeixas Seixas *

Update DML Delete

Linguagem de Consulta SQL


DDL uma linguagem de computador usada para a definio de estrutrura de dados. Linguagem formal usada para a criao, alterao da estrutura do banco de dados. Iremos, agora, construir um simples projeto de banco de dados que envolver todas as operaes que podem ser feitas com a linguagem de Definio de Dados - DDL.

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DDL Create Table
TBFornecedores TBVeiculos CodigoVeiculo CodigoFornecedor NomeCarro Tipo

CodigoFornecedor
RazaoSocial Endereco Cidade

Primeiramente, iremos construir as Tabelas.

Para isso iremos utilizar o comando CREATE


Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DDL Create Table

CREATE TABLE <tabela> (<descrio das colunas>); (<descrio das chaves>);

<Tabela> - o nome da nova tabela a ser criada; <descrio das colunas> - uma lista de colunas (campos) e seus respectivos tipos de dados; <descrio das chaves> - a lista de colunas que sero Prof. Prof. Cleber Cleber Seixas Seixas tratadas como chaves primria e

Linguagem de Consulta SQL


DDL Create Table
Create Table TBFornecedores ( CodigoFornecedor int Not Null auto_increment, RazaoSocial VarChar(60) Not Null, Endereco VarChar(60) Not Null,

Cidade VarChar(30) Not Null, CodigoFornecedor Primary Key(CodigoFornecedor)) RazaoSocial


Endereco Cidade
Prof. Cleber Prof. CleberSeixas Seixas

TBFornecedores

Linguagem de Consulta SQL


DDL Create Table
Create Table TBVeiculos ( CodigoVeiculo serial Not Null, CodigoFornecedor serial Not Null, NomeCarro VarChar(60) Not Null, Tipo VarChar(30) Not Null,
TBVeiculos

Primary Key (CodigoVeiculo), CodigoVeiculo


CodigoFornecedor Foreign Key (CodigoFornecedor)

References TBFornecedores)

NomeCarro

Tipo
*

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DDL Create Table Observe que a clusula REFERENCE estabelece a restrio referencial entre as tabelas. Porm, observe sempre que s podemos incluir essas restries se as tabelas referidas na clusula REFERENCE j foram criadas antes desta.

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DDL Alter Table Agora

que j criamos as nossas tabelas, vamos alterar a estrutura da mesma, inserindo e removendo colunas. O comando ALTER TABLE possui a seguinte sintaxe:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DDL Alter Table
Alter Table <Nome da Tabela> Add Column <nome dos campos> Tipo; Alter Table <Nome da Tabela> Drop Column <nome dos campos>;

Vamos adicionar um atributo na Tabela Cidades:


Alter Table Cidades Add Column CEP Varchar(8); Alter Table Cidades Drop Column CEP;

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DDL Drop Table Utilizado para apagar uma tabela do

banco de dados juntamente com suas informaes. Vamos criar a tabela cores e em seguida apagar a mesma para testarmos o comando DML DROP TABLE; O comando DROP TABLE possui a seguinte sintaxe:
Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DDL Drop Table
Drop <Nome da Tabela>;

Vamos criar a tabela cores com os atributos, CodigoCor e NomeCor.


Em seguida vamos apagar a tabela.
Drop Table Cores;

Caso a tabela a ser apagada tenha Restrio de Integridade a mesma no poder ser apagada, ocorrer uma exceo de Banco de Dados evitando que a mesma seja apagada.
Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DML Insert Into
Insert Into <Nome da Tabela> <nome dos campos> Values (<valores>)

Vamos adicionar um fornecedor na tabela TBFornecedores:


Insert Into TBFornecedores (CodigoFornecedor, RazaoSocial, Endereco, Cidade) Values (nextVal(nomeSequencia), 'Ford', 'Rua So Jos dos Campos,3467', So Paulo')
Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DML Insert Into
Agora que j sabemos utilizar o comando

INSERT. Preencham a tabela TBFornecedores de modo que ela fique como a figura:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Insert Into
Observao: Pode-se utilizar o comando

INSERT sem especificar o nome dos campos, basta inserir os valores dos mesmos. O comando abaixo executa uma insero TBVeiculos dos valores na Tabela TBVeiculos: CodigoVeiculo
Insert Into TBVeiculos
Values (1,1,'Focus',Passeio')

CodigoFornecedor NomeCarro Tipo

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Insert Into
Termine as inseres na Tabela TBVeiculos

de modo que ela fique conforme a figura:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Update Vamos utilizar agora o comando UPDATE, este comando DML serve para alterar dados j existentes na tabela. Sua Sintaxe a seguinte:
Update <nome da tabela>
Set <nome do(s) campo(s) = valor Where <condio>

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Update Para ver como funciona o comando UpDate vamos alterar a ltima tupla da tabela TBVeiculos de modo que o nome do carro seja Golf seja substitudo por Gombi e o tipo Passeio seja substitudo por Trabalho:

Update TBVeiculos Set NomeCarro = Kombi', Tipo = 'Trabalho' Where CodigoVeiculo = 11

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Update A alterao da Tupla pode ser vista na figura a seguir:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Delete
Veremos agora o comando DELETE

responsvel por excluir tuplas de uma determinada tabela. Sua sintaxe a seguinte:
Delete From <Nome da Tabela>
Where <condio>

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Delete

Para visualizar a funcionalidade do comando DELETE vamos excluir da Tabela TBVeiculos o carro com o cdigo 11:

Delete From TBVeiculos


Where CodigoVeiculo = 11

Prof. Cleber Prof. CleberSeixas Seixas

Praticar Delete TBFornecedores TBVeiculos Clientes Cidades Cargos Funcionarios


Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DML Select Estudaremos agora o principal comando da linguagem SQL, o comando SELECT. O comando SELECT muito utilizado para retirar dados da tabela e exibilos ao usuario na tela ou em forma de relatrio impresso. O comando SELECT permite ao usurio efetuar qualquer tipo de pesquisa dentro do banco de dados.

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select A sintaxe bsica do comando SELECT a seguinte:
Select <nome das colunas> From <Nome da tabelas>

Where <Condio ou Condies)

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Vamos utilizar nossas tabelas para efetuar algumas pesquisas com SELECT. Vejamos um SELECT para mostrar apenas os veiculos de passeio da tabela TBVeiculos:
Select * From TBVeiculos
Where Tipo = 'Passeio'

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select O Resultado pode ser observado na figura a seguir:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Vejamos os detalhes deste Select:
Select * From TBVeiculos Where Tipo = 'Passeio'

Notem que aps select existe um *, isto significa que todos os campos sero exibidos. Como a condiao de exibio que todos os carros sejam de passeio, passamos essa condiao para a clusula Where.
*

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Ns podemos melhorar a nossa pesquisa e exibir apenas o nome do carro e o seu tipo. Vejamos este select:
Select NomeCarro, Tipo From TBVeiculos
Where Tipo = 'Passeio'

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Vamos melhorar mais ainda este SELECT e exibir os carros em ordem alfabetica:
Select NomeCarro, Tipo From TBVeiculos Where Tipo = 'Passeio' Order By NomeCarro

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Vejamos os detalhes deste Select:
Select NomeCarro, Tipo From TBVeiculos Where Tipo = 'Passeio' Order By NomeCarro

Note que no final ele possui um comando Order By. Este comando muito til pois permite que o programador ordene as informaes antes que elas sejam exibidas aos usurios. A ordenao pode ser feita atravs de qualquer campo.
*

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select interessante observar que a ordenao feita por um campo que no necessriamente um NDICE. Qualquer campo pode ser ordenado. Inclusive mais de um; Por padro a ordenao feita de forma crescente. Para ordenar de maneira decrescente adicione o comando DESC aps o nome do campo a ser ordenado. Exemplo:
Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DML Select
Select NomeCarro, Tipo From TBVeiculos Where Tipo = 'Passeio' Order By NomeCarro DESC

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Vamos dar agora uma caprichada no nosso SELECT e trazer em ordem alfabtica, apenas os carros comeando com a letra F que sejam de Passeio e que tenham o codigo de fornecedor igual a 1. Vejamos este select: Select * From TBVeiculos
Where NomeCarro Like 'F%' And Tipo = 'Passeio' And CodigoFornecedor = 1 Order By NomeCarro

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select O resultado pode ser observado na figura abaixo:

Vejamos os detalhes deste SELECT:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select
Select * From TBVeiculos Where NomeCarro Like 'F%' And Tipo = 'Passeio' And CodigoFornecedor = 1

Order By NomeCarro

A linha Where NomeCarro Like 'F%' permite listar apenas os Veculos que comeam com a letra F. Caso quisssemos exibir todos os veculos com a letra F em qualquer lugar a linha seria desta forma: Where NomeCarro Like
%F%;
*

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select O comando que permite este tipo de manipulao de Strings o LIKE. Observem tambm que neste SELECT as condies para exibio so mais do que uma, neste caso utilizamos o comando AND, ele permite que tenhamos vrias condies em um mesmo SELECT.

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select Se observarmos o nosso ltimo SELECT atentamente veremos que ele no ficou muito bom. Notem que um dos campos exibidos o campo Cdigo do Fornecedor. Para o usurio seria muito mais interessante que ele visualiza-se o nome do Fornecedor ao invs do Cdigo. Para realizar essa operao utilizaremos o conceito de junao de tabelas (JOIN), j que o nome do fornecedor se encontra na tabela TBFornecedores.
Prof. Cleber Prof. CleberSeixas Seixas *

Linguagem de Consulta SQL


DML Select Vejamos como fazer este SELECT:
Select A.CodigoVeiculo, B.RazaoSocial, A.NomeCarro, A.Tipo From TBVeiculos A, TBFornecedores B Where A.CodigoFornecedor = B.CodigoFornecedor And A.NomeCarro Like 'F%' And A.Tipo = 'Passeio' And B.RazaoSocial = 'Ford' Order By A.NomeCarro

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML Select O resultado pode ser observado na figura abaixo:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML INNER, LEFT, RIGHT JOIN

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML INNER JOIN Usado para listar os registros existentes em duas ou mais tabelas quando forem iguais. Vejamos como fazer este SELECT:
Select CL.CODCLIENTE, CL.NOMECLIENTE, CI.CODCIDADE, CI.NOMECIDADE, CI.UF From CLIENTES CL INNER JOIN CIDADES CI ON CL.CODCIDADE = CI.CODCIDADE

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML INNER JOIN O resultado pode ser observado na figura abaixo:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML LEFT JOIN Usado para listar os registros da tabela da esquerda e somente da direita quando existir. Vejamos como fazer este SELECT:
Select CL.CODCLIENTE, CL.NOMECLIENTE, CI.CODCIDADE, CI.NOMECIDADE, CI.UF From CLIENTES CL LEFT JOIN CIDADES CI ON CL.CODCIDADE = CI.CODCIDADE

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML LEFT JOIN O resultado pode ser observado na figura abaixo:

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML RIGTH JOIN Usado para listar os registros da tabela da direita e somente da esquerda quando existir. Vejamos como fazer este SELECT:
Select CL.CODCLIENTE, CL.NOMECLIENTE, CI.CODCIDADE, CI.NOMECIDADE, CI.UF From CLIENTES CL RIGHT JOIN CIDADES CI ON CL.CODCIDADE = CI.CODCIDADE

Prof. Cleber Prof. CleberSeixas Seixas

Linguagem de Consulta SQL


DML RIGHT JOIN O resultado pode ser observado na figura abaixo:

Prof. Cleber Prof. CleberSeixas Seixas

Exerccios

Prof. Cleber Prof. CleberSeixas Seixas

Anda mungkin juga menyukai