80
TECNOLOGIA E LINGUAGEM DE BANCO DE DADOS II (TLBD II) LINGUAGEM SQL Profa. Simone Andreia de Campos Camargo Prof. Reginaldo Email: [email protected]

Aula02-Introducao Ao MySQL

Embed Size (px)

DESCRIPTION

MySQL Comandos

Citation preview

Page 1: Aula02-Introducao Ao MySQL

TECNOLOGIA E LINGUAGEM DE

BANCO DE DADOS II (TLBD II)

LINGUAGEM SQL

Profa. Simone Andreia de Campos Camargo

Prof. Reginaldo

Email: [email protected]

Page 2: Aula02-Introducao Ao MySQL

Ementa • Conceitos de Banco de Dados

― Relacional

― Linguagem de Consulta SQL

― Histórico do MySQL

• 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

― Alteração de Registros

― Remoção de Registros

― Alteração de 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

• MySQL – Junções

• MySQL – Exercícios Fixação

Page 3: Aula02-Introducao Ao 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 N. G. Manzano

―Linguagem SQL - Guia Prático de Aprendizagem

Luciana Ferreira Baptista

Page 4: Aula02-Introducao Ao MySQL

Critério de Avaliação

• Assiduidade /Participação em Sala de Aula.

• Entrega de Atividades.

• Avaliações (Bimestral e Semestral).

• Nota = (Assiduidade + Atividades + Avaliação 1 + Avaliação 2) /4

• Menção: I R B MB

Page 5: Aula02-Introducao Ao MySQL

Introdução – Conceitos Básicos

• Campo: 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.

• Registros: conjunto de campos relacionados.

• Tabela: conjunto de registros.

• Banco de Dados: conjunto de Tabelas relacionadas

• Base de Dados: conjunto de vários banco de dados em

uma única estrutura organizacional.

Page 6: Aula02-Introducao Ao MySQL

SQL - INTRODUÇÃO Definições e Conceitos Básicos

Page 7: Aula02-Introducao Ao MySQL

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

Page 8: Aula02-Introducao Ao MySQL

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.

Page 9: Aula02-Introducao Ao MySQL

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 Structured Query Language.

• Em português: Linguagem de Consulta Estruturada.

• Destaquei o “consulta” porque o foco dela é justamente

isso: consultar!

Page 10: Aula02-Introducao Ao MySQL

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.

Page 11: Aula02-Introducao Ao MySQL

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.

Page 12: Aula02-Introducao Ao MySQL

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.

Page 13: Aula02-Introducao Ao MySQL

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

Page 14: Aula02-Introducao Ao MySQL

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?

Page 15: Aula02-Introducao Ao MySQL

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.

Page 16: Aula02-Introducao Ao MySQL

A LINGUAGEM SQL E O

MYSQL Classificação da Linguagem e o Gerenciador

de Banco de Dados MySQL

Page 17: Aula02-Introducao Ao 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.

Page 18: Aula02-Introducao Ao MySQL

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.

Page 19: Aula02-Introducao Ao MySQL

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.

Page 20: Aula02-Introducao Ao MySQL

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.

Page 21: Aula02-Introducao Ao MySQL

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.

Page 22: Aula02-Introducao Ao MySQL

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.

Page 23: Aula02-Introducao Ao MySQL

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.

Page 24: Aula02-Introducao Ao MySQL

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.

Page 25: Aula02-Introducao Ao MySQL

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.

Page 26: Aula02-Introducao Ao MySQL

MySQL Instalação e Configuração

• http://www.mysql.com/downloads/

Page 27: Aula02-Introducao Ao MySQL

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.

Page 28: Aula02-Introducao Ao MySQL

Acesso e Finalização

• Teste rápido de acesso:

Page 29: Aula02-Introducao Ao MySQL

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.

Page 30: Aula02-Introducao Ao MySQL

Notação Básica Utilizada para Comandos

• Exemplo:

INSERT INTO cadfun VALUES(

15,

„Marcos Jose da Silva‟,

„Gerente‟

);

Page 31: Aula02-Introducao Ao MySQL

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

Page 32: Aula02-Introducao Ao MySQL

SQL COMANDOS Estrutura de Dados e Consultas

Page 33: Aula02-Introducao Ao MySQL

Criação de Banco de Dados

• CREATE DATABASE: comando para criação de um

banco de dados.

• Sintaxe:

―CREATE DATABASE [IF NOT EXISTS]<nome_banco>;

• Exemplo:

―CREATE DATABASE escola;

Page 34: Aula02-Introducao Ao MySQL

A tela do Prompt MySQL

Page 35: Aula02-Introducao Ao MySQL

Consultar Banco de Dados

• SHOW DATABASES: comando utilizado para mostrar os

banco de dados criados;

• Sintaxe:

―SHOW DATABASES;

Page 36: Aula02-Introducao Ao MySQL

Uso do Banco de Dados

• USE: comando utilizado para indicar ao gerenciador qual

banco de dados vai será utilizado.

• Sintaxe:

―USE <nome>;

• Exemplo:

―USE escola;

Page 37: Aula02-Introducao Ao MySQL

Remoção/Exclusão do banco de Dados

• DROP DATABASE: comando utilizado para remover um

banco de dados inteiro;

• Sintaxe:

―DROP DATABASE <nome do banco>;

• Exemplo

―DROP DATABASE escola;

Page 38: Aula02-Introducao Ao MySQL
Page 39: Aula02-Introducao Ao MySQL

Criação de Tabelas

• CREATE TABLE: comando utilizado para a criação de

tabelas em um banco de dados.

• Sintaxe:

―CREATE TABLE [IF NOT EXISTS] <tabela> (

<coluna> <tipo coluna> [NULL/NOT NULL]

[DEFAULT <valor>] [AUTO_INCREMENT]

[PRIMARY KEY]

);

Page 40: Aula02-Introducao Ao MySQL

Criação de Tabela - Parâmetros

• Tabela: 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.

Page 41: Aula02-Introducao Ao MySQL

Tipos de Dados

Page 42: Aula02-Introducao Ao MySQL

Criação de Tabelas - Exemplo Criar o Banco de Dados empresa que possui a tabela de funcionários conforme descrita abaixo.

CREATE TABLE cadfun (

CodFun Integer Not Null Primary Key,

Nome VarChar(40) Not Null,

Funcao VarChar(20),

Salario Decimal(10,2)

);

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

Page 43: Aula02-Introducao Ao MySQL

O comando INSERT no Prompt MySQL

Page 44: Aula02-Introducao Ao 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;

Page 45: Aula02-Introducao Ao MySQL

Visualização da Estrutura da Tabela

• DESCRIBE: comando utilizado para exibir a estrutura da

tabela criada.

• Sintaxe:

―DESCRIBE <nome da tabela> [coluna];

• Exemplo:

―DESCRIBE CadFun;

Também pode ser usado o comando DES com a mesma

sintaxe.

Page 46: Aula02-Introducao Ao MySQL

O comando DESCRIBE no prompt

MySQL

Page 47: Aula02-Introducao Ao MySQL

Exercícios

• Crie um banco de dados chamado: locadora;

• Crie a tabela

Page 48: Aula02-Introducao Ao MySQL

Inserção de Registros

• INSERT INTO: comando utilizado para inserir registro em

uma tabela de um banco de dados.

• Sintaxe:

―INSERT INTO <tabela (

campo1,

campo 2,

campoN)> VALUES <(

valor1,

valor2,

valorN

)>;

Page 49: Aula02-Introducao Ao MySQL

Inserção de Registros

• Exemplo:

―INSERT INTO cadfun (

CodFun,

Nome,

Funcao,

Salario) VALUES (

12,

„Simone‟,

„Analista de Sistemas‟,

1200.00

);

Page 50: Aula02-Introducao Ao MySQL

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

Page 51: Aula02-Introducao Ao MySQL

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

Empresário 24890.00

16 Janete

Ferreira

Professora 5350.00

17 Ana Lucia

Souza

Enfermeira 2590.00

Page 52: Aula02-Introducao Ao MySQL

SQL – COMANDOS DE

MANUTENÇÃO

TABELAS Comando – ALTER TABLE e Variações

Page 53: Aula02-Introducao Ao MySQL

Alteração da Estrutura das Tabelas

• ALTER TABLE: comando utilizado para modificar a

tabela, seja para incluir novos campos, excluir campos

existentes ou renomear tabela.

• Sintaxe:

―ALTER TABLE <tabela> <operação>

―Onde operacao:

ADD <campo> <tipo> : para adicionar um novo campo.

DROP <campo>: para remover um campo já criado.

Page 54: Aula02-Introducao Ao MySQL

Alteração da Estrutura das Tabelas –

Inclusão de Campos • Exemplo: Incluir o campo idade na tabela cadfun.

―ALTER TABLE cadfun ADD idade integer;

Page 55: Aula02-Introducao Ao MySQL

Alteração da Estrutura das Tabelas –

Exclusão Campos • Exemplo: excluir o campo funcao da tabela cadfun.

―ALTER TABLE cadfun DROP Funcao;

Page 56: Aula02-Introducao Ao MySQL

Alteração da Estrutura das Tabelas –

Renomear Tabela • Exemplo: renomear a tabela cadfun para cadastro.

―ALTER TABLE cadfun

RENAME TO funcionarios;

Page 57: Aula02-Introducao Ao MySQL

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;

Page 58: Aula02-Introducao Ao MySQL

Exercícios

Page 59: Aula02-Introducao Ao MySQL

SQL – COMANDO PARA

CONSULTAS AO BANCO

DE DADOS

Comando SELECT e Variações

Page 60: Aula02-Introducao Ao MySQL

Consulta de Registros - SELECT (básico)

• SELECT: para extrair uma listagem de registros de uma tabela, ou seja para fazer consultas.

• Sintaxe:

SELECT [ tipo] <campos> FROM <tabela> [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).

Page 61: Aula02-Introducao Ao MySQL

Consulta Registros - Select

• Exemplo: Exibir todos os registros da tabela funcionarios.

―SELECT * FROM cadfun;

Page 62: Aula02-Introducao Ao MySQL

Consulta Registros - Select

• Exemplo: Consultar o nome de todos os funcionários.

―SELECT nome FROM cadfun;

Page 63: Aula02-Introducao Ao MySQL

Consulta Registros - Select

• Exemplo: Consultar o nome e o salario de todos os

funcionários.

―SELECT nome, salario FROM cadfun;

Page 64: Aula02-Introducao Ao MySQL

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;

Page 65: Aula02-Introducao Ao MySQL

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;

Page 66: Aula02-Introducao Ao MySQL

Consulta Registros - Select

• Exemplo: Exibir o nome dos funcionarios, eliminando os

nomes repetidos.

―SELECT DISTINCT nome FROM cadfun;

Page 67: Aula02-Introducao Ao MySQL

Consulta Registros - Select

• Exemplo: Consultar os funcionários que ganham R$

2.000,00.

―SELECT * FROM cadfun WHERE salario=„2000‟;

Page 68: Aula02-Introducao Ao MySQL

Consulta Registros - Select

• Exemplo: Consultar os funcionários que ganham R$

2.000,00.

―SELECT * FROM cadfun WHERE salario=„2000‟;

Page 69: Aula02-Introducao Ao MySQL

Exercícios

Page 70: Aula02-Introducao Ao MySQL

SQL – COMANDO

ATUALIZAÇÃO DOS

REGISTROS

Comando UPDATE e Variações

Page 71: Aula02-Introducao Ao MySQL

Alteração de Registros - UPDATE

• UPDATE: Comando utilizado para manutenção dos

registros, ou seja atualização/alteração dos dados.

• Sintaxe:

UPDATE <tabela>SET<campos> = <expressão>[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).

Page 72: Aula02-Introducao Ao MySQL

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‟;

Page 73: Aula02-Introducao Ao MySQL

Atualização de Registros - UPDATE

• Exemplo: Atualizar o nome do funcionário 12 para

Sandra.

• UPDATE cadfun SET nome=„Sandra‟ WHERE

codFun=12;

Page 74: Aula02-Introducao Ao MySQL

Atualização de Registros - UPDATE

• Exemplo: Reajustar o salário dos funcionários em 10%.

• UPDATE cadfun SET salario= salario*1.10;

Page 75: Aula02-Introducao Ao MySQL

Exercícios

Page 76: Aula02-Introducao Ao MySQL

SQL – COMANDO PARA

REMOÇÃO DOS

REGISTROS

Comando DELETE e Variações

Page 77: Aula02-Introducao Ao MySQL

Exclusão de Registros – DELETE FROM

• DELETE FROM: comando utilizado para

remoção/exclusão dos registros da tabela.

• Sintaxe:

―DELETE FROM <tabela> [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;

Page 78: Aula02-Introducao Ao MySQL

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;

Page 79: Aula02-Introducao Ao MySQL

Exercícios

Page 80: Aula02-Introducao Ao MySQL

http://www.officeguru.com.br/cursos/acces

s/curso-access-2010/criar-banco-de-

dados-no-access/