24
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

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

Embed Size (px)

Citation preview

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