Baixe o app para aproveitar ainda mais
Prévia do material em texto
SQL PROF.: JONATHAS JIVAGO DE ALMEIDA CRUZ INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA PIAUÍ Campus Piripiri Tecnologias e Linguagens para Banco de Dados SQL A álgebra relacional fornece uma notação formal e concisa para representar consultas Os sistemas comerciais exigem uma linguagem mais amigável A SQL é a linguagem de consulta mais influente comercialmente Embora ela seja descrita como uma linguagem de consulta ela pode fazer muito mais do que simplesmente consultar no banco de dados 2 SQL Structured Query Language - SQL, ou Linguagem de Consulta Estruturada ou SQL. Trata-se de uma linguagem específica para a manipulação de tabelas de dados; A linguagem padrão universal para manipular bancos de dados relacionais através dos SGBDs. 3 SQL A SQL possui várias partes 1 – Linguagem de definição de dados (DDL) 2 – Linguagem de manipulação de dados (DML) 3 – Definição de Views 4 – Controle de Transações 5 – Autorização 4 Linguagens do Banco de Dados DML - Linguagem de Manipulação de Dados Recuperação de Informações Inserção de novas informações Exclusão de informações Modificação de informações armazenadas no banco de dados 5 Linguagens do Banco de Dados DDL - Linguagem de Definição de Dados Definição do Esquema Restrições de domínio Integridade referencial 6 SQL VS MYSQL Só para constarmos o MySQL não é uma extensão do SQL. O MySQL é um Sistema de Gerenciamento de Banco de Dados O SQL é a linguagem para definição e manipulação dos dados no SGBD. 7 SQL VS MYSQL Para utilizar as características e o funcionamento do SQL é preciso se servir de um Sistema de Gerenciamento de Bancos de Dados (SGBD), isto é, de um ambiente no qual possamos utilizar os comandos desta linguagem para manipular dados. 8 SQL – REGRAS (CONVENÇÕES) Todas as palavras-chave das instruções SQL serão escritas em maiúsculo; Sempre no final de cada instrução, deve ser terminado com um ponto-e-virgula (;) 9 Instalação do MySQL Baixar o MySQL do site oficial e executar o instalador http://dev.mysql.com/downloads/mysql/ 10 Instalação do MySQL 11 Porque o MySQL? 12 CONEXÃO COM MYSQL Precisamos utilizar um comando para acessar o prompt do MySQL. Ao instalarmos o MySQL é obrigatório criar um usuário e senha para o acesso dos Banco de Dados. O usuário é root e a senha é root. Estas informações (usuário e senha) são necessários para acessar o banco de dados. 13 CONEXÃO COM MYSQL Abrir o Prompt Comando do Windows. Atalho: Win + R Executar: cmd 14 CONEXÃO COM MYSQL Abrir o Prompt Comando do Linux mysql –u usuario –p 15 Como criar um Banco de Dados Para criar de um banco de dados o comando é simples. mysql> CREATE DATABASE meu-banco; CREATE DATABASE seguido do nome desejado do banco de dados. 16 Mostrar Banco de Dados Existentes Podemos verificar rapidamente a existência do BD recém-criado, bem como a de todos os outros criados anteriormente, utilizando a instrução SHOW DATABASES (mostrar bancos de dados); mysql> SHOW DATABASES; 17 Deletar um Banco de Dados Para excluir um banco de dados, usa-se o comando DROP DATABASE, seguido do nome do banco de dados que deseja deletar. mysql> DROP DATABASE meu-banco; 18 Cuidado ao Deletar É preciso ressaltar que, ao apagar um banco de dados, todas as suas tabelas e os dados nelas contidos também serão apagados e, portanto, perdidos de maneira irreversível. ENTÃO, CUIDADO!!! ☺ 19 Usar um banco de Dados Como vimos, podemos criar vários bancos de dados, porém, podemos manipular apenas um por vez. Assim, antes de começar, é preciso selecionar qual será o banco de dados que queremos alterar. Isso é feito utilizando o comando USE (“usar” em inglês), seguido pelo nome do banco de dados em questão. 20 Usar um banco de Dados Comando para utilizar um banco de dados: mysql> USE meu-banco; Esse comando é sempre necessário quando se quer realizar qualquer o operação (inserir dados, alterar relações, remover índices, etc.) no banco de dados. 21 Como criar tabelas A regra base do comando para criar uma tabela no banco de dados é o comando para criar tabela, seguido do nome da tabela. Também é necessário informar os campos da tabela, seu tipo e seu tamanho. 22 Como criar tabelas mysql> CREATE TABLE Pessoa ( nome CHAR (15), sobrenome CHAR (20) ); Nome da Tabela Tamanho do Campo Tipo de Dados Atributo da Tabela Comando SQL para criar tabelas 23 Tipos de dados em SQL Existem vários tipos possíveis de dados no SQL, os mais comuns são: 1. INT ou INTEGER: Para inteiros de tamanho normais 2. DOUBLE: pra números com ponto flutuante 3. NUMERIC: valor numérico com n dígitos e d casas decimais 4. TIMESTAMP ou DATE: Para data e hora e pode ser atribuídos automaticamente; 5. CHAR e VARCHAR: Para caracteres até no máx. 255 de tamanho; 6. TEXT ou LONGTEXT: Para textos longos; 24 Tipos de dados em SQL 7. TIME: Para horas 25 Mostrar Tabelas Para exibir a lista de tabelas do banco de dados que está usando atualmente, basta utilizar o comando: mysql> SHOW TABLES; 26 Remover Tabelas Para remover uma tabela do banco de dados que está usando atualmente, basta utilizar o comando: mysql> DROP TABLE <tabela>; 27 Exemplo de Tabela matricula nome idade endereco Aluno CREATE TABLE aluno ( matricula int(11) NOT NULL AUTO_INCREMENT, nome varchar(100), idade int(2), endereco text, PRIMARY KEY (matricula) ); int(11) varchar(100) int(2) text 28 Mostrar Estrutura Da Tabela Podemos também analisar a estrutura de uma tabela de maneira aprofundada usando o comando DESCRIBE (“descrever”, em inglês), seguido pelo nome da tabela. mysql> DESCRIBE minha-tabela; OU mysql> EXPLAIN minha-tabela; OU mysql> DESC minha-tabela; 29 Inserir Valores Na Tabela O comando de INSERIR é um dos mais utilizados. Para inserir valores em uma determinada tabela, basta seguir a regra: mysql> INSERT INTO nome_da_tabela (‘campo1’, ‘campo2’, ...) VALUES (‘valor1’, ‘valor2’, ...); 30 Ex.: Inserir dados na tabela Alunos matricula nome idade endereco 1 Juca 32 Rua Melinda 2 Melissa 20 Rua Dom Pedro 3 Thiago 17 Rua Quinze Alunos INSERT INTO alunos (nome, idade, endereço) VALUES ('Juca’, 32, ‘Rua Melinda’) ; 31 Selecionar Valores Da Tabela É possível selecionar valores da tabela, utilizando o comando SELECT do SQL. O comando SELECT é, basicamente, a ferramenta principal para consultar informações de um banco de dados, por isso, é comumente chamado de query. mysql> SELECT dados_desejados FROM nome_tabela; 32 Alterar Tabela Para alterar uma tabela, basta utilizar ALTER TABLE seguido do nome da tabela na qual deseja-se alterar e qual operação de alteração quer fazer. Operações: Adicionar novo campo, renomear nome da tabela e etc. As operações estão em cores destacadas. 33 Renomear, Adicionar, Modificar e Excluir Atributos Comando para renomear o nome de uma tabela: mysql> ALTER TABLE pessoas RENAME TO cadastros; Comando para adicionar um atributo: mysql> ALTER TABLE pessoas ADD COLUMN idade INT(3); Comando para alterar o tipo de um atributo: mysql> ALTER TABLE pessoas MODIFY idade INT(5); Comando para remover um atributo: mysql> ALTER TABLE pessoas DROP idade; Comando para renomear um atributo: mysql> ALTER TABLE pessoas CHANGE idade age INT(5); Configurar valor default mysql> ALTER TABLE pessoas ALTER idade SET DEFAULT 5; 34 Atualizar campos Esse comando atualiza os valores de campos em tabelas: mysql> UPDATE <nome_da_tabela> SET atributo_1=valor_1, atributo_2=valor_2, ... WHERE algum_atributo=algum_valor; 35 Atividade Façam as seguintes tabelas id nome email 1 Oreilly oreilly@email.com 2 Wrox wrox@email.com 3 Apress apress@email.com 4 Casa do Código cc@email.com editora id titulopreco 1 Aprendendo C# 89.90 2 Introdução ao JSF 2 122.90 3 JSF 2 Avançado 149.90 4 A lógica do Jogo 39.90 livro No entanto, sabemos que livros são publicados por editoras. Hum! Como efetivamos um relacionamento usando SQL? E como ficam as tabelas? 36 Mapeamento de Relacionamentos 37 Temos a seguinte situação: editora id nome email livro id titulo preco Publicar N1 38 Relacionamentos e chaves estrangeiras: Devemos seguir as seguintes etapas: 1. As entidades são transformadas em tabelas; 2. Os atributos são transformados em colunas da tabela 3. Em seguida deve ser mapeado o relacionamento, obedecendo- se a cardinalidade. OBS.: Para cada tipo de cardinalidade, temos regras a serem seguidas. 39 Mapeando Relacionamento com Cardinalidade 1:N Como resultados das etapas 1 e 2 temos a criação das tabelas: id nome email Editora id titulo preco Livro Nesse momento, devemos mapear o relacionamento entre as tabelas! idEditora 40 Adicionando Chave Estrangeira O seguinte comando adiciona uma chave estrangeira a uma tabela já criada: mysql> ALTER TABLE <tabela1> ADD CONSTRAINT fk_tabela1_tabela2 FOREIGN KEY (<atributo_chave_estrangeira>) REFERENCES tabela2(atributo_chave_primária); 41 Adicionar Chave Estrangeira O seguinte comando adiciona uma chave estrangeira a uma tabela durante a criação da tabela: mysql> CREATE TABLE <tabela1>( <atributo_1> <tipo de dado>[NOT NULL], ..., PRIMARY KEY (<atributo_1>,<atributo_2>, ...), CONSTRAINT fk_tabela1_tabela2 FOREIGN KEY (<atributo>) REFERENCES <tabela2>(atributo_chave_primária)); 42 Listando Restrições (chaves, índices) das tabelas Comandos para exibir a estrutura da tabela mysql> EXPLAIN <tabela>; mysql> DESCRIBE <tabela>; mysql> DESC <tabela>; mysql> SHOW COLUMNS FROM <tabela>; Os comandos listados acima não exibem os índices e nem as chaves estrangeiras presentes nas tabelas. O comando que faz isso é o seguinte: mysql> SHOW CREATE TABLE <tabela>; 43 Remover Chave Estrangeira Esse comando apaga a chave estrangeira; mysql> ALTER TABLE tabela1 DROP FOREIGN KEY fk_tabela1_tabela2; Esse comando apaga o índice criado na tabela; mysql> ALTER TABLE tabela1 DROP INDEX fk_tabela1_tabela2; 44 Mapeando de Relacionamento com Cardinalidade 1:1 Professor cpf nome endereco Projeto codigo Descrição Gerenciar 11 45 Mapeamento da Cardinalidade 1:1 Como resultados das etapas 1 e 2 temos a criação das tabelas: cpf nome endereco Professor codigo descricao Projeto Nesse momento, devemos mapear o relacionamento entre as tabelas! cpf 46 Mapeamento da Cardinalidade 1:1 Como resultados das etapas 1 e 2 temos a criação das tabelas: CPF nome endereco Professor codigo descricao Projeto Nesse momento, devemos mapear o relacionamento entre as tabelas! codigo 47 Mapeando de Relacionamento com Cardinalidade N:N Professor CPF nome endereco Disciplina codigo nome Ministrar NN 49 Mapeamento da Cardinalidade N:N Como resultados das etapas 1 e 2 temos a criação das tabelas: cpf nome endereco Professor codigo nome Disciplina cpf codigo Nesse mapeamento, devemos criar uma nova tabela! 50 Mapeamento de Particularidades do MER 51 Mapeamento de Atributo multivalorado Professor Telefone CPF Nome 52 Atributo multivalorado mapeado para o modelo relacional Como resultados das etapas 1 e 2 temos a criação da tabelas: cpf nome professor telefone_professor Nesse mapeamento, devemos criar uma nova tabela! cpf telefone 53 Mapeando de Atributo composto Professor Telefone CPF Nome Endereço Rua Cidade Estado CEP 54 Atributo composto mapeado para o modelo relacional Como resultados das etapas 1 e 2 temos a criação da tabelas: cpf nome professor telefone_professor Nesse mapeamento, o endereço é desmembrado em seus subatributos! cpf telefone enderecorua cidade estado cep 55 Mapeamento de relacionamento recursivo Monitorar Aluno 1 N matricula Nome 56 Mapeamento de relacionamento recursivo Como resultados das etapas 1 e 2 temos a criação da tabela: matricula nome aluno Nesse mapeamento, devemos expandir a tabela com um novo atributo! matricula_monitor 57 Uffffaa!!!!!! Acabamos! 58 Outras particularidades Mapeamento de relacionamentos Ternários, Quaternários, ... Mapeamento de generalizações/especializações Mapeamento de agregação 59
Compartilhar