Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Banco de dados MySQL e comandos SQL Prof. Msc. Allan CostaProf. Msc. Allan Costa • SQL (Structured Query Language) • Desenvolvida pela IBM - 1970 para bds relacionais • Operações não procedurais de manipulação de conjuntos de dados • Padrão ANSI 86, 89 e 92 • Suporte a linguagens de programação • Atualmente: em direção ao padrão SQL3 HistHistóóricorico MySql - Introdução • O MySql é um servidor de banco de dados cliente- servidor, relacional, multi-usuário e multi-thread. • SQL – Structured Query Language É uma linguagem estruturada de consulta que torna possível a manipulação do banco de dados. MySql • Empresa desenvolvedora: T.c.X DataKonsultAB • A equipe tem usado o MySql desde 1996 em um ambiente com mais de 40 bancos de dados contendo 10.000 tabelas, somando aproximadamente 100Gbytes de dados (na época) • Atualmente o MySql foi adquirido pela Sun. Características • Suporta grande número de usuários simultâneos • Alta velocidade de execução • Plataformas: Windows, Linux, OS/2, Mac OS X , etc... • Manipula grandes bancos de dados, na ordem de 50.000.000 registros • ACID Transactions: responsável por construir aplicações críticas de maneira confiável e segura; • Stored Procedures; • Triggers; • Views; • Information Schema: provê rápido acesso aos metadados; • Distributed Transactions (XA): suporta transações complexas sobre múltiplos bancos de dados; Comandos Básicos • mysql –u <usuário> -p <ENTER> – Conectar com o banco de dados mysql • show databases; – Lista todos os bancos de dados existentes • use <banco de dados>; – Seta o banco de dados para ser utilizado • show tables; – Lista as tabelas do banco de dados setado SQL - Comandos • SELECT Faz consultas • INSERT Insere um registro • UPDATE Modifica um registro • DELETE Exclui um registro Modelo Entidade Relacionamento • Sem relacionamento • Com relacionamento Criando o banco de dados • Utilize o console ou qualquer ferramenta gráfica; • Comando para criar banco de dados; – CREATE DATABASE <banco de dados> • Exemplo: – CREATE DATABASE BD1NA; Criando a tabela baseada no modelo /* Tabela aluno */ Create table Aluno ( Matricula Varchar(20) NOT NULL , nome Varchar(200) , idade Integer(3) , email Varchar(100) , cd_turma Varchar(5) NOT NULL , Primary Key (Matricula) ); /* Tabela Turma */ Create table Turma ( cd_turma Varchar(5) NOT NULL , nome_turma Varchar(70) , Primary Key (cd_turma) ); • Show tables; • Describe turma; • Describe aluno; Inserindo Informação no banco de dados • INSERT INTO tabela VALUES (null, ‘joao’, 10, ...) OU informando a sequencia dos campos a serem inseridos • INSERT INTO tabela (<campo1>, <campo2>, ...) VALUES (null, ‘joao’, 10, ...) Exemplo • Insert into turma (cd_turma, nome_turma) VALUES (“a1”, “BIA2009”); • Insert into turma (cd_turma, nome_turma) VALUES (“a2”, “LIC2009”); • Insert into turma (nome_turma, cd_turma) VALUES (“BIA2010”, “a3”); • Insert into turma VALUES (“a4”, “BIA2011”); • Insert into turma VALUES (“a5”, “LIC2011”); Exercício • Insira 5 informações na tabela aluno: matricula nome idade email cd_turma 1 Edvar 15 e@ a4 2 João 23 j@ a5 3 Maria 23 m@ a3 5 Remo 43 re@ a1 8 Cunha 55 souleao@ a1 Exercício • Crie: – Banco de dados empregado; – Tabela conforme o modelo E-R abaixo: Recursos das Instruções SELECT SQL SeleçãoProjeção Tabela 1 Tabela 2 Tabela 1Tabela 1 Junção Instrução SELECT Básica SELECT coluna1,coluna2 FROM tabela; SELECT coluna1,coluna2 FROM tabela; • SELECT identifica quais colunas • FROM identifica qual tabela SELECT * FROM departamento; Selecionando TODAS as Colunas Selecionando Colunas Específicas SELECT departamento_id, localizacao_id FROM departamento; Criando Instruções SQL • As instruções SQL não fazem distinção entre maiúsculas e minúsculas. • As instruções SQL podem estar em uma ou mais linhas. • As palavras-chave não podem ser abreviadas ou dividas de uma linha para outra. • Normalmente, as cláusulas são colocadas em linhas separadas. • Os recuos são usados para aperfeiçoar a legibilidade. Linhas Duplicadas A exibição default das consultas é de todas as linhas, incluindo linhas duplicadas. SELECT empregado_id FROM departamento; SELECT empregado_id FROM departamento; … Eliminando Linhas Duplicadas Elimine linhas duplicadas usando a palavra-chave DISTINCT na cláusula SELECT. SELECT DISTINCT empregado_id FROM departamento; Exercício Baseado na tabela no quadro faça o que se pede abaixo: 1. Faca uma consulta para exibir todos os dados da tabela empregados. 2. Faca uma consulta para exibir todos os dados da tabela LOCALIZACAO. 3. Selecione o nome do empregado da tabela empregado. Respostas • SELECT * FROM DEPARTAMENTOS; • SELECT * FROM LOCALIZACAO; • SELECT empregado_nome FROM EMPREGADOS; Restrições – Chave Estrangeira • Aplicação do conceito de integridade referencial entre relações por meio de chaves estrangeiras (FOREIGN KEY) • Tipos de restrições com Chaves estrangeiras – ON UPDATE ou ON DELETE – CASCADE – SET NULL – NO ACTION Exemplo CREATE TABLE pai( Id_pai INT NOT NULL, PRIMARY KEY (id_pai)); CREATE TABLE filho( Id_filho INT NOT NULL, CE_pai VARCHAR(12), PRIMARY KEY(id_filho), INDEX CE_id_pai(CE_pai), FOREIGN KEY(CE_pai) REFERENCES pai(id_pai) ON UPDATE CASCADE ON DELETE CASCADE); Da forma certa... CREATE TABLE pai( Id_pai INT NOT NULL, PRIMARY KEY (id_pai)); CREATE TABLE filho( Id_filho INT NOT NULL, CE_pai INT, PRIMARY KEY(id_filho), INDEX CE_id_pai(CE_pai), FOREIGN KEY(CE_pai) REFERENCES pai(id_pai) ON UPDATE CASCADE ON DELETE CASCADE);