SQL. Banco de Dados I. Componentes de SQL

Tamanho: px
Começar a partir da página:

Download "SQL. Banco de Dados I. Componentes de SQL"

Transcrição

1 Banco de Dados I Adrovane Marques Kade 1 1 Curso de Análise e Desenvolvimento de Sistemas Instituto Federal de Educação, Ciência e Tecnologia 2011/1 ( Structured Query Language ) é uma linguagem comercial de definição e manipulação de bancos de dados relacionais (inicialmente chamava-se SEQUEL) surgiu no centro de pesquisas de San Jose da IBM, dentro do projeto System R é padrão de fato (mesmo SGBDs como INGRES, que possuem linguagem própria oferecem uma interface ) é padrão de direito (ISO): 1 aprovado em 1986 (-86), com modificações em 1989 (-89) 2 aprovado em 1992 (-92) 3 aprovado em 1999 (:1999) :2003 :2006 :2008 Componentes de Aderência a padrões é uma linguagem completa de manipulação de banco de dados Oferece as seguintes funcionalidades: Uma DDL para definição do esquema da base de dados Uma DML para programação de consultas e transações que inserem, removem e alteram linhas de tabelas Uma versão de embutida em linguagens de 3a. geração (COBOL, C,...), estendendo-as para manipulação de banco de dados Um padrão de comunicação cliente/servidor (ODBC Open Database Connectivity), a partir de 3 Instruções para definições de visões (tabelas virtuais vistas por um usuário ou uma classe de usuários) Instruções para controle de autorização de acesso Instruções para controle de transações e concorrência Instruções para especificação de restrições de integridade A aderência a padrões de é importante para aqueles que: escrevem comandos de em suas aplicações ( não fica oculto por algum gerador de telas,...) desejam portar aplicações a vários SGBD O padrão é irrelevante para aqueles que usam ferramentas como geradores de telas, relatórios, etc. proprietários o usuário está preso ao fornecedor da ferramenta Praticamente todo fornecedor de SGBD afirma que o seu produto é compatível com o padrão

2 Validação de padrões Níveis do /2 Compatibilidade com padrão somente pode ser verificada por um órgão independente Nos EUA, há um órgão do governo (NIST), que faz a validação de aderência ao padrão Padrão 1 (1986/1989) é testada através do conjunto de testes FIPS Padrão 2 (1992) é testada através do conjunto de testes FIPS Os testes de aderência valem apenas para uma plataforma de software/hardware Grandes fornecedores (Oracle, Sybase, DB/2, /Server) normalmente têm pelo menos /2 entry level A norma /2 é formada por vários níveis, que oferecem cada vez mais funções: entry-level, conjunto mínimo para considerar produto como /2, implementado por vários fornecedores transitional level (conjunto de testes somente apareceu em 1995) intermediate level (conjunto de testes disponível a partir de 1996) full level, norma completa, ainda sem testes nem produtos SGBD comerciais implementam variados níveis Não existe portabilidade real entre diferentes SGBD /3 começa a aparecer em alguns produtos (DB/2, por exemplo) DDL criação de banco de dados Instruções da DDL não oferece instruções para criação de bancos de dados Alguns produtos (Ex.: /Server) têm instruções de DDL: Create Database: cria uma base de dados vazia Drop Database: elimina uma base de dados Outros têm abordagens variadas Oracle cria o BD como parte da instalação INGRES tem um utilitário oferece três instruções para definição do esquema da base de dados: Create Table define a estrutura de uma tabela, suas restrições de integridade e cria a tabela vazia Drop Table elimina a tabela da base de dados Alter Table permite modificar a definição de uma tabela

3 Criação de tabelas (Peça) Criação de tabelas (Fornec) CREATE TABLE PECA ( CodPeca CHAR(4) NOT NULL, NomePeca VARCHAR(50) NOT NULL, CorPeca CHAR(10), PesoPeca INTEGER, CidadePeca VARCHAR(40), PRIMARY KEY (CodPeca)) CREATE TABLE FORNEC ( CodFornec CHAR(4) NOT NULL, NomeFornec VARCHAR(50) NOT NULL, StatusFornec INTEGER, CidadeFornec VARCHAR(40), CGC NUMBER(14) NOT NULL, PRIMARY KEY (CodFornec), UNIQUE KEY (CGC)) Criação de tabelas (Embarq) CREATE TABLE EMBARQ ( CodPeca CHAR(4) NOT NULL, CodFornec CHAR(4) NOT NULL, QtdeEmbarq INTEGER NOT NULL, PRIMARY KEY (CodPeca,CodFornec), FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca), FOREIGN KEY (CodFornec) REFERENCES Fornec (CodFornec)) Observações sobre a definição de tabelas Em /2 o conjunto de domínios de valores é fixo Desejável (/3) domínio definível pelo usuário (exemplo: dias da semana, meses do ano,...) Nos SGBD comerciais são oferecidos domínios adicionais aos do padrão (CHAR, VARCHAR, INTEGER, REAL,...) destinados a aplicações especiais como DATA, CURRENCY e domínios para armazenar campos longos (BLOBS, até 2GB) destinados a conter imagens, sons, vídeos, etc. (maioria aparece no /2) A cláusula NOT NULL especifica que uma coluna não admite o valor vazio (requerido para colunas que sejam chave primária) Default é NULL permitido (exceto Sybase e /Server antigos) As colunas de uma tabela são classificadas na ordem de sua definição (linhas não tem classificação)

4 Restrições de chave Restrições de chave estrangeira nos SGBD comerciais No original (System R) e no padrão original (1986) não havia cláusulas para especificar chaves A única maneira de definir chave primária era através da criação de um índice sem duplicatas sobre a coluna Não havia forma declarativa de definir chaves estrangeiras SGBD não dava suporte a integridade referencial Usuário é obrigado a programar os testes de chaves em sua aplicação Padrão (1986/1989) foi estendido para especificar chaves: primária estrangeira alternativa (unique key) Praticamente todos os produtos comerciais incluem a definição de chaves Chave estrangeira cláusula ON DELETE ON DELETE SET NULL Caso nada seja especificado na definição de chave estrangeira, uma linha que contenha uma chave primária referenciada na chave estrangeira não pode ser excluída (regra RESTRICT) Pode ser definida a propagação da exclusão da linha para as linhas que a referenciam CREATE TABLE EMBARQ ( CodPeca CHAR(4) NOT NULL, CodFornec CHAR(4) NOT NULL, QtdeEmbarq INTEGER NOT NULL, PRIMARY KEY (CodPeca,CodFornec), FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca) ON DELETE CASCADE, FOREIGN KEY (CodFornec) REFERENCES Fornec (CodFornec)) CREATE TABLE PROFESSOR ( CodProf..., NomeProf..., CodTit INTEGER NOT NULL, PRIMARY KEY (CodProf), FOREIGN KEY (CodTit) REFERENCES Titulacao (CodTit) ON DELETE SET NULL ON UPDATE CASCADE)

5 Chave estrangeira cláusula ON DELETE Chave estrangeira cláusula ON UPDATE SET NULL Especifica que as chaves estrangeiras que referenciam a linha excluídas devem ser tornadas vazias Válido somente para chaves estrangeiras opcionais RESTRICT (default) Especifica que uma linha não pode ser excluída caso existam chaves estrangeiras que a referenciem... FOREIGN KEY... REFERENCES... ON DELETE {CASCADE SET NULL RESTRICT} CASCADE Alteração da chave primária é propagada para as chaves estrangeiras que a referenciam SET NULL Chaves estrangeiras que referenciam a linha alterada devem ser tornadas vazias Válido somente para chaves estrangeiras opcionais RESTRICT Uma chave primária não pode ser alterada, caso existam chaves estrangeiras que a referenciem... FOREIGN KEY... REFERENCES... ON UPDATE {CASCADE SET NULL RESTRICT} Eliminação de tabelas Alteração da definição de tabelas Para eliminar completamente uma tabela (vazia ou não) da base de dados é usada a instrução: DROP TABLE Embarq /2 inclui cláusulas RESTRICT e CASCADE (obrigatória) que informam se a exclusão deve ser propagada ou não para objetos definidos com base na tabela (visões) Exemplo: DROP TABLE Embarq RESTRICT Exclui a tabela somente se não existirem visões definidas com base na tabela A instrução ALTER TABLE serve para modificar a definição original da tabela Nem todas as modificações são permitidas Primeiros SGBD e /1 somente permitiam adicionar colunas

6 Alteração da definição de tabelas Alteração da definição de tabelas Para modificar a estrutura de tabelas já existentes na base de dados, há uma instrução que permite adicionar colunas a tabelas: ALTER TABLE Embarq ADD DataEmbarq Observe-se que: A instrução adiciona uma nova coluna com o valor vazio para todas as linhas Os valores para as diversas linhas devem ser adicionadas através de instruções da DML Não pode ser especificada a cláusula NOT NULL, já que a coluna é criada com o valor vazio (a menos que seja especificado um valor DEFAULT) Se o SGBD não permite a alteração desejada: 1. Armazenar o conteúdo da tabela em uma tabela temporária ou arquivo do sistema operacional 2. Eliminar todas as referências à tabela antiga 3. Eliminar a tabela antiga (DROP TABLE) 4. Definir a nova tabela (CREATE TABLE) 5. Carregar a nova tabela a partir da tabela intermediária ou arquivo do sistema operacional criado no passo 1 6. Reincluir as referências à tabela ALTER TABLE mudando as chaves ALTER TABLE definição de chaves ALTER TABLE permite incluir ou excluir restrições de chave ALTER TABLE Representantes DROP PRIMARY KEY Para excluir uma chave estrangeira é necessário que ela tenha recebido um nome quando de sua definição ALTER TABLE Representantes ADD FOREIGN KEY TrabalhaPara (CodFilial) REFERENCES Filial (CodFilial) ALTER TABLE Representantes DROP FOREIGN KEY TrabalhaPara ALTER TABLE com definição de chaves permite separar a DDL em duas seções A primeira seção contém apenas os CREATE TABLE com a estrutura da base de dados A segunda seção contém as restrições de chave através de instruções ALTER TABLE

7 /2 Tratamento generalizado de CONSTRAINTS /2 Tratamento generalizado de CONSTRAINTS Sintaxe para chaves vista até aqui é antiga (saindo de uso) A tendência em /2 é tratar de maneira uniforme todas as restrições de integridade (chave primária, chave única, chave estrangeira,...) São chamadas de CONSTRAINT CREATE TABLE Embarq ( CodFornec CHAR(4) NOT NULL, CodPeca CHAR(4) NOT NULL, Quant INTEGER NOT NULL, CONSTRAINT PK_EMBARQ PRIMARY KEY (CodFornec, CodPeca)); ALTER TABLE Embarq ( ADD CONSTRAINT FK_EMBARQ_RELATION_PECAS FOREIGN KEY (CodPeca) REFERENCES Peca (CodPeca)); ALTER TABLE Embarq ( ADD CONSTRAINT FK_EMBARQ_RELATION_FORNEC FOREIGN KEY (CodFornec) REFERENCES Fornec (CodFornec)); Modelo básico da instrução de consulta em Exemplos de instruções de consulta em (modelo básico) A sintaxe básica de uma instrução de consulta é: SELECT <lista de colunas> FROM <lista de tabelas> [WHERE <critério>] O modelo básico de execução da instrução é o seguinte: 1. É feito o produto cartesiano das tabelas envolvidas 2. São selecionadas as linhas da tabela que obedecem ao critério 3. É feita a projeção sobre as colunas que vão ao resultado Obter todos os dados de peças: SELECT CodPeca, NomePeca, CorPeca, CidadePeca FROM Peca ou SELECT * FROM Peca

8 Exemplos (projeção) Exemplos (projeção) Obter os nomes de todas as peças SELECT [ALL] NomePeca FROM Peca Neste caso, se houver duas peças com o mesmo nome, haverá duas linhas idênticas no resultado Resultado é um multi-conjunto ( bag ) e não conjunto de linhas A palavra-chave ALL é opcional não elimina duplicatas por default eliminação de duplicatas é uma operação cara em termos de performance (normalmente, envolve ordenação de linhas ( sort ) SELECT DISTINCT NomePeca FROM Peca Cláusula DISTINCT especifica a eliminação de duplicatas de linhas (equivalente à projeção em álgebra relacional) Exemplos (projeção, seleção) Condições na cláusula WHERE Obter os códigos e nomes de fornecedores com status 5 e do Rio SELECT CodFornec, NomeFornec WHERE StatusFornec > 5 AND CidadeFornec = "Rio" A expressão lógica na cláusula WHERE pode envolver uma série de operadores lógicos: = <> < <= > >= status BETWEEN 5 AND 12 AND OR NOT nome LIKE "%Marques%" testa se Marques faz parte do campo Nome trata-se de reconhecimento de padrões qualquer caracter é qualquer seqüência é %

9 Condições na cláusula WHERE Expressões podem aparecer no resultado da consulta SELECT CodPeca, (PesoPeca/1.452) AS PesoEmLibras, 5, NULL FROM Peca Expressões podem envolver qualquer coluna das tabelas e constantes As operações permitidas são: adição subtração multiplicação divisão Exemplos (junção) Para cada embarque com quantidade maior que 300, obter o código do fornecedor, o código da peça e o nome da peça SELECT CodFornec, Embarq.CodPeca, NomePeca, Peca WHERE QtdeEmbarq > 300 AND Embarq.CodPeca=Peca.CodPeca A consulta envolve duas tabelas: a cláusula WHERE especifica os atributos de junção das duas tabelas Corresponde à seqüência Seleção-Junção-Projeção comum na álgebra relacional Observar a qualificação da coluna CodPeca Sempre que um nome de coluna for ambíguo (aparecer em duas tabelas) ele deve ser qualificado. Apenas nomes não ambíguos não necessitam qualificação Exemplos (junção) Exemplos (renomeação) Obter os nomes dos fornecedores das peças de cor vermelha, Embarq, Peca WHERE CorPeça = Verm AND Embarq.CodPeca=Peca.CodPeca AND Embarq.CodFornec=Fornec.CodFornec Sintaxe básica não inclui uma operação como a junção natural O usuário é obrigado a especificar os atributos de junção Obter os nomes dos fornecedores das peças de cor vermelha F, Embarq AS E, Peca P WHERE CorPeça = Verm AND E.CodPeca=P.CodPeca AND E.CodFornec=F.CodFornec Sintaxe básica não inclui uma operação como a junção natural O usuário é obrigado a especificar os atributos de junção

10 Exemplos (aliases) Obter todos os pares de nomes de fornecedores que se encontram na mesma cidade SELECT F1.NomeFornec, F2.NomeFornec F1, Fornec F2 WHERE F1.CidadeFornec=F2.CidadeFornec AND F1.CodFornec < F2.CodFornec Exemplos (aliases) EMP(CodEmp, NomeEmp, CodEmpGer CodEmpGer referencia EMP Neste caso, é necessário renomear a tabela de fornecedores, já que a consulta faz referência a duas linhas da tabela Isso é feito através de aliases definidos na cláusula FROM Aliases têm função análoga à das variáveis de tupla do cálculo relacional A comparação de códigos de fornecedores serve apenas para eliminar duas linhas do mesmo fornecedor e evitar que o mesmo par de fornecedores <fx,fy> apareça no resultado também na ordem inversa <fy,fx> Para cada empregado que possui gerente, obter o nome do empregado seguido do nome de seu gerente Exemplos (aliases) EMP(CodEmp, NomeEmp, CodEmpGer CodEmpGer referencia EMP SELECT EMP.NomeEmp, GER.NomeEmp FROM EMP, EMP as GER WHERE EMP.CodEmpGer=GER.CodEmp Para cada empregado que possui gerente, obter o nome do empregado seguido do nome de seu gerente Exemplos (união) Obter os códigos das peças que sejam de PoA ou que possuam embarques do fornecedor de código F1 (SELECT CodPeca FROM Peca WHERE CidadePeca = PoA ) UNION (SELECT CodPeca WHERE CodFornec = F1 ) O operador de união é equivalente ao da álgebra relacional A união elimina duplicatas O operador UNION ALL não elimina duplicatas implementação mais eficiente

11 Exemplos (intersecção e diferença) Exemplos (aliases) outer join sem operador específico EMP(CodEmp, NomeEmp, CodEmpGer CodEmpGer referencia EMP Em alguns SGBD também são implementadas, além da união intersecção (operador INTERSECT) e diferença (operador EXCEPT ou MINUS) (SELECT EMP.NomeEmp, GER.NomeEmp FROM EMP, EMP as GER WHERE EMP.CodEmpGer=GER.CodEmp) UNION (SELECT NomeEmp, NULL FROM EMP WHERE EMP.CodEmpGer IS NULL) Para cada empregado, obter o nome do empregado seguido do nome de seu gerente Exemplos (consultas aninhadas) Exemplos (consultas aninhadas) Obter os códigos dos fornecedores que têm embarques de peças de cor vermelha SELECT CodFornec, Peca WHERE CorPeça = Verm AND Embarq.CodPeca=Peca.CodPeca Neste caso, o resultado da consulta envolve apenas colunas da tabela Peça, mas a cláusula FROM referencia também a tabela Embarq Para este tipo de consulta, a solução mais natural é através de consultas aninhadas (ou consultas embutidas sub-select ) SELECT CodFornec WHERE CorPeça IN (SELECT CodPeca FROM Peca WHERE CorPeca = Verm )

12 Exemplos (consultas aninhadas) Obter os nomes dos fornecedores das peças de cor vermelha, Embarq, Peca WHERE CorPeça = Verm AND Embarq.CodPeca=Peca.CodPeca AND Embarq.CodFornec=Fornec.CodFornec Também pode ser resolvida com consultas aninhadas: WHERE CodFornec IN (SELECT CodFornec WHERE CodPeca IN (SELECT CodPeca FROM Peca WHERE CorPeca= Verm )) Consultas podem ser aninhadas em múltiplos níveis Exemplos (consultas aninhadas) Obter os nomes dos fornecedores que têm embarques das peças de código P1 Solução com produto cartesiano:, Embarq WHERE CodPeça = P1 AND Embarq.CodFornec=Fornec.CodFornec Solução com consultas aninhadas: WHERE CodFornec IN (SELECT CodFornec WHERE CodPeca= P1 ) Exemplos (consultas aninhadas) Outra solução com consultas aninhadas (alternativa): WHERE P1 IN (SELECT CodPeca WHERE CodFornec=Fornec.CodFornec) A última solução pode ser expressa como obter os nomes dos fornecedores para os quais P1 é o código de uma das peças por eles fornecida Idealmente, um otimizador deveria estar em condições de executar qualquer das três alternativas com a mesma performance O programador não deveria ser obrigado a conhecer a solução ótima Exemplos (consultas aninhadas) Obter os nomes dos fornecedores para os quais há embarques de peças localizadas na mesma cidade do fornecedor WHERE (CodFornec,CidadeFornec) IN (SELECT Embarq.CodFornec,Peca.CidadePeca,Peca WHERE Embarq.CodPeca=Peca.CodPeca AND Embarq.CodFornec=Fornec.CodFornec) Nesta consulta, é testado se uma linha (indicada por (CodFornec,CidadeFornec) faz parte de uma tabela obtida por uma consulta aninhada Não existe no padrão (somente DB2)

13 Exemplos (quantificador existencial) Exemplos (quantificador existencial) Obter os nomes dos fornecedores para os quais há ao menos um embarque WHERE EXISTS (SELECT * WHERE Embarq.CodFornec=Fornec.CodFornec) Obter os nomes dos fornecedores para os quais não há embarques WHERE NOT EXISTS (SELECT * WHERE Embarq.CodFornec=Fornec.CodFornec) A cláusula EXISTS tem função análoga ao quantificador existencial no cálculo relacional Exemplos (quantificador existencial) Exemplos (quantificador universal) Obter os nomes dos fornecedores para os quais há ao menos um embarque WHERE EXISTS (SELECT * WHERE CodFornec=Fornec.CodFornec) A cláusula EXISTS tem função análoga ao quantificador existencial no cálculo relacional Obter os códigos dos fornecedores que possuem embarques para todas as peças de cor vermelha Essa operação seria resolvida usando o operador de divisão de álgebra relacional ou o quantificador universal de cálculo relacional em, não há cláusula análoga ao quantificador universal é necessário usar a negação do quantificador existencial Obter os códigos dos fornecedores, tal que para toda peça de cor vermelha exista um embarque da peça em questão pelo fornecedor em questão obter os códigos dos fornecedores, tal que não exista uma peça de cor vermelha para a qual não exista um embarque pelo fornecedor em questão

14 Exemplos (quantificador existencial) Obter os códigos dos fornecedores, tal que não exista uma peça de cor vermelha para a qual não exista um embarque pelo fornecedor em questão SELECT CodFornec WHERE NOT EXISTS (SELECT * FROM Peca WHERE CorPeca= Verm AND NOT EXISTS (SELECT * WHERE CodFornec=Fornec.CodFornec AND CodPeca=Peca.CodPeca)) Exemplos (campos vazios) Obter os nomes dos fornecedores para os quais o status foi informado (não está vazio) WHERE StatusFornec IS NOT NULL Comparação (=, <, >,...) com vazio resulta em UNKNOWN Há uma lógica de três valores (TRUE, FALSE e UNKNOWN) Uma expressão lógica pode ser testada por um valor lógico: teste_de_comparaç~ao IS [TRUE FALSE UNKNOWN] ((vendas - quota) > 1000) IS UNKNOWN Exemplos (UNKNOWN) Exemplos (UNKNOWN) Há dois fornecedores em Curitiba, um fornecedor em Porto Alegre e dois fornecedores com cidade não informada Quantos fornecedores retornam? Consulta 1: WHERE CidadeFornec = "Curitiba" Consulta2: WHERE CidadeFornec <> "Curitiba" Há dois fornecedores em Curitiba, um fornecedor em Porto Alegre e dois fornecedores com cidade não informada Quantos fornecedores retornam? Consulta 3: WHERE CidadeFornec <> "Curitiba" or CidadeFornec IS NULL

15 Junção externa Junção externa Modelo básico não oferece a possibilidade de fazer junção externa Exemplo: Obter o código de cada fornecedor, junto com o código de cada peça fornecida. Caso o fornecedor não tenha embarques, obter seu código seguido de NULL. (SELECT CodFornec, CodPeça ) UNION (SELECT Fornec.CodFornec, NULL AS CodPeça WHERE CodFornec NOT IN (SELECT CodFornec ) /1 não continha junção externa Vários produtos implementaram extensões Exemplo de /Server (pré-v.7) e Sybase: SELECT Fornec.CodFornec, CodPeça, Embarq WHERE Fornec.CodFornec *= Embarq.CodFornec Junção externa (notação Oracle) Junção externa no 2 Em Oracle, deve-se informar qual é a coluna da tabela que deve ter a linha NULL imaginária incluída (sinal de adição) SELECT Fornec.CodFornec, CodPeça, Embarq WHERE Fornec.CodFornec = Embarq.CodFornec (+) 2 possui um modelo completo com vários tipos de junções, incluindo a junção theta, a equijunção, a junção natural e a junção externa SELECT Fornec.CodFornec, CodPeça LEFT JOIN Embarq ON Fornec.CodFornec = Embarq.CodFornec

16 Junção externa no 2 equijunção Junção externa no 2 junção natural A sintaxe apresentada na transparência anterior corresponde a uma junção theta de álgebra relacional 2 provê tanto a equijunção quanto a junção natural Equijunção (cláusula USING): SELECT Fornec.CodFornec, CodPeça LEFT JOIN Embarq USING (CodFornec) Equijunção (cláusula NATURAL): SELECT Fornec.CodFornec, CodPeça NATURAL JOIN Embarq 2 Opções de junção 2 Opções de junção Opções de junção: tabela1 [INNER] JOIN tabela2 tabela1 FULL [OUTER] JOIN tabela2 tabela1 LEFT [OUTER] JOIN tabela2 tabela1 RIGHT [OUTER] JOIN tabela2 tabela1 e tabela2 não são limitados a nomes de tabelas podem ser expressões de álgebra tabela1 e tabela2 podem também ser um outro SELECT Produto cartesiano tabela1 CROSS JOIN tabela2 União tabela1 UNION JOIN tabela2

17 2 Opções de junção : Modelo estendido de consulta no modelo básico visto até aqui possui o mesmo poder de expressão de álgebra e cálculo relacional Isso significa que no modelo básico não oferece a possibilidade de executar consultas recursivas ou que envolvam a agregação de dados No modelo estendido, possibilita a manipulação de agregados de dados padrão (2) não possui facilidades para tratar recursividade, mas 3 e diversos produtos oferecem estensões (Ex.: instrução CONNECT de Oracle) A sintaxe de uma instrução de consulta no modelo estendido é: SELECT <lista de colunas> FROM <lista de tabelas> [WHERE <critério>] [GROUP BY <lista de colunas> [HAVING <critério>]] [ORDER BY <lista de colunas>] : Modelo estendido de consulta (modelo de execução) 2 Funções O modelo mental de execução da instrução é o seguinte: 1. É feito o produto cartesiano das tabelas envolvidas 2. São selecionadas as linhas da tabela que obedecem ao critério da cláusula WHERE 3. São criados grupos de linhas que contenham valores idênticos nas colunas GROUP BY 4. São selecionados os grupos que obedecem ao critério da cláusula HAVING 5. É feita a classificação do resultado pelos valores da cláusula ORDER BY 6. É feita a projeção sobre as colunas que vão ao resultado Funções para computar valores média: AVG mínimo: MIN máximo: MAX total: SUM contagem: COUNT As funções podem ser aplicadas sobre Toda a tabela (consulta sem GROUP BY) Grupos de linhas (definidos pela cláusula GROUP BY)

18 Funções sobre toda a tabela uso de agregados Obter o número de fornecedores da base de dados SELECT COUNT(*) Obter o número de cidades em que há fornecedores SELECT COUNT(DISTINCT CidadeFornec) Obter o número de fornecedores com cidade informada SELECT COUNT(CidadeFornec) Obter a quantidade máxima embarcada SELECT MAX(QtdeEmbarq) Obter o número de embarques de cada fornecedor SELECT CodFornec,COUNT(*) GROUP BY CodFornec cláusula GROUP BY uso de agregados Em SELECT que usa GROUP BY, o resultado da consulta pode incluir uma constante uma função de agregação calculada sobre o grupo uma coluna que faz parte da cláusula GROUP BY uma expressão envolvendo os acima Exemplo de expressão incorreta: SELECT Fornec.CodFornec,NomeFornec,Embarq WHERE Fornec.CodFornec=Embarq.CodFornec GROUP BY Fornec.CodFornec Solução: incluir NomeFornec na cláusula GROUP BY Obter o número de embarques de quantidade maior que 300 de cada fornecedor SELECT Fornec.CodFornec,COUNT(*) WHERE QtdeEmbarc > 300 GROUP BY CodFornec

19 uso de agregados uso de agregados Obter a quantidade total embarcada de peças de cor vermelha para cada fornecedor SELECT CodFornec, SUM(QtdeEmbarc) WHERE CodPeca IN (SELECT CodPeca FROM Peca WHERE CorPeca= Verm ) GROUP BY CodFornec Obter a quantidade total embarcada de cada peça. Exibir o resultado por ordem descendente de quantidade embarcada. SELECT CodFornec, SUM(QtdeEmbarc) WHERE Fornec ORDER BY SUM(QtdeEmbarc) DESC No padrão, a referência à segunda coluna do resultado, que tem dados computados, deve ser feita pelo número da coluna, na forma ORDER BY 2 DESC Exemplo de HAVING Exemplo de HAVING Obter os códigos dos fornecedores que tenham embarques de mais de 500 unidades de peças vermelhas, juntamente com a quantidade de peças por eles embarcadas. SELECT CodFornec,COUNT(*) WHERE CodPeça IN (SELECT CodPeça FROM Peça WHERE CorPeça="Verm") GROUP BY CodFornec HAVING SUM(QtdeEmbarq)>500 Observar a diferença entre as cláusula WHERE e a cláusula HAVING: A cláusula WHERE seleciona linhas uma-a-uma - seu critério de seleção envolve valores de atributo da linha A cláusula HAVING seleciona grupos (definidos no GROUP BY) e seu critério de seleção envolve todo grupo de linhas através de funções HAVING seleciona grupos!

20 instruções de atualização Insert VALUES Para incluir um novo fornecedor: provê três instruções de atualização do conteúdo de tabelas previamente definidas e criadas pelo CREATE TABLE INSERT serve para inserir uma ou mais linhas em uma tabela DELETE serve para excluir uma ou mais linhas de uma tabela UPDATE serve para alterar os dados de uma ou mais linhas de uma tabela INSERT INTO Fornec VALUES ( F10, Ambrosio, 12, Curitiba) Importante: O usuário deve lembrar a ordem em que as colunas foram criadas quando do CREATE TABLE INSERT INTO Fornec (CodFornec,NomeFornec,CidadeFornec,StatusFornec) VALUES ( F10, Ambrosio, Curitiba,12) Nesta variante, o usuário não necessita conhecer a ordem original de definição das colunas. Além disso, atributos de valor vazio podem ser omitidos A criação da linha somente será efetivada se as restrições de integridade de chave especificadas (valores não vazios, chaves primária e estrangeiras) forem obedecidas Insert SELECT DELETE Criar embarques com quantidade 100 para todas as peças de cor vermelha, pelo fornecedor de código F5 INSERT INTO Embarq (CodPeca,CodFornec,QtdeEmbarc) SELECT CodPeca, F5, 100 FROM Peca WHERE CorPeca= Verm Nesta variante, é possível criar múltiplas linhas (definidas por uma instrução normal de consulta) em uma tabela Excluir o fornecedor de código F5 DELETE WHERE CodFornec= F5 A sintaxe da cláusula WHERE é a mesma da instrução de consulta A exclusão somente é executada se nenhuma restrição de integridade (chave estrangeira) é violada no caso, significa que o fornecedor somente será excluído se não possuir embarques (cláusula RESTRICT)

21 DELETE UPDATE Modificar o status do fornecedor de código F1 para 20 Excluir todos os embarques de peças vermelhas DELETE WHERE CodPeca IN (SELECT CodPeca FROM Peca WHERE Cor= Verm ) Excluir todos os embarques DELETE UPDATE Fornec SET StatusFornec=20 WHERE CodFornec= F1 Incrementar o status do fornecedor de código F1 em 10% UPDATE Fornec SET StatusFornec=StatusFornec*1.1 WHERE CodFornec= F1 Incrementar de 10% o status de todos os fornecedores que têm embarque de P2 UPDATE Fornec SET StatusFornec=StatusFornec*1.1 WHERE CodFornec IN (SELECT CodFornec WHERE CodPeca= P2 ) Visões em Uma visão em é uma tabela virtual, isto é, uma tabela que não é armazenada fisicamente na base de dados O objetivo de visões é atender usuários que necessitam ver os dados de determinada forma, diferente da de armazenamento Visões são usadas Em combinação com mecanismos de controle de acesso Visões são usadas para aumentar a dependência Quando a definição de tabelas básicas em uma base de dados é modificada, aplicações que a usam podem ser afetadas Se a mudança nas tabelas básicas não afeta a visão, aplicações que usam a visão não são afetadas O conceito genérico de visão em BD é mais abrangente: Qualquer forma de ver dados por um usuário Visões de forma geral teriam que poder ser não normalizadas (ex.: uma nota fiscal) Visões em A instrução para criar uma visão em é CREATE VIEW <nome> AS <consulta > A instrução para eliminar uma visão é DROP VIEW <nome>

22 Exemplos de Visões Exemplos de Visões Criar uma visão da tabela de embarques, na qual apareçam, associados aos códigos de peça e fornecedor os seus dados. CREATE VIEW EmbarqCompl AS (SELECT Embarq.CodPeca,NomePeca, CorPeca,PesoPeca,CidadePeca, Embarq.CodFornec,NomeFornec, StatusFornec,CidadeFornec, QtdeEmbarc,Peca,Fornec WHERE Embarq.CodPeca=Peca.CodPeca AND Embarq.CodFornec=Fornec.CodFornec) Obter o nome do fornecedor e nome da peça para cada embarque.,nomepeca Compl A instrução acessa a visão EmbarqCompl O usuário não necessita especificar toda definição da junção das três tabelas A visão não existe fisicamente: A instrução SELECT de definição da visão é misturada ao SELECT da consulta em tempo de tradução Atualização através de visões permite que uma tabela da base de dados seja atualizada (inserção, exclusão e alteração) através de uma visão A restrição é de que a atualização deve ocorrer sobre uma visão definida sobre uma única tabela da base de dados e que as linhas da visão estejam em relação um-para-um com as linhas da tabela da base de dados Princípio: O mapeamento do efeito da atualização sobre a visão em uma atualização sobre uma tabela da base de dados deve ser não ambíguo Exemplo: Atualizações sobre a visão EmbarqCompl definida acima não são admissíveis, pois ela está definida sobre mais de uma tabela base

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE e INSERT) Prof. Edson Thizon SQL SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados

Leia mais

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS) BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS) Prof. Edson Thizon Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

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

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

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

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 Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

Á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:

Á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: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

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

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

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

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

Leia mais

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL) Aula Prática Structured Query Language (SQL) Aula Prática Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina Introdução Banco de Dados SQL Fernando Fonseca Ana Carolina SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta, permitindo definição (DDL)

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003 Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

A Linguagem SQL. Introdução a Banco de Dados DCC 011

A Linguagem SQL. Introdução a Banco de Dados DCC 011 A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

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

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Linguagem SQL: Introdução; Construção/Definição de tabelas. 2 Linguagem SQL SQL - Structured Query Language;

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

SQL (Linguagem de Consulta Estruturada)

SQL (Linguagem de Consulta Estruturada) SQL (Linguagem de Consulta Estruturada) M.Sc. Cristiano Mariotti mscmariotti@globo.com Introdução à SQL 1 Visão Geral Introdução Comandos de Definição de Dados Comandos de Manipulação de Dados Introdução

Leia mais

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Aplicações - SQL Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Picture by Steve Kelley 2008 SQL SQL Structured Query Language Originalmente:

Leia mais

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes Banco de dados 1 Linguagem SQL DDL e DML Professor: Victor Hugo L. Lopes Agenda: Introdução à linguagem de dados; DDL; DML; CRUD; Introdução à linguagem SQL. 2 Por que precisamos da linguagem SQL? A algebra

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si. NOME: BRUNO BRUNELI BANCO DE DADOS - ADS create database ProducaoMinerais use ProducaoMinerais create table Mineral( nome varchar(15) primary key, preco real) create table Pais( nome varchar(30) primary

Leia mais

Projeto e Implementação

Projeto e Implementação Felipe Nery Rodrigues Machado Banco de Dados Projeto e Implementação 2 Edição 4 Reimpressão São Paulo 2011 Editora Érica Ltda. 3 Projeto Sumário Capítulo 1 O Que É Projeto de Banco de Dados 15 Modelagem

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

Leia mais

Comandos DDL. id_modulo = id_m odulo

Comandos DDL. id_modulo = id_m odulo Comandos DDL Estudo de Caso Controle Acadêmico Simplificado Uma escola contém vários cursos, onde cada aluno possui uma matricula num determinado curso. Estes cursos, por sua vez, possuem módulos, aos

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php)

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Clínica Todos os exemplos apresentados utilizam o SGBD Postgre - open source Documentação: http://www.postgresql.org/docs (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Ambulatorios(numero, andar,

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas

Leia mais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

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

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language) SQL BÁSICO Prof. Suelane Garcia Introdução 2 Linguagem SQL (Structured Query Language) Linguagem de Consulta Estruturada padrão para acesso a Banco de Dados. Usada em inúmeros Sistemas de Gerenciamento

Leia mais

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL SQL, é uma linguagem de programação que foi desenvolvida para questionar bases de dados relacionais

Leia mais

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 BASES DE DADOS I LTSI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que a IBM desenvolvia

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados SQL-Consultas Comando SELECT Prof. Luiz Antônio Vivacqua C. Meyer (la.vivacqua@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1,

Leia mais

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira

Engenharia de Computação / Engenharia de Produção. Banco de Dados Prof. Maria das Graças da Silva Teixeira Unidade 3 SQL Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José Pereira Contexto na Disciplina

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

SQL. Introdução. Por que SQL? Setenças Select-From-Where

SQL. Introdução. Por que SQL? Setenças Select-From-Where Introdução SQL Bancos de Dados I Altigran Soares da Silva IComp/UFAM 2013/02 Adaptado do Material do Professor Jeffrey Ullman Originalmente proposta para o System R desenvolvido nos laboratórios da IBM

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

Leia mais

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Banco de Dados I Linguagem SQL Parte 2 Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Introdução Como vimos, um SGBD possui duas linguagens: DDL: Linguagem de Definição de Dados. Usada

Leia mais

Linguagem SQL (Parte II)

Linguagem SQL (Parte II) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte II Introdução

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

SQL comando SELECT. SELECT [DISTINCT] FROM [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL (86); SQL-2 (92); SQL-3 (99) e SQL:2003 não é apenas uma linguagem de consulta! como o nome sugere...

Leia mais

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

Programação SQL. INTRODUÇÃO II parte

Programação SQL. INTRODUÇÃO II parte Programação SQL INTRODUÇÃO II parte Programação SQL SELECT; INSERT; UPDATE; DELETE. Este conjunto de comandos faz parte da sublinguagem denominada por DML Data Manipulation Language (Linguagem de manipulação

Leia mais

SQL (STRUCTUREDQUERY LANGUAGE)

SQL (STRUCTUREDQUERY LANGUAGE) BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SQL (STRUCTUREDQUERY

Leia mais

Banco de Dados - Senado

Banco de Dados - Senado Banco de Dados - Senado Structured Query Language (SQL) Material preparado :Prof. Marcio Vitorino Ambiente Simplificado de um SGBD 2 Características dos SGBDs Natureza auto-contida de um sistema de banco

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL- (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br Os comandos SQL podem ser agrupados em 3 classes: DDL Data Definition Language Comandos para a Definição

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL-1 (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias

Leia mais

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML Banco de Dados I Linguagem de Consulta (parte I) DDL DML Linguagem de Consulta:SQL contéudo Structured Query Language Originalmente SEQUEL Structured English Query Language Projeta e Implementada pela

Leia mais

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de

Leia mais

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

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

BDII SQL Junção Revisão 8

BDII SQL Junção Revisão 8 exatasfepi.com.br BDII SQL Junção Revisão 8 André Luís Duarte Leais são as feridas feitas pelo amigo, mas os beijos do inimigo são enganosos. Provérbios 27:6 SQL Introdução Produto cartesiano Nomes alternativos

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro SQL- Strutured Query Language é a linguagem mais usada nas bases dados relacionais. Originalmente desenvolvida pela IBM Actualmente é um standard, o mais recente é o SQL:2003

Leia mais

Capítulo 4 A Linguagem SQL. Murilo Silva de Camargo

Capítulo 4 A Linguagem SQL. Murilo Silva de Camargo Capítulo 4 A Linguagem SQL Murilo Silva de Camargo 1 SQL - Structured Query Language Estrutura básica Operações de conjunto Funções agregadas Valores nulos Sob consultas aninhadas Relações derivadas Visões

Leia mais