Sei sulla pagina 1di 52

IF32L – Introd. Sist.

BD

Aula 13: Linguagem SQL


(SGBD: MySQL)

Prof.: Alexandre Rossi Paschoal


Aula Anterior

• Normalização (1a, 2a e 3a FN)


Nesta aula

Introdução Lingugem S.Q.L.


Introdução a MySQL
Definição
• SQL
– Structured Query Language,
– ou Linguagem de Consulta Estruturada

– É uma linguagem de pesquisa declarativa para banco de


dados relacional (base de dados relacional).
– ANSI (American National Standard Institute),
responsável pela padronização do SQL

– OBS: existem características originais do SQL foram


inspiradas na álgebra relacional.
Ou seja
• Linguagem SQL foi criada para ajudar a
manipular um banco de dados via SGBD.
SQL - Características
• É uma linguagem declarativa
– Diferente de outras linguagens
• programador descreve o tipo de informação que
seja obter
• Computador “determina” melhor procedimento
para realizar essa tarefa

• Lembre-se: maioria das linguagens é


procedural: C, Cobol, Fortran etc.
OBS sobre SQL
• Linguagem usada para obter informações de um BD
relacional.

• No SQL VOCÊ diz qual informação será obtida e nã


ocomo obtê-la.

• SQL fornece a informação que o programador


deseja (requisita).
Histórico
• Edgar Frank Codd foi um matemático britânico.
– Desenvolveu o modelo de banco de dados relacional
(pesquisador da IBM).

• 1970 - publicou um artigo chamado "Relational Model of Data


for Large Shared Data Banks" ou "Modelo de dados relacional
para grandes bancos de dados compartilhados"

• Artigo:
– demonstrou os fundamentos da teoria dos bancos de dados
relacionais, usando tabelas ("linhas" e "colunas")
– e operações matemáticas (álgebra relacional) para
recuperá-las destas tabelas (UNION, SELECT, SUM etc…)
Ou seja
• Codd estabeleceu os princípios de gerência
de um BD relacional (SGBD),

• Em outras palavras, ele ajudou a estabelecer


o início de uma linguagem que se tornaria
padrão de manipulação de um BD
(relacional).
Motivos do “sucesso” do SQL
• “Baseado” no inglês
• Simplicidade e facilidade (entendimento)
• Uma consulta específica fornece um
resultado (se correto sintaxe)
• Linguagem declarativa e não procedural

• Consequência:
– Reduz tempo de aprendizado
Por que aprender SQL?
• Usado em mais de cem softwares
– Livro: Patrick, JS. SQL Fundamentos, 2a edição.
Editora, Berkeley

• Facilidade de aprendizado (já comentado)

• Uma vez que você saiba utilizar, poderá usar em


outros produtos (programas).
– OBS: Peculiaridades existem de cada programa.
Histórico
• Padrão para linguagens de banco de dados relacionais
– Primeira versão: SQL 86 (ANSI/ISO)
– Revisão: SQL 89 (ANSI/ISO)
– Outras veroes: SQL 92 (ANSI/ISO)
– SQL:1999 (Modelo Relacional-Objeto – UDT/UDF) e
2003 (característica de XML)

• OBS: Porém, o conjunto de funcionalidades SQL


implementadas difere entre os diversos sistemas de
bancos de dados!!
Características da Linguagem SQL
• Implementa os conceitos definidos no Modelo
Relacional.

• Assim, é possível:
– Criar, Alterar e Remover todos os componentes de uma
Base de Dados (ex: tabelas);
– Inserir, Aterar e Apagar dados;
– Controlar o acesso dos utilizadores ao banco de dados;
– Buscar mater a consistência e integridade dos dados.
SQL
• Elementos da linguagem SQL:

– DML - Linguagem de Manipulação de Dados

– DDL - Linguagem de Definição de Dado

– DQL - Linguagem de Consulta de Dados


DML - Linguagem de Manipulação
de Dados
• ou Data Manipulation Language
– DML é um subconjunto da linguagem usada para
inserir, atualizar e apagar dados.

– INSERT é usada para inserir um registro


(formalmente uma tupla) a uma tabela existente.
– UPDATE para mudar os valores de dados em
uma ou mais linhas da tabela existente.
– DELETE permite remover linhas existentes de
uma tabela
DDL (Data Definition Language ou
Linguagem de Definição de Dados)
• Permite definir tabelas novas e elementos associados.
• A maioria dos bancos de dados de SQL comerciais tem
extensões proprietárias no DDL.

• Os comandos básicos:
– CREATE cria um objeto (uma Tabela, por
exemplo) dentro da base de dados.
– DROP apaga um objeto do banco de dados.
– ALTER altera um objeto do banco de dados.
DQL - Linguagem de Consulta de
Dados
• Tem apenas um comando
• Mas é um dos mais utilizados
• Comando SELECT
– permite ao usuário especificar uma consulta
(query) como uma descrição do resultado
desejado.
– Esse comando é composto de várias cláusulas e
opções, possibilitando elaborar consultas das mais
simples às mais elaboradas.
• Ex.: FROM, WHERE, ORDER BY, GROUP BY etc.
SGBD
• SGBD – Sistema Gerenciador de Banco de Dados
• Existem diversos SGBDs que possam ser usados a
linguagem SQL.
Nesta disciplina
• Iremos usar o SGBD: MySQL
MySQL
• Ambiente Gráfico: MySQL Workbench
Contudo
• Inicialmente, iremos trabalhar com linha de
comando ;-)

• Depois com o ambiente gráfico


Até agora

Perguntas ?
MySQL

Introdução
MySQL - Histórico
• 1980 – Criada na Suécia.

• 1995 – Lançamento 1a versão.

• 2008 – MySQL AB, quem desenvolvia o


MySQL, foi comprada pela Sun Microsystems.

• 2009 – Oracle compara a Sun Microsystems.


MySQL
• Pertence a ORACLE
– Que inclusive também comprou a Sun
Microsystem (Java)

• Versão estável 5.1.49 (22 de Julho de 2010)


• Sistema Op. Multiplataforma
• Gênero SGBD
• Licença GPL e Licença comercial
• Website www.mysql.com
MySQL - Características
• Roda em Windows, Linux e afins!

• Facilidade de uso com Linguagem PHP


(Nativo)

• Simples, “leve” e rápido (aplicações


pequenas/média)
GUI para Admin. MySQL
• Existem vários ambientes gráficos que
podem ser usados para manipular.
mysql-query browser
MySQL Workbench
MySQL Workbench

Conhecendo o ambiente
No Windows
• Iniciar → Executar
• Digite: cmd
• Vá em:
– Arquivos de Programas → MySQL → MySQL
Server 4?? → bin
• Digite: mysql
Usando MySQL
• Como efetuar logon no MySQL

• mysql ­h nome_host ­u nome_usuário ­p
– -p indica que quer conectar usando senha.

• OBS: pode-se omitir o -h


Conectando
No seu caso
• Inicialmente, após instalar, o usuáiro que
existe é o root.

• Cuidado com ele, o ideal é você criar outro


usuário que não o root para manipulação do
seu banco.

• Outro fato: sempre coloque senha no root


(segurança).
Criando usuário: comando GRANT
• Comando GRANT
– Permite criar usuários e fornecer privilégios

• Sintaxe:
– GRANT privilégios [colunas]
– ON item
– TO nome_user [ IDENTIFIED by 'senha']
– [WITH GRANT OPTION]
Tipos de privilégios
• 3 tipos de privilégios
– Usuários regulares
• SELECT, UPDATE, INSERT, DELETE, INDEX,
ALTER, CREATE, DROP

– Administradores
• RELOAD, SHUTDOWN, PROCESS, FILE

– Especiais
• ALL, USAGE
Aplicações
• Em geral, para aplicações, devem ser dado
privilégio de usuário.

• Somente administradores deverão ter


privilégio de Admin.
Configurar usuário - Exemplos
GRANT all
ON *
TO fred IDENTIFIED by 'mb123'
WITH GRANT OPTION;

• Neste exemplo é concedido privilégios a TODOS os


BD aum usuário fred com a senha mb123 e permite
a ele passar esses privilégios.
Remover usuário (privilégio)
• Comando REVOKE
– Permite retirar privilégio de um usuário

• Exemplo anterior:
– REVOKE all
– ON *
– FROM fred;
Configure usuário assim
• GRANT select, insert, update, delete, index,
alter, create, drop
• ON database.*
• TO usuario IDENTIFIED by 'senha';
Após conectar
• Saida do root e use o usuário criado.

• Conecte no BD via novo usário.


Mostrar Bancos de Dados
Criando um Banco de Dados
• mysql> CREATE DATABASE NomeDatabase;

• Resposta: Query OK, 1 row affected
– Quer dizer que tudo funcionou

• Onde
– NomeDatabase = nome do banco de 
dados que quer ser criado.
Acessar (usar) o BD
• Depois de criado, você deve especificar ao
MySQL qual banco quer acessar (usar).

• Comando:
– use nomeBD;

– Exemplo: use sistemaCursos;


Tabela - Manipulação
• Mostrar tabelas de um BD
– show tables;

• Mostra estrutura da tabela:


– DESCRIBE nome_da_tabela;

• Criar tabela:
– Comando CREATE TABLE
CREATE TABLE
• Sintaxe:
• CREATE [<banco>.]TABLE [IF NOT EXISTS] nome_tabela
• [ <definições> ]
• [ <opções> ] [ <instruções> ]
CREATE TABLE - Exemplo

CREATE TABLE IF NOT EXISTS Autor1 (


ID_Autor int NOT NULL AUTO_INCREMENT,
Nome varchar(50),
Sobrenome varchar(50),
INDEX ixAutorNome (Nome),
PRIMARY KEY (ID_Autor) );
Exercício
• Explique cada uma das linhas do comando anterior:

• CREATE TABLE IF NOT EXISTS Autor (


• ID_Autor int NOT NULL AUTO_INCREMENT,
• Nome varchar(50) NOT NULL DEFAULT "",
• Sobrenome varchar(50) NOT NULL DEFAULT "",
• INDEX ixAutorNome (Nome),
• PRIMARY KEY (ID_Autor));
Principais comandos SQL
• INSERT
• UPDATE
• SELECT
• DELETE

Potrebbero piacerti anche