240 likes | 313 Views
Colégio da Imaculada Curso Técnico em Informática. Introdução ao MySQL 5.1. Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br. 2º Módulo. 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)
E N D
Colégio da Imaculada Curso Técnico em Informática IntroduçãoaoMySQL 5.1 Prof. Tales K. Cabral talescabral@colegiodaimaculada.com.br 2º Módulo
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
MySQL Instalação: • Baixar o programa; • Executar o arquivo baixado; • 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. • Obter/criar um script (arquivo .bat): • Definição das regras para a execução do banco de dados (ant. ao Windows XP); • Definição das configurações do administrador (ant. ao Windows XP); • Executar o banco e configurar DDL e DML;
MySQL O 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
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.
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.
MySQL DDL: 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;
MySQL DDL: 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;
MySQL DDL: 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>, ... );
MySQL DDL: • 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) ); 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 algarismos AUTO_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ária FOREIGN KEY / REFERENCES: chave estrangeira CHECK: determina uma verificação para inserção de valores. Ex.: CHECK (sexo in [“M”,”F”])
MySQL DDL: 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 tablecliente ( 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), cidadechar(20) DEFAULT ‘Maceio’ );
MySQL DDL: Tipos de Dados
MySQL DDL: Apagando 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...;
MySQL DDL: 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>,...);
MySQL DDL: 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>];
MySQL DML: 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...
Operadores Unários • Projeção: SELECT <CAMPO1>,<CAMPO2>,... FROM <RELAÇÃO>; • Exemplo: SELECT NOME, FUNCAO FROM EMPRESA;
Operadores Unários • Seleção: SELECT <CAMPO1> FROM <RELAÇÃO> WHERE <CONDIÇÃO> |AND/OR/LIKE...|; • Exemplo: SELECT NOME FROM EMPRESA WHERE SEXO=‘M’;
Operadores Unários • Seleção e Projeção (Juntos): SELECT <CAMPO1>,<CAMPO2>,... FROM <RELAÇÃO> WHERE <CONDIÇÃO> |AND/OR/LIKE...|; • Exemplo: SELECT NOME, FUNCAO FROM EMPRESA WHERE SEXO=‘M’ AND IDADE > 35;
Operadores Binários • União: SELECT <CAMPO1>,<CAMPO2>,... FROM <RELAÇÃO> WHERE <CONDIÇÃO1> |AND/OR/LIKE...| UNION SELECT <CAMPO1>,<CAMPO2>,... FROM <RELAÇÃO> WHERE <CONDIÇÃO2> |AND/OR/LIKE...|; • Exemplo: SELECT NOME, FUNCAO, SAL FROM EMPRESA WHERE NDEP = 30 AND SAL > 22000 UNION SELECT NOME,FUNCAO, SAL FROM EMPRESA WHERE SEXO = ‘M’; Têm que ser os mesmos!!! São os mesmos!!!
Operadores Binários • Produto Cartesiano: SELECT <CAMPO1>, <CAMPO2>, ... FROM <RELAÇÃO1>, <RELACAO2, ... • Exemplos: SELECT NOMEPROFESSOR, TURMA, NOMEALUNO FROM PROFESSORES, TURMAS, ALUNOS ou SELECT A.DTADMISSAO FROM ALUNOS A, PROFESSORES P;
Operadores Binários • Junção Natural (inner join): SELECT <CAMPO1>, <CAMPO2>, ... FROM <RELAÇÃO1>, <RELACAO2, ... WHERE <CONDIÇÃO DE ASSOCIAÇÃO>; • Exemplo: SELECT P.NOME, NOTA, A.NOME FROM PROFESSORES P, DISCIPLINAS D, ALUNOS A, NOTAS N WHERE P.NOME=D.NOMEP AND A.NOME=D.NOMEA AND A.NOME=N.NOMEA;
Operadores Binários • 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.NOME FROM EMPREGADO E, DEPARTAMENTO D WHERE E.NUMDEP=D.NUMDEP AND SAL > 22000;
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