Академический Документы
Профессиональный Документы
Культура Документы
SQL- DML
INTRODUO
A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma
linguagem de manipulao de dados (DML - Data Manipulation Language) para suas primeiras tentativas de
desenvolvimento de bancos de dados relacionais. Sua vantagem sobre modelos de dados anteriores que as
operaes realizadas sobre os dados so especificadas numa linguagem no procedural e conjuntos de dados
so manipulados com um nico comando. Isto faz com que os programadores no tenham de navegar por
uma estrutura complexa de banco de dados, reduzindo a quantidade de cdigo necessrio para acessar os
dados.
SQL tornou-se padro depois de 1986, quando o American National Standards Institute (ANSI),
definiu a SQL como linguagem padro para os bancos de dados relacionais. Desde ento, o SQL j sofreu
diversas atualizaes oficiais. O novo padro SQL chama-se SQL3, nesta verso a mais importante a
adio de caractersticas de orientao a objetos na linguagem. . Atualmente este padro utilizado para o
acesso a diversos bancos de dados relacionais, tais como Oracle, DB2, SQL Server, Sybase, Mysql,
Postgresql, Interbase, Firebird etc.
A DDL disponibiliza comandos que permitem criar e eliminar base de dados, tabelas e indices alem
de disponibilizar comandos que eliminar todos os dados da tabela e alteram a estrutura da tabela
A DML disponibiliza comandos que permitem manipular os dados das tabelas no banco de dados
Principais comandos
A DCL disponibiliza comandos que definem usurios e controla o acesso destes aos dados na base
de dados.
A DTL disponibiliza comandos que controlam transaes a serem realizadas no banco de dados
Nota de Aula 1
Prof. Sidney Vieira
COMANDOS DA DML
===========================================================
1 desenvolvimento 100000.00 2
2 rede 200000.00 7 Banco de dados
3 manutencao 80000.00 <null> Funcionarios
FUNCIONARIO
obs:
o campo matr_chefe em DEPARTAMENTO tem a funo de guardar a matricula do funcionario
que o chefe do departamento e
o campo DEP_COD em funcionario tem a funo de guardar o departamento de alocao do
funcionario.
1 - INSERT
Permite inserir valores nas tuplas, linhas, de uma tabela de uma base de dados
Sintaxe:
INSERT INTO nome_da_tabela( colunai, ..., colunaj) VALUES (valor_ colunai, ... valor_ colunaj)
Obs:
Caso se deseje inserir um campo com valor nulo emprega-se o termo NULL para o valor da
coluna
Caso se deseje inserir todos os campos pode-se omitir o nome das colunas, desde que a insero
seja feita na mesma ordem na qual os campos foram criados pelo comando Create Table
Exemplos:
Nota de Aula 2
Prof. Sidney Vieira
2 - UPDATE
Sintaxe:
UPDATE tabela
SET COLUNAj = valor, ..., COLUNAn = valor
WHERE condio
Exemplos:
UPDATE funcionario
SET comissao = 100
WHERE matr = 02
Alterar para 100 reais, o valor da comisso, e para 1000, o valor do salario, do funcionario de matr 04
UPDATE funcionario
SET comissao = 100, salario = 1000
WHERE matr = 04
3 - DELETE
Sintaxe:
DELETE FROM tabela
WHERE condio
Exemplo:
4 SELECT
Sintaxe
SELECT [atributo] { * | tabela.* | [tabela.]campo 1 [AS alias1] [, [tabela.]campo2 [AS alias2] [, ...]]}
FROM expressodetabelas
[WHERE..condio. ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
Nota de Aula 3
Prof. Sidney Vieira
Parte Descrio
Atributo Um dos atributos a seguir: ALL, DISTINCT. Voc utiliza o atributo para
restringir o nmero de campos retornados. Se nenhum for especificado, o padro
ser ALL
* Especifica que todos os campos da tabela ou tabelas especificadas esto
selecionados.
Tabela O nome da tabela contendo os campos a partir dos quais os campos so
selecionados.
campo1, campo2 Os nomes dos campos contendo os dados que voc deseja recuperar. Se voc
incluir mais de um campo, eles sero recuperados na ordem listada.
alias1, alias2 Os nomes a serem utilizados como cabealhos de coluna em lugar dos nomes
originais de coluna em tabela.
Expresso de tabelas O nome da tabela ou tabelas contendo os dados que voc deseja recuperar.
AND OR NOT
+ - / *
Nota de Aula 4
Prof. Sidney Vieira
campoi STARTING WITH value Procura em string case sentitive
Obs:
Os operadores aritmticos podem ser usados na clusula Select
Comparaes com string so caso sensitivo no padro SQL-ANSI
String em comparaes devem ser colocadas entre (aspas)
Exemplos:
SELECT *
FROM funcionario
OBS:
o caracter * empregado quando se deseja obter todos os campos, colunas, de uma tabela.
OBS:
neste caso a referncia ao campo feita descrevendo-se o nome da tabela e o nome do campo,
separado por ponto. Isto empregado quando se deseja obter informaes de mais de uma tabela,
com uma tabela no necessrio empregar este recurso.
OBS:
Neste caso foi empregado um alias para a tabela funcionario
ALL o default seu emprego faz com que colunas iguais apaream no resultado de uma consulta
DISTINCT seu emprego faz com que caso haja colunas iguais em um resultado de uma consulta elas sejam
eliminadas
Exemplo:
Nota de Aula 5
Prof. Sidney Vieira
SELECT DISTINCT DET_COD
FROM funcionario
obs: Esta consulta nos permite visualizar o codigo dos departamentos, sem repetio, nos quais
existem funcionarios alocados. Caso no empregarmos o distinct teremos uma repetio
desnecessrio dos codigos que aparecem mais de uma vez na tabela.
Diferenas:
1 1
1 2
2 3
1
3
2
3
Exemplos:
Obter o nome e salario dos funcionrios com salario maior ou igual a 100 reais
Obter o nome e salrio dos funcionrios com salario entre 1000 e 1500 reais
Obter o nome e salario dos funcionrios com salario de 100 ou 1500 ou 200 reias
Obter o nome e salario dos funcionrios cujo nome comece com a letra S
Obter o nome, salario e a comisso dos funcionrios com salario superior a 500 reais e comisso inferior a
200 reais
Obter o nome, salario e a comisso dos funcionarios com salario igual a 100 reais ou comisso igual a 100
reais
Obter o nome, salario dos funcionarios que no possuem comisso com valor de 100 reais
Obter o nome, salario e a comisso dos funcionarios sua comisso adicionada com 100 reais seja menor do
que seu salrio
Obter o nome e seus ganhos (salario + comisso) de todos os funcionarios que possuam comisso no nula
Obter o nome e seus ganhos (salario + comisso), renomeando a coluna como total de ganhos, de todos os
funcionarios que possuam comisso no nula
Funes
Permitem efetuar transformao sobre colunas especificadas. De modo que os valores NULL so
ignorados nos clculos efetuados pelas funes.
Funes disponveis:
AVG(coluna) retorna a media dos valores da coluna especificada
MAX(coluna) retorna o valor mximo da coluna especificada
MIN(coluna) retorna o valor mnimo da coluna especificada
SUM(coluna) retorna o soma dos valores da coluna especificada
COUNT(coluna) retorna o total de tuplas, da coluna especificada, que satisfazem a
clusula WHERE
Exemplos:
Nota de Aula 7
Prof. Sidney Vieira
Qual a media dos valores dos salarios pagos ?
SELECT COUNT( matri), SUM( salrio), MIN( salrio), MAX( salrio), AVG(salrio)
FROM funcionario
SELECT COUNT(*)
FROM funcionario
(retorna o total de tuplas da relao)
Order by colunai, colunaj, ...,colunan tem a funo de ordenar os resultados segundo os campos
especificados nesta clusulas. O default e uma ordenao ascendente ASC, possvel ordenar de
forma descendente usando DESC
Group By colunai, colunaj, ...,colunan tem a funo de agrupar os resultados quando se emprega
funes agregadas a clusulas Select e um uma outra coluna sem funo agregada.
Having condio tem a funo de especificar a condio em caso de agrupamentos usando Group
By, substitui o where quando se emprega o group by. Os campos que compem o having no
precisam fazer parte do select.
Exemplos:
Obter o nome e salarios dos funcionrios cujo salario seja superior a 1000 ordene por nome do funcionario
Obter o nome e salarios dos funcionrios cujo salario seja superior a 1000 ordene de forma decrescente por
salario
ou
Obter o os cdigos dos departametos e as quantidades de funcionarios alocadas neles dos departamentos que
possuam 3 ou mais funcionarios
(neste caso ocorre a seleo onde cada grupo de cd tenha mais de 10 funcionarios)
Obter o os cdigos dos departametos e as quantidades de funcionarios alocadas neles dos departamentos que
cuja media salarial seja menor do que 1000 reais
(neste caso ocorre a seleo onde cada grupo de cd tenha como media salaria 1000)
Nota de Aula 9
Prof. Sidney Vieira