Anda di halaman 1dari 22

Linguagem SQL

Structured Query Language, ou Linguagem de Consulta Estruturada


ou SQL, é uma linguagem de pesquisa declarativa para banco de
dados relacional (base de dados relacional). Muitas das características
originais do SQL foram inspiradas na álgebra relacional.

O SQL foi desenvolvido originalmente no início dos anos 70 nos


laboratórios da IBM em San Jose, dentro do projeto System R, que
tinha por objetivo demonstrar a viabilidade da implementação do
modelo relacional proposto por E. F. Codd. O nome original da
linguagem era SEQUEL, acrônimo para "Structured English Query
Language" (Linguagem de Consulta Estruturada em Inglês) [1], vindo
daí o fato de, até hoje, a sigla, em inglês, ser comumente
pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto,
em português, a pronúncia mais corrente é a letra a letra: "ésse-quê-
éle".

A linguagem SQL é um grande padrão de banco de dados. Isto


decorre da sua simplicidade e facilidade de uso. Ela se diferencia de
outras linguagens de consulta a banco de dados no sentido em que
uma consulta SQL especifica a forma do resultado e não o caminho
para chegar a ele. Ela é uma linguagem declarativa em oposição a
outras linguagens procedurais. Isto reduz o ciclo de aprendizado
daqueles que se iniciam na linguagem.

Embora o SQL tenha sido originalmente criado pela IBM, rapidamente


surgiram vários "dialetos" desenvolvidos por outros produtores. Essa
expansão levou à necessidade de ser criado e adaptado um padrão
para a linguagem. Esta tarefa foi realizada pela American National
Standards Institute (ANSI) em 1986 e ISO em 1987.

O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-
92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999
(SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões
regulares de emparelhamento, queries (consultas) recursivas e
triggers (gatilhos). Também foi feita uma adição controversa de tipos
não-escalados e algumas características de orientação a objeto. O
SQL:2003 introduz características relacionadas ao XML, seqüências
padronizadas e colunas com valores de auto-generalização (inclusive
colunas-identidade).

Tal como dito anteriormente, o SQL, embora padronizado pela ANSI e


ISO, possui muitas variações e extensões produzidos pelos diferentes
fabricantes de sistemas gerenciadores de bases de dados.
Tipicamente a linguagem pode ser migrada de plataforma para
plataforma sem mudanças estruturais principais.
Outra aproximação é permitir para código de idioma procedural ser
embutido e interagir com o banco de dados. Por exemplo, o Oracle e
outros incluem Java na base de dados, enquanto o PostgreSQL
permite que funções sejam escritas em Perl, Tcl, ou C, entre outras
linguagens. O MySQL é muito utilizado em pequenos e médios sites e
por se de fácil implantação e manutenção será estudado neste
módulo.

O que é o MySQL

O MySQL é um sistema de gerenciamento de banco de dados


(SGBD), que utiliza a linguagem SQL (Linguagem de Consulta
Estruturada, do inglês Structured Query Language) como interface. É
atualmente um dos bancos de dados mais populares, com mais de 10
milhões de instalações pelo mundo.

Entre os usuários do banco de dados MySQL estão: NASA, Friendster,


Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa, U.S Army,
US. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco
Systems, Google, Wikipedia e outros.

O MySQL foi criado na Suécia por dois suecos e um finlandês: David


Axmark, Allan Larsson e Michael "Monty" Widenius, que têm
trabalhado juntos desde a década de 1980. Hoje seu
desenvolvimento e manutenção empregam aproximadamente 400
profissionais no mundo inteiro, e mais de mil contribuem testando o
software, integrando-o a outros produtos, e escrevendo a respeito
dele.

No dia 16 de Janeiro de 2008, a MySQL AB, desenvolvedora do


MySQL foi adquirida pela Sun Microsystems, por US$ 1 bilhão, um
preço jamais visto no setor de licenças livres. No dia 20 de Abril de
2009 a Oracle compra a Sun Microsystems e todos o seu produtos,
incluindo o MySQL. A Comissão Europeia ainda não aprovou a
aquisição.

O sucesso do MySQL deve-se em grande medida à fácil integração


com o PHP incluído, quase que obrigatoriamente, nos pacotes de
hospedagem de sites da Internet oferecidos atualmente. Empresas
como Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics e
Texas Instruments usam o MySQL em aplicações de missão crítica.

O MySQL hoje suporta Unicode, Full Text Indexes, replicação, Hot


Backup, GIS, OLAP e muitos outros recursos.
Características importantes do MySQL

 Portabilidade (suporta praticamente qualquer plataforma


atual);
 Compatibilidade (existem drivers ODBC, JDBC e Dot.NET e
módulos de interface para diversas linguagens de programação,
como Delphi, Java, C/C++, Visual Basic, Python, Perl, PHP, ASP
e Ruby);
 Pouco exigente quanto a recursos de hardware, exige pouco
recurso de memória (mínimo 16MB) e processador (mínimo
166Mhz, embora tenha funcionado bem em Pentium 100Mhz);
 Excelente desempenho e estabilidade;
 Facilidade de uso;
 É um Software Livre com base na GPL;
 Contempla a utilização de vários Storage Engines como
MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid;
 Suporta controle transacional (uso de transações com commit e
rollback);
 Suporta Triggers (gatilhos);
 Suporta Cursores (Cursors - Non-Scrollable e Non-Updatable);
 Suporta Stored Procedures e Functions;
 Replicação facilmente configurável;
 Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos
pela MySQL Inc.
 Funciona na grande maioria dos Sistemas Operacionais
existentes no mercado.
 Outros Gerenciadores de Banco de Dados podem importar
facilmente suas bases de dados.

Visite o site do MySQL: http://www.mysql.com

Para trabalharmos de modo mais dinâmico com o MySQL iremos


instalar um software integrado chamado VertrigoServ, que contém o
Apache, MySQL, PHP e PHPMyAdmin.

Visite o site do VertrigoServ e baixe o programa, é pequeno e


gratuito:
http://vertrigo.sourceforge.net/?lang=pt

O que é o VertrigoServ

VertrigoServ foi desenvolvido para criar um fácil e altamente


profissional instalador de Apache (servidor web - HTTP), PHP
(lingagem de programaçăo dinâmica), MySQL (multithread, multi-
utilizador, SQL Database Management System), SQLite (sistema de
gestăo de bases de dados, de acordo com ACID), SQLiteManager
(ferramenta web based para gerir as bases de dados SQLite),
PhpMyAdmin (ferramenta escrita em PHP para administrar as bases
de dados MySQL) e Zend Optimizer (que aumenta a performance em
40%) para a plataforma Windows. Com um único instalador, todos os
componentes săo instalados num único diretório e podem ser usados
imediatamente após a instalaçăo. Um desinstalador permite remover
o VertigoServ do disco rígido. Foi desenhado para ser o menor e
flexível possível, no entanto é altamente recomendado para
distribuiçăo na Internet. VertrigoServ é excelente tanto para novatos
como para utilizadores experientes.

Instalando o VertrigoServ

Por ser uma distribuição para a plataforma Windows, é muito simples


realizar a instalação em disco rígido.

Rode o arquivo de instalação baixado no site do VertrigoServ,


provavelmente será o arquivo: Vertrigo_221.exe.

1ª Tela – Installer Language

Nesta tela selecione a língua desejada para a instalação,


provavelmente você queira deixar traduzido para o Português (do
Brasil) e então clique no botão OK.

2ª Tela – Instalação do VertrigoServ 2.21

Clique no botão Avançar


3ª Tela – Contrato de Licença

Nesta tela é exibido um contrato padrão para softwares GNU, não se


preocupe, o software que você está instalando é totalmente gratuito,
clique no botão Concordo.

4ª Tela – Escolha dos Componentes

Nesta tela é possível remover somente a opção para criar um ícone


para o programa na área de trabalho, clique no botão Avançar.
4ª Tela – Escolha do local de instalação

Nesta tela, se não quiser alterar o caminho onde serão instalados os


arquivos clique no botão Avançar.

5ª Tela – Escolha uma pasta do menu Iniciar

Nesta tela, se não quiser alterar o caminho onde serão instalados os


atalhos do VertrigoServ clique no botão Instalar.
6ª Tela – Instalando

Aguarde o término da instalação, é rápido.

7ª Tela – Concluindo o Assistente de Instalação do


VertrigoServ 2.21

Ative o Item : Executar VertrigoServ 2.21 e clique no botão


Terminar
8ª Tela – Configurando o VertrigoServ 2.21

Clique no Link: Program

9ª Tela – Program settings

Ative todos os seguintes Items do Grupo Miscellaneous e depois


clique no botão Save settings and restart Server
10ª Tela – Alerta de segurança do Windows

Ao ativar o servidor HTTP Apache, o Windows irá questionar se deseja


Desbloquear o serviço no Firewall, clique no botão Desbloquear.

Ao ativar o servidor SGBD MySQL, o Windows irá questionar se


deseja Desbloquear o serviço no Firewall, clique no botão
Desbloquear.

Pronto, o VertrigoServ 2.21 está instalado, vamos verificar


se está tudo funcionando, abra o Internet Explorer ou outro
Navegador de Internet de sua preferência.
Na barra de endereço apague o que estiver escrito e digite somente
localhost e pressione a tecla Enter.

Uma página HTML de configuração do VertrigoServ em Inglês deverá


ser exibida.

Obs.: Se a página acima não for exibida, reinicie o computador e


tente novamente.

Antes de trabalharmos na página de configuração, ative As


configurações de Intranet, clicando com o botão esquerdo do
mouse na barra dourada
E depois no Menu que irá aparecer clique em Habilitar
Configurações da Intranet

Uma mensagem de confirmação irá aparecer, clique no botão Sim

Iremos trabalhar um pouco no PhpMyAdmin, que é um bom


gerenciador gratuito de banco de dados MySQL e que roda direto no
navegador.
Trabalhando com o PhpMyAdmin

Clique no link : PhpMyAdmin fica a direita da página do


VertrigoServ.

Uma tela de conexão irá aparecer.


No campo Nome do usuário digite root e no campo Senha digite
vertrigo

Clique no botão OK
Criando um banco de dados de exemplo no PhpMyAdmin

Clique no campo Criar novo Banco de Dados

Digite um nome para o Novo Banco de dados, por exemplo:


Despesas e clique no botão Criar

O PhpMyAdmin tentará criar o Banco de Dados e irá retornar uma


mensagem de aviso.

Logo abaixo o PhpMyAdmin exibe o comando SQL utilizado para criar


o Banco de Dados Despesas.

CREATE DATABASE `Despesas`;


Criando tabelas no PhpMyAdmin

Para criar a tabela digite o Nome e o Número de arquivos


(quantidade de campos da tabela) e clique no botão Executar

Crie a tabela Contas com 7 Número de arquivos (campos) e clique


no botão Executar.

Uma nova tela será exibida, agora com 7 campos a serem


preenchidos.

Nossa tabela será criada a partir do esquema ER (Entidade-


Relacionamento) abaixo:

Despesas
PK AI codigo – integer not null
descricao – varchar(60) not null
data_vencto – date
data_pagto – date
valor – float
multa – float
juros - float
Para adicionarmos o primeiro campo [ codigo ] do tipo inteiro
(integer) e deve ser chave primária (Primary Key - PK) devemos
digitar codigo na primeira linha:

Selecionamos o Tipo do campo, nesse caso, INT (abreviado de


INTEGER):

Selecionamos na Caixa de Seleção Extra – auto_increment e


ativamos a chave primária:

(Chave primária)

Os próximos campos são mais simples e digitaremos o nome do


campo, selecionamos o tipo e o tamanho se necessário:

O Storage Engine deve ser alterado para InnoDB para ser possível
criar relacionamentos entre as tabelas, o que não é permitido pelo
Storage Engine MyISAM (padrão no MySQL).
Clique em Salvar para que seja criada a tabela despesas.

O campo Adicionar permite criar mais campos na tabela, digite se


quiser a quantidade e depois clique no botão Executar

Se não houver erros uma nova tela irá ser exibida com o código SQL
que criou a tabela.

CREATE TABLE `despesas`.`contas` (


`codigo` INT NOT NULL AUTO_INCREMENT,
`descricao` VARCHAR(60),
`data_vencto` DATE,
`data_pagto` DATE,
`valor` FLOAT,
`multa` FLOAT,
`juros` FLOAT,
PRIMARY KEY (`codigo`)
) ENGINE = INNODB

Também é possível criar a tabela executando o código SQL, clicando


no ícone irá ser exibido a Janela de Consulta:
Se quiser criar outra tabela copie e cole o código SQL abaixo na
Janela de consulta e clique no botão Executar:

CREATE TABLE `despesas`.`clientes` (


`codigo` INT NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(60),
`endereco` VARCHAR(60),
`bairro` VARCHAR(60),
`cidade` VARCHAR(60),
`estado` CHAR(2),
`cep` CHAR(10),
PRIMARY KEY (`codigo`)
) ENGINE = INNODB

Um nova tela será exibida e sua tabela clientes estará criada:

Trabalhando com a tabela criada

Clique a esquerda da tela no link da tabela clientes, uma nova tela


será exibida, onde será possível realizar diversas operações com a
tabela clientes, como Visualizar os registros cadastrados, Alterar a
estrutura da tabela, Executar comandos SQL, realizar procuras em
registros (filtros), Exportar estrutura e dados, Importar dados
(arquivos txt, csv, etc), Otimizar a tabela, Excluir todo conteúdo da
tabela (Limpar) e até mesmo Eliminar a tabela, sem ao menos
precisar digitar nenhum comando SQL.
Para que seja possível trabalhar com consultas SQL iremos inserir
alguns registros de exemplo na tabela clientes.

Inserindo registros

O método mais simples para inserir registros nas tabelas é utilizando


a grade para inserir dados, no PhpMyAdmin é simples. Clique, por
exemplo, no nome da tabela clientes a esquerda da tela:

Clique na Aba Inserir:

Uma outra tela será exibida, onde será possível cadastrar de 2 até
mais registros ao mesmo tempo. Se quiser inserir mais de um
registro de uma única vez altere a propriedade abaixo e clique no
botão Executar:
Vamos inserir um registro somente então,

Preencha os campos no item Valor e clique no botão Executar


O código é auto-incremento e não é necessáriopdigitar nada. O nome
deve ser digitado. Os campos marcados como Nulo, podem ser
ignorados, mas pelo menos o nome é interessante ser preenchido. Irá
facilitar no restante dos comandos em SQL.

Ao Executar o comando SQL uma nova tela irá ser exibida com o
aviso do(s) registros inseridos juntamente com o comando SQL:

INSERT INTO `despesas`.`clientes` (`codigo`, `nome`, `endereco`,


`bairro`, `cidade`, `estado`, `cep`)
VALUES
(NULL, 'José da Silva', 'Praça da Independência, 160', 'Centro', 'Esp. Sto.
do Pinhal', 'SP', '13.990-000');
Alterando/Atualizando e Excluindo registros

O método mais simples para atualizar ou excluir registros nas tabelas


é utilizando a Aba Visualizar no PhpMyAdmin. Clique, por exemplo,
no nome da tabela clientes a esquerda da tela:

Outra tela será exibida:

Para Alterar ou Excluir um registro clique no ícone correspondente.

Se quiser utilizar a Janela de consulta para Alterar ou Excluir um


registro ou mais é preciso seguir as seguintes sintaxes:

Instrução SQL Update (Atualizar)

UPDATE [`<base de dados>`.]`<nome da tabela>` SET


`<nome do campo desejado>` = '<novo valor>'
*[ , <nome do campo desejado> = '<novo valor>' ]
WHERE <campo chave-primária ou não> = '<valor>'
*[] – é possível alterar diversos campos ao mesmo tempo,
simplesmente adicionando ,campo = valor.
Os valores se forem do tipo CHAR, VARCHAR, DATE E DATETIME
devem ser digitados entre aspas simples, os outros tipos INT,
NUMERIC, FLOAT, REAL, DOUBLE, SMALLINT, TINYINT não
necessitam de aspas.

Exemplo prático:

UPDATE `despesas`.`clientes` SET


`nome`='José da Silva Campos'
,`endereco`='Praça da Bíblia, 50'
WHERE `codigo`=1

Explicação: No comando SQL acima o nome do cliente será alterado


de 'José da Silva' para 'José da Silva Campos' e o endereço de 'Praça
da Independência, 160' para 'Praça da Bíblia, 50', somente se o
campo `codigo` for igual a 1.

Instrução Delete (Excluir)

DELETE FROM <nome da tabela>


[ WHERE <campo chave-primária ou não> = <valor>]

Exemplo prático:

DELETE FROM clientes


WHERE codigo=1

Explicação: No comando SQL acima o cliente com o campo codigo


igual a 1 será excluído da tabela. Se for omitido o comando WHERE
todos os registros da tabela serão excluídos de uma única vez.

Ao digitar os comandos Update e Delete, preste muita atenção ao


comando WHERE, se não for digitado corretamente, os dados da
tabela poderão ser modificados de forma definitiva causando grandes
dores de cabeça ao DBA.
Trabalho

Monte a base de dados Locadora com as respectivas tabelas


baseadas no modelo DER abaixo, ignore os relacionamentos:

Para cada tabela, crie as instruções SQL:

-SELECT para todos os registros ordenados pela chave primária.


-INSERT de pelo menos 2 registros
-UPDATE de pelo menos 1 registro e todos os campos do registro.
-DELETE de pelo menos 1 registro

Anda mungkin juga menyukai