Top Banner
Introdução ao MySQL Introdução ao MySQL 5.1 5.1 Prof. Tales K. Cabral Prof. Tales K. Cabral [email protected] [email protected] Colégio da Imaculada Colégio da Imaculada Curso Técnico em Informática Curso Técnico em Informática 2º Módulo 2º Módulo
24

Introdução ao MySQL 5.1 Prof. Tales K. Cabral [email protected] Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Apr 21, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Introdução ao MySQL 5.1Introdução ao MySQL 5.1Introdução ao MySQL 5.1Introdução ao MySQL 5.1

Prof. Tales K. CabralProf. Tales K. [email protected]@colegiodaimaculada.com.br

Colégio da ImaculadaColégio da ImaculadaCurso Técnico em InformáticaCurso Técnico em Informática

2º Módulo2º Módulo

Page 2: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 2 de 24

MySQL

Sistema Gerenciador de Banco de Dados

Licença: GNU (General Public Licence) - FREEWARE

Versão: 5.1.36 ou 5.1.47 (estáveis)Como encontrar? Internet (download)http://www.mysql.com/downloads/mirror.php?id=389420#mirrors (escolher um dos

servidores)

Site Oficial: www.mysql.com

Page 3: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 3 de 24

MySQLInstalação:

1. Baixar o programa;2. Executar o arquivo baixado;

1. Normalmente, escolhe-se a configuração padrão. Porém, se o usuário dispõe de espaço em disco, é aconselhável a instalação completa.

3. Obter/criar um script (arquivo .bat):1. Definição das regras para a execução do banco

de dados (ant. ao Windows XP);2. Definição das configurações do administrador

(ant. ao Windows XP);

4. Executar o banco e configurar DDL e DML;

Page 4: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 4 de 24

MySQLO MySQL é:

• Um gerenciador de banco de dados;

• Assim como o PHP, é gratuito e de código aberto;

• Utiliza a linguagem de programação SQL* (Structured Query Language);

Motivo:• Existem vários bancos de dados que suportam e seguem o padrão

SQL, porém cada um deles possui extensões proprietárias que possibilitam novas funcionalidades ao padrão.

Exemplos:• PostgreSQL: também tem código aberto e é gratuito, além de

funcionar igualmente bem com o PHP;

• Microsoft SQL Server: não é gratuito, não possui código aberto e é bastante usado em corporações.

* SQL - um padrão e a linguagem mais usada em bancos de dados

Page 5: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 5 de 24

MySQL

Aplicações:• Na internet atual, praticamente todos os

servidores de hospedagem suportam MySQL, exatamente pelo fato dele ser gratuito como o PHP e os dois trabalharem muito bem em conjunto.

• Também funciona com ASP, mas requer a disponibilização do servidor para poder funcionar.

• É suportado pelo código PHP.

Page 6: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 6 de 24

MySQL

Divisões:

• DDL (Data Definition Language): Linguagem de definição de dados. Consite na criação de bases de dados (bd) e das tabelas referentes a estes bds.

• DML (Data Manipulation Language): Linguagem de Manipulação de Dados. Consiste em operações que podem ser realizadas com as tabelas criadas a partir da DDL.

Page 7: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 7 de 24

MySQL

Abaixo segue um breve resumo das funções que manipulam bds e tabelas em SQL.

Criando databases

Sintaxe:

CREATE DATABASE <nome_database>; ou CREATE DATABASE IF NOT EXISTS <nome_database> ;

Mostrando databases

Sintaxe:

SHOW DATABASES;

DDL:

Page 8: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 8 de 24

MySQL

Acessando database

Sintaxe:

USE DATABASE <nome_database>;

Apagando databases

Sintaxe:

DROP DATABASE <nome_database>;

Visualizando as tabelas que existem dentro de alguma base de dados (primeiro deve acessar a base):

Sintaxe:

USE DATABASE <nome_database>;SHOW TABLES;

DDL:

Page 9: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 9 de 24

MySQL

Abaixo segue um breve resumo das funções que manipulam tabelas em SQL.

Criando tabelas

Sintaxe:

CREATE TABLE <nome_da_tabela> ( <nome_do_campo> <tipo_do_campo>,

<outro_campo> <tipo_do_campo>, ... );

DDL:

Page 10: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 10 de 24

• Exemplo de criação de uma tabela:

Create Table <nome_tabela> (

atribute1 INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,

atribute2 CHAR(20) DEFAULT '' NOT NULL,

atribute3 DOUBLE(16,2) DEFAULT '0.00' NOT NULL,

PRIMARY KEY(atribute1, atribute2)

);

MySQLDDL:

cláusulas

UNSIGNED: sem sinal - não permite inserção de valores menores que zero ZEROFILL: preenche com zeros à frente do número inteiro inserido equivalendo à

qtd. de algarismosAUTO_INCREMENT: para tipo de dados numérico e inteiro, faz o incremento

automático da sequência.DEFAULT: define um valor padrão para o caso de não preenchimento deste durante

a Cláusulas inserção.UNIQUE: define valores únicos para coluna (como chave primária) portanto, não se

utiliza em chaves primárias estando subentendida esta função.NOT NULL: refere-se aos valores da coluna não poderem ficar vazios (sem valor).PRIMARY KEY: chave primáriaFOREIGN KEY / REFERENCES: chave estrangeiraCHECK: determina uma verificação para inserção de valores. Ex.: CHECK (sexo in

[“M”,”F”])

Page 11: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 11 de 24

Chave Primária• A função da chave primária é identificar univocamente uma

linha da tabela.

• Cada tabela deve possuir (pelo menos) uma chave primária.

• Quando se define um atributo como chave primaria, fica implícito as cláusulas UNIQUE e NOT NULL para este atributo, não sendo necessário a especificação destas.

create table cliente ( codigo int(5) primary key,

nome char(30) not null, sexo char(1) CHECK(sexo IN (‘M’, ‘F’)), CPF number(11) UNIQUE, endereco char(40), cidade char(20) DEFAULT ‘Maceio’

);

MySQLDDL:

Page 12: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 12 de 24

MySQLDDL: Tipos de DadosTipo Descrição

tinyint Números inteiros de -128 a 127 (signed) ou de 0 a 255 (unsigned).

integer / int Números inteiros de -2147483648 a 2147483647 (signed) ou então de 0 a 4294967295 (unsigned).

bigintNúmeros inteiros de -9223372036854775808 a 9223372036854775807 (signed) ou de 0 a

18446744073709551615 (unsigned).

bool / boolean / bit Indica falso (zero) ou verdadeiro (qualquer número diferente de zero).

float(m,d)Números reais de -3.402823466E+38 a -1.175494351E-38 e de 1.175494351E-38 a

3.402823466E+38. m representa o tamanho do número de d representa o número de decimais.

char(m)

Uma string de tamanho fixo. m representa o tamanho da coluna. Caso o dado guardado nessa coluna seja menor que m, a diferença é preenchida com espaços vazios. Caso m não seja declarado, o tamanho considerado é 1. O tamanho vai de 0 a 255.

varchar(m)Funciona da mesma maneira que o char, porém o tamanho da string não é fixo (não existe o

preenchimento com espaços).

text / blob Strings com máximo de 65,535 caracteres.

tinytext / tinyblob Strings com máximo de 255 caracteres.

mediumtext / mediumblob Strings com máximo de 16,777,215 caracteres.

longtext / longblob Strings com máximo de 4,294,967,295 caracteres ou 4GB.

enum ('valor1','valor2',...)Guarda uma string que precisa ser igual a algum item da lista valor1, valor2,.... A lista pode ter no

máximo 65,535 itens.

date Datas com valor entre '1000-01-01' e '9999-12-31'. Perceba que o formato suporta é 'AAAA-MM-DD'.

time Horas com valor entre '-838:59:59' e '838:59:59'. O formato é 'HH:MM:SS'.

datetimeCombinação entre date e time. O formato é 'AAAA-MM-DD HH:MM:SS'. Suporta valores entre '1000-

01-01 00:00:00' e '9999-12-31 23:59:59'.

year Guarda somente o ano de uma data, em quatro dígitos.

Page 13: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 13 de 24

MySQLApagando tabelas:

DROP TABLE <nome_da_tabela>;

Alterando tabelas (incluindo colunas):

ALTER TABLE <nome_da_tabela> add <coluna> <tipo> after <coluna_anterior>;

Alterando tabelas (apagando colunas):

ALTER TABLE <nome_da_tabela> drop <coluna>;

Renomeando Tabela:

RENAME TABLE <bd>.<nome_antigo> TO <bd>.<novo_nome>;

Renomeando tabelas (outra forma):

ALTER TABLE <nome_tabela> RENAME TO <novo_nome>;

Renomeando campos:

ALTER TABLE <nome_tabela> CHANGE <nome_campo> <nome_campo> INT(3) NOT NULL...;ALTER TABLE <nome_tabela> CHANGE <nome_campo> <novo_nome_campo> INT(3) NOT NULL...;

DDL:

Page 14: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 14 de 24

MySQL

Inserindo dados na tabela ( Primeiro Modo – usado para um registro somente)

INSERT INTO <nome_da_tabela> SET <nome_da_coluna>=<'dado_a_ser_inserido‘>, <outra_coluna>=<'outro_dado‘>, ...;

Inserindo dados na tabela ( Segundo Modo - usado para vários registros de uma vez)

INSERT INTO <nome_da_tabela> (<coluna1>, <coluna2>,...) VALUES (<valor_da_coluna1>, <valor_da_coluna_2>,...);

DDL:

Page 15: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 15 de 24

MySQL

Alterando dados da tabela

UPDATE <nome_da_tabela> SET <coluna1>=<'valor_da_coluna1‘>, <coluna2>=<'valor_da_coluna2‘>, ... [WHERE <condição_para_alteração>] [ORDER BY <coluna>] [LIMIT <número_máximo>];

Apagando dados da tabela

DELETE FROM <nome_da_tabela>; (todos os dados)

DELETE FROM <nome_da_tabela> [WHERE <condição_para_apagamento>] [ORDER BY <coluna>] [LIMIT <número_máximo>];

DDL:

Page 16: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 16 de 24

MySQL

Selecionando dados da tabela

SELECT <colunas_a_selecionar> FROM <nome_da_tabela>

[WHERE <condição_para_seleção>] [ORDER BY <coluna>] [LIMIT <número_máximo>];

Aqui que começa a aplicação dos operadores relacionais em forma de

comandos SQL sobre os dados inseridos nas

tabelas criadas...

DML:

Page 17: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 17 de 24

Operadores Unários

• Projeção:SELECT <CAMPO1>,<CAMPO2>,...FROM <RELAÇÃO>;

• Exemplo:SELECT NOME, FUNCAOFROM EMPRESA;

Page 18: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 18 de 24

Operadores Unários

• Seleção:SELECT <CAMPO1>FROM <RELAÇÃO>WHERE <CONDIÇÃO> |AND/OR/LIKE...|;

• Exemplo:SELECT NOMEFROM EMPRESAWHERE SEXO=‘M’;

Page 19: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 19 de 24

Operadores Unários

• Seleção e Projeção (Juntos):SELECT <CAMPO1>,<CAMPO2>,...FROM <RELAÇÃO>WHERE <CONDIÇÃO> |AND/OR/LIKE...|;

• Exemplo:SELECT NOME, FUNCAOFROM EMPRESAWHERE SEXO=‘M’ AND IDADE > 35;

Page 20: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 20 de 24

• União:SELECT <CAMPO1>,<CAMPO2>,...FROM <RELAÇÃO>WHERE <CONDIÇÃO1> |AND/OR/LIKE...|UNIONSELECT <CAMPO1>,<CAMPO2>,...FROM <RELAÇÃO>WHERE <CONDIÇÃO2> |AND/OR/LIKE...|;

• Exemplo:SELECT NOME, FUNCAO, SALFROM EMPRESAWHERE NDEP = 30 AND SAL > 22000UNIONSELECT NOME,FUNCAO, SALFROM EMPRESAWHERE SEXO = ‘M’;

Operadores Binários

Têm que ser os mesmos!!!

São os mesmos!!!

Page 21: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 21 de 24

• Produto Cartesiano:SELECT <CAMPO1>, <CAMPO2>, ...FROM <RELAÇÃO1>, <RELACAO2, ...

• Exemplos:SELECT NOMEPROFESSOR, TURMA, NOMEALUNOFROM PROFESSORES, TURMAS, ALUNOS

ou

SELECT A.DTADMISSAOFROM ALUNOS A, PROFESSORES P;

Operadores Binários

Page 22: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 22 de 24

• Junção Natural (inner join):SELECT <CAMPO1>, <CAMPO2>, ...FROM <RELAÇÃO1>, <RELACAO2, ...WHERE <CONDIÇÃO DE ASSOCIAÇÃO>;

• Exemplo:SELECT P.NOME, NOTA, A.NOMEFROM PROFESSORES P, DISCIPLINAS D, ALUNOS A, NOTAS NWHERE P.NOME=D.NOMEP AND A.NOME=D.NOMEA AND A.NOME=N.NOMEA;

Operadores Binários

Page 23: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Slide nº 23 de 24

• Junção Natural, Projeção e Seleção (juntos):

SELECT <CAMPO1>, <CAMPO2>, ...FROM <RELAÇÃO1>, <RELACAO2, ...WHERE <CONDIÇÃO DE ASSOCIAÇÃO>,

<CONDIÇÃO2>;

• Exemplo:SELECT E.NOME, FUNCAO, D.NOMEFROM EMPREGADO E, DEPARTAMENTO DWHERE E.NUMDEP=D.NUMDEP AND SAL > 22000;

Operadores Binários

Page 24: Introdução ao MySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br Colégio da Imaculada Curso Técnico em Informática 2º Módulo.

Referências

• Manual de Referência Online do MySQL 4.1 (em Português). Disponível em: http://dev.mysql.com/doc/refman/4.1/pt/index.html PDF em: http://downloads.mysql.com/docs/refman-4.1-pt.pdf

• Tutorial do Professor. Disponível em: http://www.colegiodaimaculada.com.br/~tales/apostilas2M/mysql_tutorial.pdf

Slide nº 24 de 24