(Linguagem de Consulta Estruturada) Banco de Dados I Introdução ao SQL (Linguagem de Consulta Estruturada) Prof. M.Sc. Alessandro Kraemer kraemer@utfpr.edu.br
Cronograma Classificação dos comandos SQL Categoria DML: Atividades Formatos do comando para Inserção (INSERT) Cláusula WHERE Formato do comando para Remoção (DELETE) Atividades
Classificação dos Comandos SQL DDL → Linguagem de Definição de Dados: Criação de Bases e Tabelas (CREATE) Alteração de Bases e Tabelas (ALTER) Remoção de Bases e Tabelas (DROP)
Classificação dos Comandos SQL DCL → Linguagem de Controle de Dados: Controle de Usuários e Senhas (GRANT e REVOKE) DTL → Linguagem de Transação de Dados: Delimitação de blocos de transação COMMIT (efetiva) e ROLLBACK (volta a estado anterior)
Classificação dos Comandos SQL DML → Linguagem de Manipulação de Dados: Inserção de registros (INSERT) Atualização de registros (UPDATE) Seleção de registros (SELECT) Remoçãode registros (DELETE)
Formatos do Comando para Inserção de Registros SINTAXE COMPLETA INSERT INTO NomeTabela (campo1, campo2,...) VALUES (valor1,valor2,...) Os valores devem ser inseridos na ordem de declaração dos campos. Exemplo: 1º Valor para o 1º Campo Se o campo for tipo que envolve Caracteres, então devem ser utilizadas aspas simples na especificação do valor. Ex.: INSERT INTO Funcionario (vchNome, intIdade) VALUES ('Humatalde',28)
Formatos do Comando para Inserção de Registros Não é obrigatório utilizar a Sintaxe Completa. INSERT INTO NomeTabela (campo1, campo2,...) VALUES (valor1,valor2,...) A declaração dos campos pode ser retirada. Mas a quantidade de valores deve ser igual a quantidade de campos que existirem na Tabela.
Formatos do Comando para Inserção de Registros Outros exemplos de uso do comando INSERT: INSERT INTO Funcionario (vchNome,intIdade) VALUES ('Fulano',23), ('Humatalde',22), ('Humatalde',27), ('Beltrano',20) INSERT INTO XXXX (datAlteracao) VALUES (now( ) ) Uso de funções do MySQL
Cláusula WHERE Os demais comandos DML são normalmente utilizados com cláusulas que tem o papel de filtragem de registros. Por exemplo, remover somente os registros de reservas que são anteriores ao ano de 2009.
Cláusula WHERE Juntamente com o WHERE são utilizadas outras cláusulas de comparação e operação lógica. Claúsulas de comparação: = > < => =< <> (ou !=) is null between (significa ENTRE, ou Intervalo)
Cláusula WHERE Operadores Lógicos: AND OR Exemplo: DELETE FROM NomeTabela WHERE VchNOME = 'Humatalde' AND intIdade = 27
Formato do Comando para Remoção de Registros SINTAXE COMPLETA DELETE FROM NomeTabela Desta maneira todos os registros serão removidos. Para evitar que isto aconteça, utiliza-se a cláusula WHERE.
Formato do Comando para Remoção de Registros EXEMPLOS: DELETE FROM Funcionario WHERE intIdade <= 23 DELETE FROM Funcionario WHERE intIdade BETWEEN 1 AND 18 DELETE FROM Funcionario WHERE intIdade IS NULL DELETE FROM Funcionario WHERE datRegistro = NOW( )
Atividades 1) Crie o Projeto Físico com base no seguinte Modelo Conceitual/Projeto Lógico. Utilize a ferramenta que desejar. Integridade Referencial: ON UPDATE → Cascade ON DELETE → Set Null
Atividades - departamentos que não são climatizados 2) O DER apresentado anteriormente está em que Forma Normal? 3) Utilize comandos SQL no Query Browser para Inserir registros nas tabelas. A inserção deve acontecer primeiramente em qual tabela? 4) Observe atentamente os registros das tabelas atuais. Utilize o comando DELETE e a cláusula WHERE para remover registros com as seguintes características: - departamentos que não são climatizados - funcionários que não estão alocados em nenhum Dpto - funcionários que nasceram depois de 1991-01-01 - a funcionária “Humatalde Mequetrefe” que não tem filhos - funcionários que tem entre 0 e 2 filhos