SQL Básica DML Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 22 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 1 / 16
1 Introdução 2 SQL DML INSERT SELECT UPDATE DELETE 3 Exercícios 4 Referências Bibliográficas Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 2 / 16
Introdução Quais os principais comandos DDL da SQL? Quais restrições devem ser consideradas quando criamos tabelas no banco de dados? Qual a relação entre a escolha da chave primária e a definição de restrições de chave estrangeira? Como uma aplicação faz consultas em um banco de dados? Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 3 / 16
SQL DML Linguagem de Manipulação de Dados. A partir da DML: podem ser incluídos registros no banco de dados; registros podem ser removidos do banco de dados; os registros do banco de dados podem ser alterados; pode-se realizar consultas no banco e obter um conjunto de tuplas ou seja relações. Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 4 / 16
SQL DML Principais comandos INSERT : Insere um registro em uma tabela. SELECT : Obtém relações de um conjunto de tabelas. UPDATE: Modifica um registro de uma tabela. DELETE: Remove um registro de uma tabela. Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 5 / 16
Inserir registro INSERT INSERT INTO <nome da tabela> (<coluna1>,...) {VALUES (<dado da coluna 1>,...) SELECT...},... OBS: Coluna AUTO_INCREMENT não precisa ser especificada. Por exemplo: INSERT INTO ALUNO (MATRICULA, NOME) VALUES ( 1, Manoel ); Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 6 / 16
Obter Relações SELECT SELECT [DISTINCT] {[tabela apelido].]<coluna1>,... } FROM <tabela1> [AS <apelido1>],... [WHERE] <condição booleana de seleção>; Acrescentar mais de uma tabela gera uma relação que é o produto cartesiano (combinação) entre as tabelas. DISTINCT: Elimina tuplas duplicadas. Por exemplo: SELECT FROM ALUNO; SELECT A.MATRICULA, TELEFONE.DDD, TELEFONE.NUMERO FROM ALUNO AS A, TELEFONE WHERE A.MATRICULA = TELEFONE.A_MATRICULA; Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 7 / 16
WHERE Condição booleana de seleção A condição WHERE permite: a comparação entre colunas entre si e constantes literais, por meio dos seguintes simbolos: =, <, <=, >, >=, <>; a inclusão de operadores lógicos, AND ou &&, OR ou, XOR, NOT ou!; identificar subcadeias de caractares com o comando LIKE e: % : substitui um número de 0 ou mais caracteres. _: substitui um único caracter. Exemplo1: SELECT NOME FROM FUNCIONARIO WHERE ENDERECO LIKE %Paraná% ; Exemplo2: SELECT NOME FUNCIONARIO WHERE DATA_NASC LIKE 198_ ; Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 8 / 16
WHERE Condição booleana de seleção A condição WHERE permite: recuperar valores dentro de um intervalo (BETWEEN). SELECT * FROM FUNCIONARIO WHERE (SALARIO BETWEEN 1.000 AND 3.000); Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 9 / 16
ORDER BY Ordenação do resultado da consulta SELECT SELECT (...) ORDER BY <coluna1> [{ASC DESC}], <coluna2> [{ASC DESC}],...; Ordena a partir da coluna 1 o resultado da consulta, depois pela coluna2 e assim por diante. Por exemplo: Obter a lista ordenada de funcionários dentro de cada departamento. SELECT DEP.ID_DEP, DEP_NOME, FUNC_NOME FROM DEPARTAMENTO AS DEP, FUNCIONARIO AS FUNC WHERE DEP.ID_DEP = FUNC.ID_DEP ORDER BY DEP.ID_DEP, FUNC_NOME; Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 10 / 16
UNION, EXCEPT, INTERSECT UNION, EXCEPT, INTERSECT SELECT (...) [{UNION EXCEPT INTERSECT }] SELECT (...) UNION: União das duas relações; EXCEPT: Diferença entre as duas relações; INTERSECT: Interceção entre as duas relações. Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 11 / 16
Atualizar Registro UPDATE UPDATE <tabela1>,... SET <coluna> =<dado>,... WHERE <condição booleana de seleção> Por exemplo: UPDATE ALUNO SET NOME = JOÃO WHERE MATRICULA = 1; UPDATE ALUNO, TELEFONE SET DDD =41, NUMERO =98457632 WHERE ALUNO.MATRICULA = TELEFONE.ALUNO_MATRICULA AND ALUNO.NOME = Manoel Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 12 / 16
Deletar Registro DELETE DELETE FROM <nome da tabela> WHERE <condição booleana de seleção> Por exemplo: DELETE FROM ALUNO WHERE ALUNO.MATRICULA = 1 ; Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 13 / 16
Exercícios 1 Utilize o comando INSERT para inserir dados em todas as tabelas do banco de dados LIVRARIA. Pelo menos um dos clientes deve ter nome João. 2 Optenha a lista de livros que o João comprou e sua respectiva data de aquisição. 3 Optenha a lista de clientes que compraram os mesmos livros. 4 Optenha a lista de livros de cada editora e a sua respeciva data de aquisição. As editoras e os títulos de livros devem ser odenados em ordem alfabética. 5 Obtenha a lista de livros com a sua respectiva quantidade em estoque. 6 Utilize o comando UPDATE para atualizar o nome do cliente João por João Silva. 7 Aumente 10% no preço de cada livro. 8 Simule um erro de digitação no ISBN e no CPF. Use UPDATE para para corrigir o erro. 9 Simule o cadastro incorreto de um livro. Remova este registro e o inclua novamente. Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 14 / 16
Bibliografia Básica DATE, C. J. Introdução aos Sistemas de Banco de Dados. 8a ed. Rio de Janeiro: Campus, 2004. NAVATHE, S. B, ELMASRI, R. Sistemas de Banco de Dados. 6a ed. São Paulo: Pearson, 2012. SILBERSCHATZ, A., KORTH, H. F., SUDARSHAN, S. Sistema de Banco de Dados. 5a edição. Rio de Janeiro: Campus, 2006. Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 15 / 16
Bibliografia complementar HEUSER, C. A. Projeto de Banco de Dados. 6a ed. Porto Alegre: Bookman, 2009. ROB, P., CORONEL, C. Sistemas de Banco de Dados - Projeto, Implementação e Administração. 8a edição. Rio de Janeiro: Cengage Learning, 2011. RAMAKRISHNAN, R., GEHRKE, J. Sistemas de Gerenciamento de Banco de Dados. 3a. Edição. Porto Alegre: Bookman, 2008. Prof. Marcos A. Schreiner (UFPR) 22 de outubro de 2015 16 / 16