SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Documentos relacionados
Projeto de Banco de Dados

Projeto de Banco de Dados

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

Introdução ao PostgreSQL

Banco de Dados I Introdução SQL

SQL. Prof. Roger Cristhian Gomes

IMPLEMENTAÇÃO DE BANCO DE DADOS

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

SQL (Tópicos) Structured Query Language

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

BCD29008 Banco de dados

SQL Linguagem de Definição de Dados

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

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 de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Comandos de Manipulação

A linguagem SQL

Bancos (Bases) de Dados

Projeto de Banco de Dados

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

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

Banco de Dados. Professora: Luciana Faria

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

Rápida revisão do Modelo Relacional

Projeto Físico de Banco de Dados

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

Structured Query Language (SQL) Aula Prática

Utilizando o Postgres - comandos SQL para a manipulação de dados

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

SQL Básica. Andre Noel

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

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

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

ANÁLISE E PROJETO DE BANCO DE DADOS

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

Marcelo Henrique dos Santos

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

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

BANCO DE DADOS PARA NINJAS

Fundamentos de Banco de Dados Postgre com Sql

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

Linguagem de Consulta Estruturada SQL- DML

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

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

Objetos Persistentes. Objetos Persistentes: são objetos que requerem armazenamento persistente.

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

SQL. Prof. Msc Denival A. dos Santos

Manipulação de Dados com SQL

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

BANCO DE DADOS GERENCIAL 1 A U L A 2

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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

Organização da Informação

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

Banco de Dados. SQL Structured Query Language

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

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Linguagem SQL Sub-linguagem DDL

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Bases de Dados. DDL Data Definition Language

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

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

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

SQL. Prof. Márcio Bueno.

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

Introdução à linguagem SQL

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

MODELAGEM DE DADOS MODELO FÍSICO

L Q S m e g a u g n Li A

SQL-99: Esquema de BD EMPRESA

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

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

Banco de Dados. Linguagem SQL

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

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

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

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Introdução a Bancos de Dados

UFG - Instituto de Informática

Page 1. Prof. Constantino Jacob

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Aula 06 Sistemas Embarcados LT38C

ALTERANDO O NOME DA TABELA ALTER TABLE DEPTO RENAME TO TAB_DEPARTAMENTO

EXEMPLOS DE COMANDOS NO SQL SERVER

Informática I. Aula 8. Aula 8-25/09/2006 1

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

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

Banco de Dados I 5 Linguagens de Consulta

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

SQL Structured Query Language

Linguagem de Consulta Estruturada SQL- DML

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

Transcrição:

SQL BÁSICO Luiz Antônio Vivacqua Corrêa Meyer

SQL (Structured Query Language) Início na década de 70 pela IBM com o nome de SEQUEL. Em 1980 o produto mudou seu nome para SQL. American National Standards Institute é o mantenedor e responsável pelo padrão. Os comandos de SQL podem ser usados interativamente como uma linguagem de consulta ou podem ser incorporados a programas de aplicações. COMANDOS: DDL Linguagem de definição de dados DML Linguagem de manipulação de Dados. A Linguagem de Definição de Dados da SQL: Esta é a subcategoria de SQL que permite a criação e a alteração dos objetos do banco de dados. Normalmente, é de uso exclusivo do Administrador de Banco de Dados; contudo, seu uso fica sujeito à política da empresa. Principais Comandos: CREATE [TABLE VIEW INDEX] Criação de uma tabela (CREATE TABLE), de uma visão (CREATE VIEW) ou de um índice (CREATE INDEX). ALTER TABLE Alteração da definição de uma tabela, como a adição de uma coluna ou de uma restrição de integridade, ou a exclusão de uma restrição de integridade. DROP [TABLE VIEW INDEX] Destruição (dados e definição) de uma tabela básica (DROP TABLE), de uma visão (DROP VIEW) ou de um índice (DROP INDEX). O comando CREATE TABLE Formato Geral: CREATE TABLE nome-da-tabela ( definição-da-coluna1, definição-dacoluna2,..., definição-da-colunan ) [TABLESPACE nome_tablespace] e definição-da-coluna é definida como: nome-da-coluna tipo-de-dado [CONSTRAINT]

Principais CONSTRAINTS: PRIMARY KEY define a chave primária da tabela FOREIGN KEY define uma chave estrangeira UNIQUE define que o valor da coluna é único NOT NULL especifica que a coluna não pode ter valores nulos CHECK estabelece um domínio para os valores da coluna OBS: AS CONSTRAINTS PODEM SER ESPECIFICADAS NA DEFINIÇÃO DA COLUNA OU ATRAVÈS DA CLÀUSULA CONSTRAINT. NESTE ÚLTIMO CASO A SINTRAXE GERAL É: Exemplos: CONSTRAINT nome-da-constraint tipo-da-constraint CREATE TABLE DEPARTAMENTO (CODIGO INTEGER PRIMARY KEY, NOME CHAR(20) NOT NULL, STATUS INTEGER, CIDADE CHAR(20) ) TABLESPACE ST_CENSO_2010_TABELA CRIA A TABELA FORNECEDOR NA TABLESPACE INFORMADA E A OBRIGATORIEDADE DE VALORES NÃO NULOS NO CAMPO NOME. CREATE TABLE FUNCIONÁRIO (MATRICULA INTEGER PRIMARY KEY, NOME VARCHAR (20) NOT NULL, SEXO CHAR (1), DEPTO INTEGER, CONSTRAINT FK_DEP FOREIGN KEY(DEPTO) REFERENCES DEPARTAMENTO (CÓDIGO) ); OBS: UMA CONSTRAINT DE FOREIGN KEY PODE REFERENCIAR COLUNA(S) QUE TENHAM A RESTRIÇÃO PRIMARY KEY OU UNIQUE NA OUTRA TABELA O comando ALTER TABLE Formato Geral: ALTER TABLE nome-da-tabela

ADD [CONSTRAINT nome-da-restrição] cláusula-de-restrição DROP CONSTRAINT nome-da-restrição ADD nome-da-coluna tipo-de-dado DROP COLUMN nome-da-coluna RENAME TO novo_nome RENAME COLUMN nome_antigo TO nome_novo Exemplos: ALTER TABLE DEPARTAMENTO ADD TELEFONE CHAR(11); TRANSFORMA A TABELA DE DEPARTAMENTO EM: DEPARTAMENTO (CÓDIGO, NOME, STATUS, CIDADE, TELEFONE); ALTER TABLE DEPARTAMENTO ADD CONSTRAINT FORNECEDOR_PK PRIMARY KEY (CODIGO); CRIA A CHAVE PRIMÁRIA NA TABELA FORNECEDOR. ALTER TABLE FUNCIONARIO ADD CONSTRAINT FK_DEPARTAMENTO FOREIGN KEY(DEPTO) REFERENCES DEPARTAMENTO( CODIGO); CRIA O RELACIONAMENTO ENTRE UMA TABELA DEPARTAMENTO E A TABELA FUNCIONARIO. ALTER TABLE FUNCIONÁRIO ADD CONSTRAINT CHK_SEXO CHECK (SEXO IN ( M, F )); O comando DROP TABLE Formato Geral: DROP TABLE nome-da-tabela Esta sentença não só remove a descrição da tabela do catálogo do banco, como todas suas instâncias, visões e índices definidos sobre ela. Exemplo: DROP TABLE Funcionario; /* Remove do banco de dados a tabela Funcionario */ O comando CREATE INDEX: Formato Geral: CREATE INDEX nome-indice ON nome-da-tabela(nome_colunas) TABLESPACE nome_tablespace OBS: Índices são criados para acelerar a recuperação de dados.

Exemplo: CREATE INDEX IND_NOME ON FUNCIONARIO (NOME); O comando DROP INDEX: Formato Geral: DROP INDEX nome-indice; Exemplo: DROP INDEX IND_NOME; A LINGUAGEM DE MANIPULAÇÃO DE DADOS DA SQL A SQL possui quatro instruções de manipulação de dados: SELECT, INSERT, UPDATE e DELETE. SELECT Seleção de atributos de uma tabela INSERT Inclusão de uma ou várias linhas em uma tabela DELETE Remoção de uma ou várias linhas de uma tabela UPDATE Atualização de valores de atributos Comando SELECT SINTAXE GERAL SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1, nome_tabela2,..., nome_tabelan [WHERE predicado] [GROUP BY coluna1, coluna2,..., colunax] [HAVING predicado] [ORDER BY coluna1[asc/desc], coluna2[asc/desc],..., colunay[asc/desc]];

BANCO DE DADOS CONTENDO 3 TABELAS Tabela Peca Id nome Cor Peso cidade P1 Prego Vermelho 12 Rio P2 Porca Verde 17 SP P3 Parafuso Azul 17 Curitiba P4 Parafuso Vermelho 14 Rio P5 Ruela Azul 12 SP P6 Rebite Vermelho 19 Rio Tabela Fronecimento Id Id_forn id_peca Qtde 1 S1 P1 300 2 S1 P2 200 3 S1 P3 400 4 S1 P4 200 5 S1 P5 100 6 S1 P6 100 7 S2 P1 300 8 S2 P2 400 9 S3 P2 200 10 S4 P2 200 11 S4 P4 300 12 S4 P5 400 Tabela Fornecedor id nome Status Cidade S1 Silva 20 Rio S2 João 10 SP S3 Pedro 30 SP S4 Carlos 20 Rio S5 Andre 30 Recife

1. Recuperação Simples: Obter a identificação de todas as peças fornecidas. 2. Recuperação Simples sem ocorrência de duplicatas. 3. Recuperação simples de toda a tabela. 4. Recuperação qualificada: Obter a identificação dos fornecedores de SP com status > 20. Obs: A condição ou predicado que segue WHERE pode incluir os operadores comparativos =, >, <, >=, <=, <> e os operadores lógicos AND, OR, NOT. 5. Recuperação com Ordenação: Obter a identificação e o status de fornecedores de SP, na ordem decrescente de status. CONSULTA COM JUNÇÃO : RECUPERA DADOS DE MAIS DE UMA TABELA. 6. Junção com igualdade simples: Obter o nome dos fornecedores que fornecem peças. 7. Junção com condição adicional: Obter o nome do fornecedor que fornece a peça P2. 8. Junção de três tabelas: Obter o nome das peças que são fornecidas por fornecedores do RJ INNER JOIN 9. Obter o nome dos fornecedores que fornecem peças.

LEFT JOIN 10. Obter o nome dos fornecedores e a qtde fornecida de peças inclusive dos que não fizeram fornecimento RIGHTJOIN O inverso do Left join 11. Obter o nome das peças e o nome dos fornecedores na mesma cidade inclusive os fornecedores em outras cidades Funções embutidas COUNT retorna o número de valores na coluna. SUM retorna a soma dos valores na coluna que tem que ser numérica. AVG retorna a média de valores na coluna que tem que ser numérica. MAX retorna o maior valor na coluna. MIN retorna o menor valor na coluna. 12. Obter o número total de fornecedores. 13. Obter o número de fornecedores que estão fornecendo peças no momento. 14. Obter o número de fornecimentos para a peça P2. 15. Obter a quantidade total de peças P2 fornecidas. Uso do Group By A cláusula group by pode ser usada em conjunto com funções de forma de agrupar o resultado segundo uma ou mais colunas. 16. Obter a quantidade total de cada peça fornecida.

Uso do having A cláusula having funciona para os Grupos assim como o Where para linhas. 17. Obter a identificação da peça e a soma das quantidades fornecidas de todas as peças fornecidas com qtde > 500. Recuperação com Like _ vale para qq caracter % vale para qq sequência de n caracteres onde n pode ser 0. Negação Not Like 18. Obter a identificação das peças cujos nomes começam com a letra R. 19. Obter a identificação das peças cujos nomes começam com a letra R, tem B na terceira letra e terminam com E. Recuperação com NULL Usado para testar a presença ou ausência de valores nulos. 20. Obter a identificação dos fornecedores com status igual a nulo. Recuperação com Subconsulta Subconsulta é uma expressão SELECT FROM WHERE aninhada dentro de uma cláusula WHERE. São usadas para representar um conjunto de valores a serem procurados através do predicado IN. O sistema avalia primeiramente a subconsulta. 21. Obter os nomes dos fornecedores que fornecem a peça P2.

Subconsulta com vários níveis de aninhamentos. 22. Obter os nomes dos fornecedores que forneçam pelo menos uma peça vermelha. Subconsulta c/ operador diferente de IN 23. Obter a identificação dos fornecedores localizados na mesma cidade que o fornecedor S1 Função numa subconsulta 24. Obter o nome dos fornecedores cujo status seja inferior ao maior status existente. OPERADORES DE CONJUNTO combinam os resultados das consultas que devem ter o mesmo número de colunas com o mesmo tipo de dados. UNION é o operador de união da teoria de conjuntos tradicionais. O resultado é a união dos resultados da cada consulta. As duplicidades são sempre eliminadas. INTERSECT implementa o operador de interseção de conjuntos. EXCEPT ou MINUS (ORACLE) implementa a diferença de conjuntos. 25. Obter a identificação das peças que pesam mais de 15 ou que são fornecidas por S2. 26. Obter as cidades onde existam fornecedores e peças. 27. Obter as cidades onde existam fornecedores e que não existam peças.

COMANDOS DE ATUALIZAÇÃO INSERT - Sintaxe: Insert into nome_tabela [( campo,..., campo ) ] values ( valor1,..., valorn ); Insert into nome_tabela [ ( campo,..., campo ) ] Select... From... Where... ; Exemplos: 28. Inserindo uma nova peça com id P7, cidade RJ e peso 24 29. Inserindo um conjunto de peças DELETE - Sintaxe: Delete From nome_tabela [ Where predicado ] ; Exemplos: 30. Excluindo o fornecedor S1 31. Excluindo todas as peças 32. Excluindo os fornecimentos feitos pelo fornecedor Silva UPDATE - Sintaxe: Update nome_tabela Set campo1 = valor..., [ campon = valor ] [ Where predicado ] ; Exemplos: 33. Modificar a cor para preto e a cidade para nulo da peça P2 34. Multiplicar por 2 o status dos fornecedores da cidade do Rio de Janeiro

35. Modificar para zero a quantidade dos fornecimentos feitos pelos fornecedores do Rio de Janeiro VISÕES: Uma visão pode ser considerada uma tabela virtual. Ela contém a definição de uma tabela, mas não os seus dados, que são recuperados em tempo de execução. Vantagens: Segurança restringe o acesso a parte da tabela Facilidade de manuseio Uma visão pode conter dados de várias tabelas. Sintaxe: Create view nome_visão [ coluna1,..., colunan ] as subconsulta ; Exemplo: 36. Create view BOM_FORNECEDOR as Select id, Status, cidade From fornecedor Where Status > 15;