Buscar

Manual Básico de SQL Para Iniciantes ( Banco de Dados1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Manual de introdução ao SQL 
Pedro Teixeira. 
Sistemas de Informação – Universidade Federal do Mato Grosso do Sul(UFMS) 
{Patrick Garcia de Freitas} patrickfreitas110@gmail.com 
{Pedro Teixeira} preisteixeira@gmail.com 
 
 Resumo. Este artigo tem o objetivo de levar à introdução da Linguagem 
SQL e seu uso na prática, dando condições ao leitor da mesma de criar 
bancos e tabelas, editar bancos, tabelas e tuplas, inserir tuplas e dados e 
remover dados em qualquer Banco de Dados que faça uso desta linguagem 
(podendo haver mudanças na linguagem de acordo com o Banco). 
 
Sumário – 
1. Introdução 
2. Criando um Banco de Dados 
3. Restrições 1 
4. Inserindo Dados à Tabela 
5. Alterações 
6. Atualizações e Remoção de Dados 
7. Select 
8. Joins 
9. Order By 
10. Count 
11. Group By e Funções Agregadas 
12. Like 
13. Between 
14. Having 
15. Conclusão 
16. Referências 
 
 
 
 
 
1 
 
 
 
 
 
 
1. Introdução 
 
 O SQL é utilizado quando se trabalha com bancos de dados, é 
utilizada em várias linguagens que reúnem o Structured Query Language 
seguindo o exemplo de SQL Server, Oracle, Mysql e etc. Atualmente o 
SQL é considerado o padrão para manipulação de dados em um banco de 
dados. A padronização do SQL é cuidada por duas entidades a ANSI 
(American National Standards Institute) e a ISO (International Standards 
Organization). 
 
2. Criando um Banco de Dados 
 A criação de um Banco de Dados é dada pelo comando CREATE 
DATABASE seguido do nome do banco, sendo sua sintaxe definida nesta 
forma: 
 
 CREATE DATABASE BANCO; 
 
 Feito isso nosso próximo passo é criar as tabelas que formarão nosso 
banco, faremos isso através do comando CREATE TABLE seguido do 
nome da tabela. Sua sintaxe será definida da seguinte forma: 
 
 CREATE TABLE tabela; 
 
 Na criação de cada tabela devemos acrescentar os atributos logo 
após o comando de criação da tabela, sendo que estes serão dispostos na 
tabela na ordem em que forem escritos no comando de criação. Os 
atributos devem ser precedidos pelo tipo de dados que será armazenado 
neste. 
 
 CREATE TABLE tabela ( 
 INTEGER atributo1, 
 VARCHAR(30) atributo2, 
 DATE atributo3, 
 BIT atributoN 
 
2 
 
 ); 
 
 Os atributos devem ser separados por vírgula e estar entre 
parênteses, devendo haver um ponto e vírgula ao fim do comando (isto 
vale para todos os comandos em linguagem SQL). Não sendo necessário 
a utilização da vírgula após o ultimo atributo. Caso seja necessário, deve-
se incluir a quantidade de caracteres aceitos pelo atributo entre parênteses. 
Este comando deverá gerar uma tabela com o seguinte aspecto: 
 
atributo1 atributo2 atributo3 atributo4 
 
 Como foi citado anteriormente, os atributos estarão dispostos na 
tabela na ordem em que foram inclusos no código. 
 
3. Restrições 1 
 Ao criar nosso Banco de Dados, nós podemos criar restrições que 
obriguem o usuário a inserir apenas valores válidos ao nosso banco, como 
por exemplo o bom uso dos tipos de atributos. Entretanto isso nem 
sempre é o suficiente, nesse caso nos utilizamos restrições, que são 
formas de garantir a integridade do nosso banco e a validade das suas 
informações. 
 Algumas dessas restrições podem ser incluídas ao criarmos a tabela, 
como por exemplo o NOT NULL, que restringe q a tupla seja criada sem 
que este atributo receba algum valor válido. O NOT NULL é muito útil 
caso haja algum atributo que deva obrigatoriamente ser preenchido como 
no caos de login e senha, Nome de usuário, código ou nome de algum 
produto, enfim. 
 Outra cláusula muito utilizada, e necessária, é o comando UNIQUE, 
este é utilizado para que um determinado atributo possa receber um valor 
apenas uma vez, ou seja se a sua tabela recebeu um valor “Pedro” em um 
atributo login, e este esteja utilizando a clausula UNIQUE, o valor 
“Pedro” nesta tabela será único, como o nome sugere o atributo não 
poderá receber mais de uma vez o mesmo valor. 
 
Vejamos como fica a sintaxe das duas cláusulas deste tópico: 
 
 CREATE TABLE funcionário ( 
 INTEGER codigo NOT NULL UNIQUE, 
 VARCHAR(30) nome NOT NULL, 
 DATE data_de_registro, 
 
3 
 
 BIT sexo 
 ); 
 
 Como podemos observar no Exemplo um mesmo atributo pode 
receber as duas cláusulas, neste caso o atributo “codigo” deverá ser único 
em toda a tabela e não pode receber o valor nulo, ou seja deve ser 
preenchido com um valor válido. 
 Podemos ainda criar chaves para que sejam mais fáceis as restrições 
e as pesquisas, vejamos como criar uma chave primaria: 
 
 CREATE TABLE funcionário ( 
 INTEGER codigo PRIMARY KEY, 
 VARCHAR(30) nome NOT NULL, 
 DATE data_de_registro, 
 BIT sexo 
 ); 
 
 Como pudemos observar a cláusula PRIMARY KEY (chave 
primária), não recebe as cláusulas NOT NULL e UNIQUE, por ser 
obrigatoriamente única e não nula. 
 Ainda utilizando as chaves vamos observar a utilização de chaves 
estrangeiras em uma outra tabela: 
 
 CREATE TABLE dependentes ( 
 INTEGER codigo_funcionario NOT NULL, 
 INTEGER codigo_dependente PRIMARY KEY, 
 VARCHAR(30) nome NOT NULL, 
 DATE nome_funcionário, 
 BIT sexo, 
 FOREIGN KEY (codigo_funcionario) REFERENCES funiconario(codigo) 
 ); 
 
 Se observarmos o exemplo podemos observar a chave estrangeira 
“código_funcionario” (FOREING KEY), porém para que esta funcione de 
forma a fazer a referência correta devemos acrescentar uma linha extra à 
nossa query,nessa linha nós dizemos que a nossa chave estrangeira faz 
referência (REFERENCES) ao atributo “código” da tabela “funcionário”. 
 Podemos fazer também esta referência através de uma constraint, 
que vai nos ajudar a manter a integridade do nosso banco, vamos ver: 
 
 
4 
 
 CREATE TABLE qualificação( 
 INTEGER código_funcionario NOT NULL, 
 cargo VARCHAR(30) NOT NULL, 
 SETOR VARCHAR(30), 
 CONSTRAINT pk_codigo PRIMARY KEY (código_funcionário) 
 REFERENCES funcionario (código) 
 ); 
 
 Ao declarar uma constraint nós devemos dar a ela um nome 
(CONSTRAINT nome), referenciar qual será a chave de referencia na 
própria como chave primária (PRIMARY KEY atributo_chave) e 
referenciar qual tabela e qual o atributo será o parâmetro de referencia 
(REFERENCES tabela 2 (atributo_chave_t2)). Ficando assim uma 
fórmula genérica: 
 CONSTRAINT nome PRIMARY KEY atributo_chave 
 REFERENCES tabela 2 (atributo_chave_t2) 
Dado isto já podemos começar a preencher nossa tabela. 
 
4. Inserindo Dados à Tabela 
 Após criada a nossa tabela nós podemos preenche-la, para isso 
utilizamos o comando INSERT, este deve receber alguns parâmetros para 
inserir os valores nas tuplas corretamente, por exemplo para determinar 
em qual tabela o valor será inserido utilizamos o comando INTO seguido 
do nome da tabela: INSERT INTO tabela. E definimos os parâmetros a 
serem inseridos na ordem em que eles ficaram dispostos na tabela através 
da clausula VALUES. Neste caso a sintaxe fica assim: 
 
 INSERT INTO tabela 
 VALUES ( 
 115172, 
 Varcharexemplo, 
 01/01/2015, 
 0 
 ); 
 
 Nós também podemos especificar em que ordem queremos inserir 
os atributos, para isso definimos a ordem deles antes da clausula 
VALUES: 
 
 INSERT INTO tabela 
 
5 
 
 (atributo3,atributo2,atributo4,atributo1) 
 VALUES ( 
 01/01/2015, 
 115172, 
 0, 
 Varcharexemplo 
 ); 
 
 Desta mesma forma podemos definir quais atributos queremos 
inserir, ou seja nós podemos especificar quais atributos queremos inserir à 
tabela, sem a obrigatoriedade de inserirtodos eles todas as vezes que 
desejarmos inserir um valor, basta definirmos quais atributos vamos 
inserir e através da clausula VALUES inserir apenas os valores 
necessários: 
 
 INSERT INTO tabela (atributo2) 
 VALUES (115172); 
 
5. Alterações 
 Após criarmos um banco de dados nós podemos modificar sua 
configuração sem que seja necessário criar um novo banco ou uma nova 
tabela, para isso usaremos o comando ALTER que deve ser seguido de o 
que desejamos alterar. 
Vamos começar inserindo um atributo à tabela com a cláusula ADD: 
 
 ALTER TABLE nome_da_tabela ADD nome_do_atributo tipo; 
 
 Como se pode ver devemos indicar em qual tabela faremos a 
alteração e adicionar (ADD) o atributo, declarando seu tipo. 
 Podemos ainda alterar o tipo de atributo da tabela, neste caso 
utilizaremos a clausula ALTER COLUMN: 
 
 ALTER TABLE nome_tabela 
 ALTER COLUMN nome_do_atributo novo_tipo; 
 
 A única observação é que neste caso devemos declarar o tipo de 
atributo que desejamos que substitua o antigo. 
No caso de deletar um atributo utilizamos o DROP COLUMN: 
 
 
6 
 
 ALTER TABLE nome_tabela DROP COLUMN nome_atributo; 
 
Para Alterar o nome da tabela usamos o RENAME TABLE TO: 
 
 RENAME TABLE nome_tabela TO novo_nome_tabela; 
 
Em alguns Bancos pode-se encontrar esta sintaxe: 
 
 ALTER TABLE nome_tabela RENAME TO novo_nome_tabela; 
 
Para alterar o nome do banco de dados a sintaxe é bem parecida: 
 
 ALTER DATABASE nome_banco RENAME TO novo_nome; 
 
6. Atualizações e Remoção de Dados 
 Após criar e customizar nossa tabela nós ainda precisaremos alterar 
as informações nela contidas. Para isso faremos uso do comanto 
UPDATE, ou seja não estaremos alterando e sim atualizando a nossa 
tabela, mudando valores que já haviam sido inseridos anteriormente. 
 Entretanto para que isso funcione é necessário que seja passado um 
parâmetro para que o banco identifique qual é a tupla e o atributo a ser 
alterado para isso utilizaremos as clausulas SET e WHERE: 
 
 UPDATE nome_tabela 
 SET atributo1=valor1, atributo2=valor2; 
 WHERE atributo=valorX; 
 
 Como podemos observar a cláusula SET é onde iremos definir qual 
atributo irá receber novos valores e a clausula WHERE é onde iremos 
informar qual a condição onde deve ser feita a atualização. 
 Para remover alguma tupla da nossa tabela usamos o comando 
DELET da seguinte forma: 
 
 DELET FROM tabela; 
 
 Para especificar quais tuplas devem ser removidas podemos utilizar 
a clausula WHERE e inserir uma condição para que as tuplas sejam 
removidas: 
 
7 
 
 
 DELET FROM tabela WHERE condição; 
 
 
7. Select 
 Após concluirmos a parte estrutural do banco nós iremos trabalhar 
com ele e começaremos pelo comando SELECT. 
 O comando SELECT tem a função de pesquisar entre a tabela as 
tuplas que atendem a uma determinada condição, sua sintaxe genérica 
seria: 
 
 SELECT * FROM tabela; 
 
 Essa pesquisa retorna todas as tuplas de uma tabela, o caractere 
especial ‘*’ indica que não foi especificado nenhum atributo, portanto 
todos eles retornam no resultado da pesquisa. Para especificar um ou mais 
atributos devemos inserir eles na seleção desta forma: 
 
 SELECT atributo1,atributo2,... FROM tabela; 
 
 Também podemos selecionar tuplas específicas, determinando um 
parâmetro que identifique-a através da cláusula WHERE: 
 
 SELECT * FROM tabela WHERE condição; 
 
 Com esta cláusula podemos comparar um ou mais atributo com 
algum valor desejado: 
 
 SELECT * FROM tabela WHERE atributo1=valor1 OR atributo2=valor2 
 
 Observe que foi utilizado a clausula OR (ou) que indica que a 
pesquisa deve retornar valores onde qualquer uma das duas condições 
seja verdadeira, também é válido o AND (e) onde as duas condições 
devem ser atendidas. 
 Podemos também selecionar na tabela apenas as tuplas onde um ou 
mais atributos não possuam valores repetidos, para isso utilizamos o 
DISTINCT: 
 
 SELECT DISTINCT atributo1, atributo2 FROM tabela; 
 
8 
 
 
8. Join 
 O join é o comando responsável pela união de tabelas para que 
possamos visualizar e pesquisar itens em duas ou mais tabelas utilizando 
uma condição, por exemplo: 
 
 SELECT * FROM tabela1 JOIN tabela2; 
 
 Para identificar quais atributos devem ser exibidos utilizamos o 
comando SELECT: 
 
 SELECT atributo1,atributoF 
 FROM tabela1 JOIN tabela2 
 ON atributo1 = atributoF; 
 
 Isso retornará os atributos ‘atributo1’ e ‘atributoF’ em todas as 
tuplas onde ‘atributo1’ for igual ao ‘atributoF’, caso não exista 
correspondência de uma tabela na outra ele não retornara nada, para criar 
esta condição utilizamos a clausula ON seguida da condição desejada, 
entretanto esta impede que ele seja mais complexo do que isso. 
 Caso seja necessário podemos utilizar mais de uma cláusula para 
filtrar mais, como as cláusulas WHERE e DISTINCT, que já estudamos 
nos SELECTS. 
 O comando JOIN ou INNER JOIN são comandos de equivalência, 
ou seja todas as tabelas que serão unidas tem o mesmo peso e valor na 
pesquisa. 
 LEFT JOIN e RIGHT JOIN são usados caso seja necessário que 
retornem na pesquisa todos os itens da tabela direita (RIGHT JOIN) ou da 
tabela da esquerda (LEFT JOIN), além, claro dos itens correspondentes à 
pesquisa. Ou seja, ao contrário do INNER JOIN, estes dois fazem uma 
pesquisa onde uma tabela retorna todos os seus valores independente de 
satisfazer ou não a condição, e a outra retorna apenas quando a satisfaz. 
 Onde não houver itens correspondentes, de uma tabela à outra, os 
campos serão preenchidos com o valor nulo (NULL). 
 FULL OUTER JOIN, ou só FULL JOIN e usado quando você há a 
necessidade de retornar tudo de todas as tabelas, a partir da validade da 
condição que foi utilizada, como por exemplo: 
 
 SELECT atributo1,atributoF FROM tabela1 FULL OUTER JOIN tabela2 ON 
atributo1=atributoF; 
 
9 
 
 
 Isso vai relacionar todas as colunas de ambas as tabelas onde a 
condição for satisfeita. 
 
9. Union 
 Usado para unir o resultado de dois os mais Select’s, muito parecido 
com os Joins já apresentados mais ele necessita que ambas tabelas tenham 
as os mesmos tipos de atributos e estejam na mesma ordem: 
 
 SELECT atributo1,atributo2,atributo3 FROM table1 UNION SELECT 
atributoF,atributoS,atributoT; 
 
 O UNION suprime todos os resultados repetidos, eliminando todas 
as tuplas repetidas, caso queira os resultados repetidos terá de usar o 
UNNION ALL: 
 
 SELECT atributo1, atributo2, atributo3 FROM table1 UNION ALL SELECT 
atributoF, atributoS, atributoT; 
 
10. Order by 
 O comando Order By tem a função de ordenar o resultado dos 
Select à partir de uma determinada condição, caso sejam numérico temos 
ASC (acendente) e DESC (descendente): 
 
 SELECT atributo1,atributo2,atributo3 FROM table1 ORDER BY atributo1 ASC; 
 SELECT atributoF,atributoS,atributoT FROM table2 ORDER BY atributoF 
DESC; 
 
Ou só pelo atributo escolhido, neste caso ele irá ordenar na ordem 
crescente (ascendente): 
 
 SELECT atributo1,atributo2,atributo3 FROM table1 ORDER BY atributo1; 
 
Podemos ainda usar ASC e DESC ao mesmo tempo: 
 
 SELECT atributo1,atributo2,atributo3 FROM table1 UNION ALL SELECT 
atributoF,atributoS,atributoT ORDER BY atributo1 ASC, atributoT DESC; 
 
 
10 
 
Neste caso seria ordenado primeiramente pelo ‘atributo1’ (ascendente) e 
logo depois pelo ‘atributoT’ (descendente). 
11. Count 
 O comando COUNT conta um determinado atributo, e devolve esta 
contagem na forma de outro atributo. Quando não há qualquer espéciede 
condição ele conta a quantidade de linhas de uma coluna: 
 
 SELECT COUNT atributo1 FROM tabela1; 
 
 Entretanto este comando pode ser usado junto com as clausulas 
DISTINCT para não contar valores repetidos, ou WHERE para 
determinar uma condição, conforme já vimos anteriormente. 
 
 SELECT COUNT atributo1 FROM tabela1 WHERE atributo1=100; 
 
12. Group by e Funções Agregadas 
 Este tem uso semelhante ao Order By, que pode ser usado em 
conjunto. o GROUP BY serve para agrupar os valores que se repetem nas 
colunas, utilizando como parâmetro o próprio atributo: 
 
 SELECT * FROM tabela GROUP BY atributoX; 
 
 ELE funciona em conjunto com algumas das funções agregadoras, 
sendo elas o AVG() que retorna a média aritmética, o MAX() que retorna 
o valor máximo, o MIN() o valor mínimo, o FIRST() traz o primeiro 
valor, o LAST() o último valor, SUM() a somados valores da coluna, e 
COUNT() anteriormente explicado. Agora alguns exemplos: 
 
 SELECT MAX(atributo1) FROM tabela1; 
 SELECT MIN(atributo2) FROM tabela1; 
 SELECT LAST(atributo3) FROM tabela1; 
 SELECT FIRST(atributoT) FROM tabela2; 
 SELECT AVG(atributoF) FROM tabela2; 
 SELECT SUM(atributoF) FROM tabela2; 
 
Agora usado em conjunto com o Order By: 
 
 
11 
 
 SELECTatributo1,atributo2,atributo3 FROM table1 GROUP BY(atributo1) 
ORDER BY (atributo3); 
 
13. Like 
 O operador Like e usado em conjunto com o WHERE para buscar 
em tuplas valores que você tem exatamente certeza do que é, mais e algo 
e parecido, com por exemplo, você sabe que tem nomes na coluna, então 
você quer todos os que se parecem com Pedro, então você faz uma busca 
parecida com isso: 
 
 SELECT atributo2 FROM table1 WHERE atributo2 LIKE 'Pe%”; 
 
14. Between 
 O operador Between tem funcionamento parecido com o Like, 
usado junto com WHERE, só que nele você quer todos os valores entre 
uma faixa que você define como esta aqui: 
 
 SELECT atributo1 FROM table1 WHERE atributo1 BETWEEN 7 AND 17; 
 
15. Having 
 A cláusula Having é usada junto com WHEERE para possibilitar 
usar alguma função de agregação como o neste exemplo: 
 
 SELECT atributo1 FROM table 1 JOIN ON table2 WHERE atributo1=atributoF 
HAVING COUNT (atributo1)>5; 
 
16. Conclusão 
 A linguagem SQL nos permite uma gama enorme de possibilidades, 
ela foi criada com a intenção de padronizar e simplificar o uso e a 
manipulação de dados, entretanto é necessário um conhecimento mínimo 
sobre banco de dados para que seja feito o bom e correto uso dessa 
linguagem e suas ferramentas. Este Artigo não traz à pratica a criação de 
um banco de dados real, com esquemas e relacionamentos, nosso objetivo 
é de apresentar o básico sobre a Linguagem de Consulta Estruturada 
(SQL) e suas funções. 
 
 
 
 
 
12 
 
17. Referências 
 
Souza, Marco Aurelio de (2004) “Mais sobre Sql , Pl / Sql , Sql Plus - 
Manual de Referência Completo e Objetivo”, Editora Ciencia Moderna. 
Junior, Ary dos Saton Rocha (2013) “SQL Passo a Passo”, Editora 
Ciencia Moderna. 
Site: “http://www.w3schools.com/sql/default.asp”, Acesso: junho de 
2015.

Continue navegando