TECNOLOGIA E LINGUAGEM TECNOLOGIA LINGUAGEM DE BANCO DE DADOS II (TLBD II) LINGUAGEM SQL Profa. Simone Andreia de Campos Camargo Prof. Reginaldo Email:
[email protected]
Ementa •
Conceitos de Banco de Dados ― ― ―
•
O programa MYSQL Instalação e Configuração do Programa MySQL – Banco de Dados ― Criação de Banco de Dados ― Uso do Banco de Dados ― Remoção Banco de Dados MySQL – Tabelas e Registros ― Criação de Tabelas ― Inserção de Registros ― Consultas de Registros Registros ― Alteração de Registros ― Remoção de Registros ― Alteração de Tabelas Tabelas MySQL – Consulta com Operadores ― Operadores Aritméticos ― Operadores de Comparação ― Operadores Lógicos MySQL – Funções ― Agregação ― Data e Hora ― Numéricas ― String MySQL – Agrupamento e União de Tabelas Tabelas MySQL – Junções MySQL – Exercícios Fixação ―
•
•
•
•
• • •
Relacional Linguagem de Consulta SQL Histórico do MySQL
Material Didático Pedagógico Notas de Sala de Aula • Listas de Exercícios • Livros: •
―MySQL 5.5 - Interativo - Guia Essencial de Orientação e
Desenvolvimento
José Augusto Augusto N. G. Manzano ―Linguagem SQL - Guia Prático de Aprendizagem
Luciana Ferreira Baptista
Critério de Avaliação • Assiduidade
•
/Participação em Sala de Aula.
Entrega de Atividades.
• Avaliações
(Bimestral e Semestral). Semestral).
•
Nota = (Assiduidade + Atividades + Avaliação Avaliação 1 + Avaliação Avaliação 2) /4
•
Menção:
I
R
B
MB
Introdução – Conceitos Básicos menor unidade de armazenamento em um banco de dados. Um conjunto de dados e cada dado isoladamente representa um determinado valor de identificação. Ex: nome, idade, telefone, etc.
• Campo:
• Registros: • Tabela:
conjunto de campos relacionados.
conjunto de registros.
• Banco de Dados:
conjunto de Tabelas relacionadas
conjunto de vários banco de dados em uma única estrutura organizacional.
• Base de Dados:
SQL - INTRODUÇÃO Definições e Conceitos Básicos
Introdução – Conceitos Processo de Criação do Banco de Dados • Chave Primária:
associada a um campo ou a um conjunto de campos de uma tabela que a identifica como única. • Chave Estrangeira: é a chave de uma tabela associada a chave primária de outra tabela, pode ocorrer quatro situações (cardinalidade) ―Relacionamento
um para um ―Relacionamento um para muitos ―Relacionamento muitos para um ―Relacionamentos muitos para muitos
Introdução – Conceitos Processo de Criação do Banco de Dados •
Integridade Referencial: mecanismo que evita a quebra de ligação entre os relacionamentos estabelecidos.
O que é SQL ? SQL é uma LINGUAGEM declarativa utilizada para facilitar o acesso e manipulação às informações armazenadas em um banco de dados relacional. • NÃO é um banco de dados. • A sigla SQL significa S t r u c t u r e d Q u e r y L a n g u a g e . • Em português: Linguagem de Consulta Estruturada. • Destaquei o “consulta” porque o foco dela é justamente isso: consultar! •
Um pouco de História • A linguagem
de consulta estrutura SQL foi desenvolvida inicialmente pela IBM, nas décadas de 1960 e 1970 e recebeu o nome de SEQUEL "Structured English Query Language" (Linguagem de Consulta Estruturada, em Inglês)para ser utilizada em um protótipo de banco de dados que estava sendo criado na época. Posteriormente passou por uma formulação e foi apresentada como SQL.
•
Em 1979, um grupo de engenheiros que participou do projeto de criação fundou uma empresa chamada Relational Software, Inc que disponibilizou para o mercado o primeiro sistema de gerenciamento de banco de dados baseado em SQL, denominado ORACLE.
SQL - História •
Logo depois outros fabricantes, além da IBM e da Oracle disponibilizaram no mercado sistemas gerenciadores de banco de dados baseados nesta linguagem, mas cada qual com suas próprias particularidades.
•
Com esta grande variação, não demorou muito tempo para usuários e fabricantes notaram que isso não era interessante e optaram pela criação de um único idioma para consultar bancos de dados relacionais.
SQL - História •
•
O instituto ANSI ( American National Standards Institute ) juntamente como a organização ISO (International Standards Organization) ficaram responsáveis pela padronização desta linguagem e de tempos em tempos realizam encontros entre fabricantes para discutir a linguagem SQL e propor melhorias; No entanto esta padronização não impede que cada fabricante personalize a linguagem SQL para atender suas necessidades, e é aí que surgem os dialetos. Por exemplo, o “dialeto” do gerenciador de banco de dados
Oracle é o PL/SQL; o do SQL Server é o T-SQL (transact SQL) e etc.
SQL - História • Atualmente
existem diversos Sistemas Gerenciadores de Bancos de Dados disponíveis no mercado, como o Oracle, o Microsoft SQL Server, o PostgreSQL, entre outros.
• Todos utilizam a linguagem SQL para consultar dados
Qual o melhor ??? • A grande
dúvida que paira na cabeça de alguns profissionais de TI é: qual o melhor banco de dados? SQL Server? Oracle?! DB2?
•
O melhor gerenciador de banco de dados é aquele que atende adequadamente o seu negócio.
É como comprar um carro: você compraria uma Ferrari para fazer rally ?! • Compraria um Fusca para fazer uma longa viagem pelo Brasil? •
CONCLUSÃO SQL é uma linguagem de consulta a bancos de dados relacionais. • No mercado atual existem inúmeros sistemas gerenciadores de bancos de dados relacionais (comumente chamados apenas pela sigla SGBD); podemos citar como exemplo o Oracle, Microsoft SQL Server, DB2, etc. • Estes gerenciadores de bancos de dados utilizam a linguagem SQL para consultar os dados; porém, adicionam à esta linguagem soluções para atender suas particularidades e aí nascem dialetos como o PL/SQL, PL/pgSQL e o T-SQL. •
A LINGUAGEM SQL E O MYSQL Classificação da Linguagem e o Gerenciador de Banco de Dados MySQL
A Linguagem SQL • A linguagem
SQL atualmente é composta por seis grupos que forma a estrutura básica das instruções. ―Comandos
que manipulam dados; ―Comandos que definem dados; ―Comandos que pesquisam dados; ―Comandos de controle de dados; ―Comandos que administram dados; ―Comandos que controlam transações.
DML • Data Manipulation Language
(Linguagem de Manipulação
de banco de dados) •
Possui o maior conjunto de comandos responsáveis por oferecer recursos para o gerenciamento dos banco de dados, manutenção das tabelas e manipulação de dados.
•
Principais comandos: Insert, Select, Join, Udate, Delete, Show Create Databases, etc.
DDL • Data Definition Language
( Linguagem de Definição de
Dados). •
Este conjunto de comandos possui os comandos que oferecem recursos para definição e controle de dados.
•
Principais Comandos: Alter Database, Alter Table, Create DataBase, Drop Table.
DCL • Data Control Language:
linguagem de Controle de
Dados. •
Este conjunto de comandos oferece recursos para controle de acesso de usuários ao programa.
•
Principais Comandos: Create User, Drop User, Rename User, Set Password.
DQL • Data Query Language:
Linguagem de pesquisa de
Dados. • Divergência:
alguns autores consideram o comando como parte do conjunto DML.
•
Possui apenas o comando: Select.
DAC • Data Administration Commands:
Comandos de
Administração de dados. •
Este conjunto de comandos oferece recursos para a execução do acompanhamento e administração dos dados.
•
Principais Comandos: Describe, Flush Query Cache, Help Command, Help Statement.
TCL •
Transactions Control Commands: Comandos de Controle de Transação.
•
Conjunto de Comandos que permite definir o início, fim e controle de definição de transações.
•
Principais Comandos: Isolation, Lock, Save Point, Start Point, Start Transaction.
MySQL •
O programa MySQL é um SGDG – Sistema Gerenciador de Banco de Dados relacional que utiliza a linguagem de consulta estruturada SQL como interface de acesso a extração de informação em um banco dados.
•
Muito utilizado no mundo todo é rápido, multitarefa e multiusuário.
MySQL 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. • Em 2008, a MySQL AB, desenvolvedora do MySQL foi adquirida pela Sun Microsystems. • Em 2009 a Oracle comprou a Sun Microsystems e todos o seus produtos, incluindo o MySQL e hoje a Sun faz parte da Oracle. • Alguns usuários MySQL: Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics e Texas Instruments, a Wikipédia. •
MySQL Instalação e Configuração •
http://www.mysql.com/downloads/
Pontos Importantes Instalar como Developers. • Observar a porta de instalação: padrão 3306. • Definir uma senha para o Root. • Configurações extra para Windows 8. •
Acesso e Finalização •
Teste rápido de acesso:
Notação Básica Utilizada para Comandos Os comandos apresentados estão de acordo com a documentação oficial do Programa MySQL. • Todos os comandos estão escritos em MAIUSCULO. • Toda a referência a nomes de banco de dados e tabelas estão escritos em minúsculo. •
• Todos elementos apresentados entre os sinais “[“ e “]”
são considerados opcionais. • Todos os elementos apresentados entre os sinais “<“ e
“>” são considerados obrigatórios.
Notação Básica Utilizada para Comandos •
Exemplo: INSERT INTO cadfun VALUES(
15, „Marcos Jose da Silva‟, „Gerente‟
);
Pedindo Ajuda ao MySQL O ambiente de trabalho MySQL permite a exibição de diversos comando operacionais. • HELP ou \h ou ? • Help Contents;
Mais Informações •
http://dev.mysql.com/doc/refman/5.5/en/index.html
SQL COMANDOS Estrutura de Dados e Consultas
Criação de Banco de Dados CREATE DATABASE: comando para criação de um banco de dados. • Sintaxe: •
―CREATE
•
DATABASE [IF NOT EXISTS]
;
Exemplo: ―CREATE
DATABASE escola;
A tela do Prompt MySQL
Consultar Banco de Dados SHOW DATABASES: comando utilizado para mostrar os banco de dados criados; • Sintaxe: •
―SHOW
DATABASES;
Uso do Banco de Dados USE: comando utilizado para indicar ao gerenciador qual banco de dados vai será utilizado. • Sintaxe: •
―USE
•
;
Exemplo: ―USE
escola;
Remoção/Exclusão do banco de Dados DROP DATABASE: comando utilizado para remover um banco de dados inteiro; • Sintaxe: •
―DROP
•
DATABASE ;
Exemplo ―DROP
DATABASE escola;
Criação de Tabelas CREATE TABLE: comando utilizado para a criação de tabelas em um banco de dados. • Sintaxe: •
[IF NOT EXISTS] ( [NULL/NOT NULL] [DEFAULT ] [AUTO_INCREMENT] [PRIMARY KEY]
―CREATE TABLE
);
Criação de Tabela - Parâmetros nome da tabela; • Coluna: nome do campo; • Tipo Coluna: tipo do dado a ser criado (ver tabela de tipos); • Null ou Not Null: indica se o campo pode ou não aceitar valores nulos; • Default: o campo pode receber um valor padrão; • Auto_Increment: indica se o campo vai ser incrementado automaticamente; • Primary Key: define se o campo vai ser chave primária da tabela. • Tabela:
Tipos de Dados
Criação de Tabelas - Exemplo Criar o Banco de Dados empresa que possui a tabela de funcionários conforme descrita abaixo. Campo
Tipo
Descrição
CODFUN
INTEGER
Código não nulo (chave Primária)
NOME
VARCHAR(40)
Nome do funcionário ( não nulo)
FUNCAO
VARCHAR(20)
Função do funcionário
SALARIO
DECIMAL(10,2)
Salário do Funcionário
CREATE TABLE cadfun ( CodFun Integer Not Null Primary Key, Nome VarChar(40) Not Null, Funcao VarChar(20), Salario Decimal(10,2) );
O comando INSERT no Prompt MySQL
Visualização das Tabelas do Banco de Dados Show Tables: comando utilizado para exibir as tabelas de um determinado banco de dados. • Sintaxe: •
―SHOW TABLES;
•
Exemplo ―SHOW TABLES;
Visualização da Estrutura da Tabela DESCRIBE: comando utilizado para exibir a estrutura da tabela criada. • Sintaxe: •
―DESCRIBE
•
[coluna];
Exemplo: ―DESCRIBE
CadFun;
Também pode ser usado o comando DES com a mesma sintaxe.
O comando DESCRIBE no prompt MySQL
Exercícios Crie um banco de dados chamado: locadora; • Crie a tabela •
Inserção de Registros • INSERT INTO:
comando utilizado para inserir registro em uma tabela de um banco de dados. • Sintaxe: ―INSERT INTO
campo1, campo 2, campoN)> VALUES <( valor1, valor2, valorN
)>;
Inserção de Registros •
Exemplo: ―INSERT INTO
cadfun (
CodFun, Nome, Funcao, Salario) VALUES ( 12, „Simone‟, „Analista de Sistemas‟,
1200.00 );
Inserção de Registro Para testar se os dados foram inseridos corretamente podemos utilizar o seguinte comando: • SELECT * FROM cadfun; •
Iremos ver comando SELECT com mais detalhes nas próximas aulas
Exercícios •
Insira os seguintes registros na tabela de funcionários (cadfun) do banco de dados funcionarios.
Código
Nome
Função
Salario
15
Rodrigo Martins Janete Ferreira Ana Lucia Souza
Empresário
24890.00
Professora
5350.00
Enfermeira
2590.00
16 17
SQL – COMANDOS DE MANUTENÇÃO TABELAS Comando – AL ALTER TER TABLE e Vari ariaçõ ações es
Allteração da Est A strrutura das Tabelas • ALTER TABLE:
comando utilizado para modificar a tabela, seja para incluir novos campos, excluir campos existentes ou renomear tabela. • Sintaxe: ALTER ― ALTER
TABLE TABLE ―Onde operacao:
ADD : para adicionar adicionar um novo campo. DROP : para remover um campo já criado.
Alter Al eraç açã ão da Estrut utur ura a das Tabe bela lass – Inclusão de Campos •
Exemplo: Incluir o campo idade na tabela cadfun. ALTER ― ALTER
TABLE TABLE cadfun ADD idade integer;
Alter Al eraç açã ão da Estrut utur ura a das Tabe bela lass – Exclusão Campos •
Exemplo: excluir o campo funcao da tabela cadfun. ALTER ― ALTER
TABLE TABLE cadfun DROP DROP Funcao;
Alteração da Estrutura das Tabelas – Renomear Tabela •
Exemplo: renomear a tabela cadfun para cadastro. ― ALTER
TABLE cadfun RENAME TO funcionarios;
Alteração da Estrutura das Tabelas – Renomear /Alterar Campos •
Exemplo: Renomear o campo salario da tabela cadfun para salariofun. ― ALTER
TABLE cadfun CHANGE Salario Salariofun double;
Exercícios
SQL – COMANDO PARA CONSULTAS AO BANCO DE DADOS Comando SELECT e Variações
Consulta de Registros - SELECT (básico) para extrair uma listagem de registros de uma tabela, ou seja para fazer consultas. Sintaxe:
• SELECT: •
SELECT [ tipo] FROM [condicoes]; ―Tipo
DISTINCT: registros distintos (selecionados). ALL: todos dos registros .
―Campos
* (aterisco): todos os campos da tabela . nome do campo ou campos .
―Tabela
Nome da tabela que se deseja consultar.
―Condições
WHERE: condição lógica. GROUP BY: para criar agrupamentos. ORDER BY : Ascendente (ASC) ou Descente (Desc).
Consulta Registros - Select •
Exemplo: Exibir todos os registros da tabela funcionarios. ―SELECT
* FROM cadfun;
Consulta Registros - Select •
Exemplo: Consultar o nome de todos os funcionários. ―SELECT
nome FROM cadfun;
Consulta Registros - Select •
Exemplo: Consultar o nome e o salario de todos os funcionários. ―SELECT
nome, salario FROM cadfun;
Consulta Registros - Select •
Exemplo: Exibir o nome e a função dos funcionários em ordem alfabética. ―SELECT
nome, funcao FROM cadfun ORDER BY nome;
Consulta Registros - Select •
Exemplo: Exibir o nome e a função dos funcionarios em formato descendente . ―SELECT
nome, funcao FROM cadfun ORDER BY nome DESC;
Consulta Registros - Select •
Exemplo: Exibir o nome dos funcionarios, eliminando os nomes repetidos. ―SELECT DISTINCT nome FROM cadfun;
Consulta Registros - Select •
Exemplo: Consultar os funcionários que ganham R$ 2.000,00. ―SELECT
* FROM cadfun WHERE salario=„2000‟;
Consulta Registros - Select •
Exemplo: Consultar os funcionários que ganham R$ 2.000,00. ―SELECT
* FROM cadfun WHERE salario=„2000‟;
Exercícios
SQL – COMANDO ATUALIZAÇÃO DOS REGISTROS Comando UPDATE e Variações
Alteração de Registros - UPDATE •
UPDATE: Comando utilizado para manutenção dos registros, ou seja atualização/alteração dos dados.
•
Sintaxe: UPDATE SET = [condição]; ―Tabela:
nome da tabela a ser alterada. ―Campo: nome do campo que da tabela a ser atualizado. ―Expressão: é a indicado do valor do campo a ser atualizado. ―Condição: se necessário (WHERE).
Atualização de Registros - UPDATE Exemplo: Atualizar o salario do funcionário Roberto para R$ 1020,00. • UPDATE cadfun SET salario=„1020.00‟ WHERE •
nome=„Roberto‟;
Atualização de Registros - UPDATE Exemplo: Atualizar o nome do funcionário 12 para Sandra. • UPDATE cadfun SET nome=„Sandra‟ WHERE codFun=12; •
Atualização de Registros - UPDATE •
Exemplo: Reajustar o salário dos funcionários em 10%.
•
UPDATE cadfun SET salario= salario*1.10;
Exercícios
SQL – COMANDO PARA REMOÇÃO DOS REGISTROS Comando DELETE e Variações
Exclusão de Registros – DELETE FROM DELETE FROM: comando utilizado para remoção/exclusão dos registros da tabela. • Sintaxe: ―DELETE FROM [condição]; •
•
Tabela: nome da tabela onde os registros serão excluidos. Condição: se necessário (WHERE).
Exemplo: Exlcuir todos os registros da tabela funcionários. ―DELETE FROM funcionarios;
Exclusão de Registros – DELETE FROM Exemplo: Excluir o funcionário de codigo 101 que foi demitido da empresa. • DETELE FROM cadfun WHERE codFun=101; •
Exercícios