Marcelo Henrique dos Santos

Documentos relacionados
SQL (Structured Query Language)

SQL (Structured Query Language)

SQL (Structured Query Language)

BCD29008 Banco de dados

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

SQL. Prof. Roger Cristhian Gomes

Banco de Dados. Professora: Luciana Faria

Banco de Dados I Introdução SQL

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SQL (STRUCTUREDQUERY LANGUAGE)

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Rápida revisão do Modelo Relacional

Bancos (Bases) de Dados

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Introdução ao PostgreSQL

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

SQL (Structured Query Language)

IMPLEMENTAÇÃO DE BANCO DE DADOS

IFSP Campus Presidente Epitácio. BND Banco de Dados. Professora: Márcia Jani. 1.1 Apresentação: Márcia Jani

Comandos de Manipulação

A linguagem SQL

SQL (STRUCTUREDQUERY LANGUAGE)

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

SQL (Tópicos) Structured Query Language

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

BANCO DE DADOS PARA NINJAS

Introdução ao Banco de Dados. Banco de Dados

SQL Consultas Básicas

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Subconsulta na Cláusula FROM

SQL Linguagem de Definição de Dados

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Manipulação de Dados com SQL

SQL Básica. Andre Noel

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

ANÁLISE E PROJETO DE BANCO DE DADOS

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

MySql. Introdução a MySQL. Andréa Garcia Trindade

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Linguagem de Consulta Estruturada SQL- DML

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Linguagem de Consulta Estruturada (SQL)

Prof. Fabiano Taguchi

Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Linguagem SQL Sub-linguagem DDL

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

SQL. Prof. Márcio Bueno.

Linguagem de Consulta Estruturada SQL- DML

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

PHP INTEGRAÇÃO COM MYSQL PARTE 1

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

GBC043 Sistemas de Banco de Dados

A linguagem SQL

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Modelagem Física e SQL

BANCO DE DADOS GERENCIAL 1 A U L A 2

Subconsulta na Cláusula FROM

Discussão exercício aula 18. SQL Linguagem de Manipulação de Dados. Discussão exercício aula 18. Discussão exercício aula 18 SQL.

MODELAGEM DE DADOS MODELO FÍSICO

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

SQL-99: Esquema de BD EMPRESA

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Banco de Dados. Prof. Dr. Joel da Silva SQL - Introdução

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Bases de Dados. DDL Data Definition Language

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

BANCO DE DADOS PARA WEB

Structured Query Language (SQL) Aula Prática

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

Transcrição:

Mestrado em Educação (em andamento) MBA em Marketing e Vendas (em andamento) Especialista em games Bacharel em Sistema de Informação Email: marcelosantos@outlook.com

AULA 03 SQL (Structure Query Language)

SQL Linguagem para: Definição de dados: criação das estruturas Data Definition Language (DDL) Manipulação de dados: atualização e consultas Data Manipulation Language (DML) 3

Histórico Linguagem SQUEL desenvolvida pela IBM para um banco de dados experimental R Baseada no padrão ANSI e ISO: SQL-86 SQL-89 SQL-92 SQL:1999 SQL:2003 A maioria dos SGBD comerciais suportam o SQL-92, e algumas das caracteristicas das últimas versões 4

Mais SQL SQL é considerada a razão principal para o sucesso dos bancos de dados relacionais comerciais Tornou-se a linguagem padrão para bases relacionais Funciona entre diferentes produtos Embedded SQL: Java, C/C++, Cobol Fácil uso para o usuário 5

Permite especificar: SQL COMO LINGUAGEM DE DEFINIÇÃO DE DADOS O esquema de cada relação O domínio dos valores associados a cada atributo Restrições de integridade O conjunto de índices Visões Permissão de acesso às relações 6

DDL (Data Definition Language)

Criando uma base de dados Criação de um BD SQL padrão não oferece tal comando BDs são criados via ferramentas do SGBD alguns SGBDs (SQL Server, DB2, MySQL) oferecem este comando create database nome_bd drop database nome_bd 8

Criando Esquemas em SQL Comandos para definição de esquemas create table define a estrutura da tabela, suas restrições de integridade e cria uma tabela vazia alter table modifica a definição de uma tabela: atributos chave não podem ser removidos de uma tabela atributos NOT NULL não podem ser inseridos em uma tabela drop table remove uma tabela com todas as suas tuplas 9

Criação de Tabelas CREATE TABLE Colunas são especificadas primeiro, sob a forma: Depois Chaves, integridade referencial e restrições de integridade CREATE TABLE <nome_da_tabela> (C 1 D 1, C 2 D 2,..., C n D n,... PRIMARY KEY <lista_de_colunas>, FOREIGN KEY <nome_da_coluna> REFERENCES <nome_tab_ref>(<nome_da_coluna_ref>)); cada C i é uma coluna no esquema da tabela D i é o tipo de dado no domínio da coluna 10 C i

Criando Esquemas em SQL CREATE TABLE Ambulatorios ( nroa int, andar numeric(3) NOT NULL, PRIMARY KEY(nroa) ) CREATE TABLE Medicos ( codm int, nome varchar(40) NOT NULL, especialidade char(20), CPF numeric(11) UNIQUE, cidade varchar(30), nroa int, PRIMARY KEY(codm), FOREIGN KEY(nroa) REFERENCES Ambulatorios ) 11

Tipos de dados (Transact-SQL) https://msdn.microsoft.com/ptbr/library/ms187752(v=sql.120).aspx 12

Create Table Exemplo: create table produto (codigo integer not null, descricao varchar(30), tipo varchar (20) PRIMARY KEY codigo) Codigo Descricao tipo 13

Alterando Tabelas ALTER TABLE nome_tabela ADD [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] MODIFY [COLUMN] nome_atributo_1 tipo_1 [{RIs}] [{, nome_atributo_n tipo_n [{RIs}]}] DROP COLUMN nome_atributo_1 [{, nome_atributo_n }] ADD CONSTRAINT nome_ri_1 def_ri_1 [{, nome_ri_n def_ri_n}] DROP CONSTRAINT nome_ri_1 [{, nome_ri_n}] [ADD DROP] [PRIMARY KEY... FOREIGN KEY...] 14

Domínios

Restrições NOT NULL Restrição aplicada em colunas cujos valores não podem ser nulos Valor Default Usado para inicializar o valor de uma coluna DEFAULT <valor> logo após a restrição: create table produto (codigo integer not null, descricao varchar(30), tipo varchar (20) PRIMARY KEY codigo) 16

Tipos de Domínios em SQL char (n). Character de tamanho n definido pelo usuário varchar (n). int Smallint numeric (p,d) real, double precision float(n) 17

SQL (Structure Query Language)

SQL Linguagem para: Definição de dados: criação das estruturas Data Definition Language (DDL) Manipulação de dados: atualização e consultas Data Manipulation Language (DML) 19

Manipulação de Dados Define operações de manipulação de dados I (INSERT) A (UPDATE) E (DELETE) C (SELECT) Instruções declarativas manipulação de conjuntos especifica-se o que fazer e não como fazer 20

Inserções, Alterações e Exclusões

SQL Insert Inserção de dados INSERT INTO nome_tabela [(lista_atributos)] VALUES (lista_valores_atributos) [, (lista_valores_atributos)] Exemplos INSERT INTO Ambulatorios VALUES (1, 1, 30) INSERT INTO Medicos (codm, nome, idade, especialidade, CPF, cidade) VALUES (4, Carlos, 28, ortopedia, 11000110000, Joinville ); 22

Inserção de dados SQL Inserção a partir de outra tabela Permite inserir em uma tabela a partir de outra tabela A nova tabela terá os mesmos atributos, com os mesmos domínios Exemplos INSERT into cliente as SELECT * from funcionario 23

SQL Update Alteração de dados UPDATE nome_tabela SET nome_atributo_1 = Valor [{, nome_atributo_n = Valor}] [WHERE condição] Exemplos UPDATE Medico SET cidade = Florianopolis UPDATE Ambulatorios SET capacidade = capacidade + 5, andar = 3 WHERE nroa = 2 24

SQL DML Exclusão de dados DELETE FROM nome_tabela [WHERE condição] Exemplos DELETE FROM Ambulatorios DELETE FROM Medicos WHERE especialidade = cardiologia or cidade < > Florianopolis 25

Atividade 3 Inserir 3 médicos na tabela de médicos Cadastrar 4 ambulatórios, com numeroa sendo 1,2,3 e 4 Cadastrar 2 pacientes Cadastrar 3 consultas Alterar o numero do ambulatório de todos os médicos para 3 Alterar o nome do paciente 1 para Pedro da Silva 26

Consultas: SELECT

Estrutura Básica Uma consulta em SQL tem a seguinte forma: select A 1, A 2,..., A n from r 1, r 2,..., r m where P A i representa um atributo R i representa uma tabela P é um predicado Esta consulta é equivalente a uma expressão da Algebra Relacional ( P( r1 r2 r A1, A2,, An m O resultado de uma consulta SQL é sempre uma tabela )) 28

Estrutura Básica: resumindo. SELECT lista de atributos desejados FROM uma ou mais tabelas WHERE com restrições sobre atributos Exemplo: encontre o nome e o salário dos funcionarios da relação funcionário SELECT nome, salario FROM funcionario 29

Distinct O SQL permite duplicatas em relações e resultados em consultas Para eliminar duplatas, usa-se a cláusula DISTINCT depois do SELECT Exemplo: SELECT distinct nome FROM funcionario 30

A cláusula * O asterisco na cláusula SELECT denota TODOS OS ATRIBUTOS SELECT * FROM funcionario Expressões artitméticas podem ser usadas na cláusula SELECT +,,, / Exemplo: SELECT nome, salario + 200 FROM funcionario 31

A cláusula FROM Equivale a operação de Produto Cartesiano da Álgebra Lista as relações envolvidas na consulta Exemplo: SELECT FROM funcionario, departamento 32

A cláusula FROM Quando mais de uma tabela é utilizada é necessário dar um apelido para elas que deve ser utilizado para diferenciar atributos iguais Exemplo: SELECT f. FROM funcionario f, departamento d WHERE f.coddepto = d.coddepto 33

A cláusula WHERE A cláusula where especifica as condições que o resultado precisa satisfazer Corresponde ao predicado de seleção da álgebra Exemplo: SELECT nome, salario FROM funcionario WHERE salario > 2000 operadores AND, OR e NOT podem ser usados Exemplo: SELECT nome, salario FROM funcionario WHERE salario > 2000 AND idade < 30 34

Renomeando atributos Renomeação de atributos old-name as new-name Exemplo: SELECT nome as nomecliente, (salario+200) as comissao FROM funcionario 35

Operações com Strings O SQL permite comparar strings com o operador like Pode ser combinado com outros caracteres % compara substrings Exemplo I: encontre o nome dos funcionarios cujos nomes iniciam com Pedro select nome from funcionario where nome like 'Pedro%' 36

Operações com Strings Exemplo II: encontre o nome dos funcionarios cujos nomes contém Pedro no nome select nome from funcionario where nome like %Pedro%' 37

Operações de Conjunto Envolvem ao menos 2 tabelas Interseção e União: elimina automaticamente repetições Relações precisam ser compatíveis (mesmo número de atributos) Union ALL e intersects ALL preserva duplicatas 38

Operações de Conjunto n Encontre os clientes que tenham empréstimos e contas (select nome from conta) intersect (select nome from emprestimo) (select nome from conta) union (select nome from emprestimo) 39

Ordenando tuplas com Order By Exemplo: Liste em ordem alfabética os funcionarios que trabalham no departamento financeiro select distinct funcionario.nome from funcionario, departamento where funcionario.coddepto=departamento.coddepto AND departamento.nome= financeiro order by funcionario.nome Order by pode ser em ordem descendente Exemplo: order by nome desc 40

Funções de Agregação Operam sobre múltiplos valores de uma coluna da tabela e retornam um valor avg: média min: valor mínimo max: valor máximo sum: soma de valores count: número de valores 41

Exemplos: Funções de Agregação n Encontre o número de tuplas da relação CLIENTE select count(*) FROM cliente n Encontre a soma dos salários dos funcionários select SUM(salario) FROM funcionario 42

Funções de Agregação e Group By Encontre o total de funcionários de cada departamento select d.nome, count(f.*) as numerofuncionarios FROM funcionario f, departamento d WHERE f.coddepto=d.coddepto GROUP BY d.nome Nota: Atributos na cláusula SELECT que estão FORA da função de agregação precisam aparecer na lista de atributos do GROUP BY 43

Funções de Agregação e Having A função HAVING é utilizada para aplicar condições sobre grupos e não sobre uma única tupla Exemplo: Quais são os departamentos onde a soma dos salários dos funcionários ultrapassa 50.000 select d.nome, sum(f.salario) from funcionario f, departamento d where f.coddepto=d.coddepto group by d.nome having um (salario) > 50.000 Nota: predicados da cláusula having são aplicados depois que os grupos foram gerados, mas a condição do where é aplicada antes da formação dos grupos 44

Consultas Aninhadas Uma subconsulta select-from-where está aninhada dentro de outra consulta Exemplo: Selecione os clientes que são funcionários select nomecliente From cliente Where nomecliente in (select nomefuncionario from funcionario) 45

Valores nulos Consulta sobre valores inexistentes Exemplo: Encontre os funcionarios que não possuem carteira de habilitação select nome from funcionario where carteirahabilitacao is null OBS: cuidado que valores nulos em operações matemáticas podem dar problemas 46

SQL e Álgebra Relacional Álgebra nome ( (Médicos X = Médicos.codm = Consultas.codm ( codm ( data = 06/11/13 (Consultas))) ) ) ( CPF (Funcionários)) ( CPF (Pacientes)) ( CPF (Médicos)) ( CPF (Pacientes)) SQL Select nome From Médicos Where codm in (select codm from Consultas where data = 06/11/13 ) Select CPF From Funcionários Where CPF not in (select CPF from Pacientes) Select CPF From Médicos Where CPF in (select CPF from Pacientes) 47

Atividade 4 Selecione 10 (DEZ) questões e realize a consulta correspondente. 1)Buscar os dados dos pacientes que estão com sarampo 2) buscar os dados dos médicos ortopedistas com mais de 40 anos 3) Recuperar a especialidade e o numero total de médicos de cada especialidade 4) Recupere os nomes dos médicos que não tem consultas na tabela de consultas 48

Atividade 4 5) Buscar os dados das consultas, exceto aquelas marcadas para os médicos com CRM 46 e 79 6) Buscar os dados dos ambulatórios do quarto andar que ou tenham capacidade igual a 50 ou tenham número superior a 10 7) Buscar o nome dos médicos que têm consulta marcada e as datas das suas consultas, ordenando o nome dos médicos em ordem alfabética 49

Atividade 4 8) Buscar o CRM dos médicos e as datas das consultas para os pacientes com RG 122 e 725 9) Buscar os números dos ambulatórios, exceto aqueles do segundo e quarto andares, que suportam mais de 50 pacientes 10) Buscar o número e a capacidade dos ambulatórios do quinto andar e o nome dos médicos que atendem neles 50

Atividade 4 11) Buscar o nome dos médicos e o nome dos seus pacientes com consulta marcada, assim como a data destas consultas 12) Buscar os nomes dos pacientes, com consultas marcadas para os médicos João Carlos Santos ou Maria Souza, que estão com pneumonia 13) Buscar os nomes e idade dos médicos, pacientes e funcionários que residem em Florianópolis 51

Atividade 4 14) Buscar os nomes e RGs dos funcionários que recebem salários abaixo de R$ 1300,00 e que não estão internados como pacientes 15) Buscar os números dos ambulatórios onde nenhum médico fornece atendimento 16) Buscar os nomes e os RGs dos funcionários que estão internados como pacientes 17) Buscar os nomes dos funcionários que nunca consultaram 52

Atividade 4 18) Quais são as cidades cuja soma dos salários dos funcionários ultrapassa 1.000.000? 19) Recupere o nome dos médicos e dos pacientes e a cidade onde moram. 20) Buscar o total de médicos para cada especialidade 53

BIBLIOGRAFIA Elmasri & Navathe Fundamentos de Bancos de Dados Carlos Alberto Heuser Projeto de Banco de Dados Korth e Silberchatz Sistema de Bancos de Dados PROGRAMAÇÃO ORIENTADA A EVENTOS 54

BIBLIOGRAFIA HEUSER, C.A. Projeto de Banco de Dados. 6ª Edição. Porto Alegre. Capítulos 2 e 3 Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a ed. Editora Campus, 2006. - Capítulo 6 Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed. Editora Addison-Wesley. 2005. - Capítulo 3 PROGRAMAÇÃO ORIENTADA A EVENTOS 55

BIBLIOGRAFIA HEUSER, C.A. Projeto de Banco de Dados. 6ª Edição. Porto Alegre. Capítulos 2 e 3 Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a ed. Editora Campus, 2006. - Capítulo 6 Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 4 ed. Editora Addison-Wesley. 2005. - Capítulo 3 PROGRAMAÇÃO ORIENTADA A EVENTOS 56