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
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
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;
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
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.
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.
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:
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:
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:
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”])
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:
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.
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:
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:
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:
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:
Slide nº 17 de 24
Operadores Unários
• Projeção:SELECT <CAMPO1>,<CAMPO2>,...FROM <RELAÇÃO>;
• Exemplo:SELECT NOME, FUNCAOFROM EMPRESA;
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’;
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;
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!!!
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
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
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
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
Top Related