Baixe o app para aproveitar ainda mais
Prévia do material em texto
Referência: Prof. Fábio Silvestre BANCO DE DADOS � Professor: Luciano Vale, MSc. Contato: lucianovale@gmail.com Referência: Prof. Fábio Silvestre � Surgimento da linguagem SEQUEL por pesquisadores da IBM. � SEQUEL foi a primeira linguagem criada para consulta a banco de dados relacionais. � Crescimento do bancos de dados sem uma linguagem padrão de consulta definida. � Surgimento de uma linguagem de consulta padrão chamada SQL de um trabalho conjunto entre ISO e ANSI. (SQL-86). � Aperfeiçoamentos da linguagem através do SQL-92, SQL99, SQL:2003 e SQL:2005. Referência: Prof. Fábio Silvestre � LinguagemLinguagemLinguagemLinguagem dededede DefiniçãoDefiniçãoDefiniçãoDefinição dededede DadosDadosDadosDados (DDL)(DDL)(DDL)(DDL) - Linguagem utilizada para definir a estrutura de armazenamento dos dados, também chamada de dicionário de dados ou metadados. � LinguagemLinguagemLinguagemLinguagem dededede ManipulaçãoManipulaçãoManipulaçãoManipulação dededede DadosDadosDadosDados (DML)(DML)(DML)(DML) - Linguagem utilizada para leitura e armazenamento de dados. � LinguagemLinguagemLinguagemLinguagem dededede ControleControleControleControle dededede DadosDadosDadosDados (DCL)(DCL)(DCL)(DCL) - Linguagem utilizada para controle de sessão, transação, além do controle do próprio sistema de banco de dados. Referência: Prof. Fábio Silvestre � LinguagemLinguagemLinguagemLinguagem dededede DefiniçãoDefiniçãoDefiniçãoDefinição dededede DadosDadosDadosDados (DDL)(DDL)(DDL)(DDL) - Linguagem utilizada para definir a estrutura de armazenamento dos dados, também chamada de dicionário de dados ou metadados. � LinguagemLinguagemLinguagemLinguagem dededede ManipulaçãoManipulaçãoManipulaçãoManipulação dededede DadosDadosDadosDados (DML)(DML)(DML)(DML) - Linguagem utilizada para leitura e armazenamento de dados. � LinguagemLinguagemLinguagemLinguagem dededede ControleControleControleControle dededede DadosDadosDadosDados (DCL)(DCL)(DCL)(DCL) - Linguagem utilizada para controle de sessão, transação, além do controle do próprio sistema de banco de dados. Referência: Prof. Fábio Silvestre � CREATECREATECREATECREATE � ALTERALTERALTERALTER � DROPDROPDROPDROP Referência: Prof. Fábio Silvestre CREATE TABLE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA ( COLCOLCOLCOL1111 TIPO_COL1 [NOT NULL], COLCOLCOLCOL2222 TIPO_COL2 [NOT NULL], ..., COLNCOLNCOLNCOLN TIPO_COLN [NOT NULL] ) Referência: Prof. Fábio Silvestre CREATE TABLE EDITORAEDITORAEDITORAEDITORA ( CODIGOCODIGOCODIGOCODIGO NUMBER NOT NULL, NOMENOMENOMENOME VARCHAR2(80) NOT NULL ) Referência: Prof. Fábio Silvestre CREATE TABLE LIVROLIVROLIVROLIVRO ( CODIGOCODIGOCODIGOCODIGO NUMBER NOT NULL, TITULOTITULOTITULOTITULO VARCHAR2(80) NOT NULL, PRECOPRECOPRECOPRECO NUMBER, LANCAMENTOLANCAMENTOLANCAMENTOLANCAMENTO DATE, COD_EDITORACOD_EDITORACOD_EDITORACOD_EDITORA NUMBER(2) ) Referência: Prof. Fábio Silvestre � Chave Primária � Chave Estrangeira � Restrição de Domínio Referência: Prof. Fábio Silvestre CONSTRAINT NOME_RESTRIÇÃONOME_RESTRIÇÃONOME_RESTRIÇÃONOME_RESTRIÇÃO TIPO_RESTRIÇÃO Referência: Prof. Fábio Silvestre CREATE TABLE EDITORAEDITORAEDITORAEDITORA ( CODIGOCODIGOCODIGOCODIGO NUMBER CONSTRAINT PK_EDITORACONSTRAINT PK_EDITORACONSTRAINT PK_EDITORACONSTRAINT PK_EDITORA PRIMARY KEY, NOMENOMENOMENOME VARCHAR2(80) NOT NULL ) CREATE TABLE ASSUNTOASSUNTOASSUNTOASSUNTO ( CODIGOCODIGOCODIGOCODIGO NUMBER CONSTRAINTCONSTRAINTCONSTRAINTCONSTRAINT PK_ASSUNTOPK_ASSUNTOPK_ASSUNTOPK_ASSUNTO PRIMARY KEY, NOMENOMENOMENOME VARCHAR2(100) NOT NULL ) Referência: Prof. Fábio Silvestre CREATE TABLE LIVROLIVROLIVROLIVRO ( CODIGOCODIGOCODIGOCODIGO NUMBER NOT NULL, TITULOTITULOTITULOTITULO VARCHAR2(80) NOT NULL, PRECOPRECOPRECOPRECO NUMBER, LANCAMENTOLANCAMENTOLANCAMENTOLANCAMENTO DATE, COD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTO NUMBER CONSTRAINT FK_LIVRO_ASSUNTO REFERENCES ASSUNTO, COD_EDITORACOD_EDITORACOD_EDITORACOD_EDITORA NUMBER CONSTRAINT FK_LIVRO_EDITORA REFERENCES EDITORA ) Referência: Prof. Fábio Silvestre CREATE TABLE LIVROLIVROLIVROLIVRO ( CODIGOCODIGOCODIGOCODIGO NUMBER NOT NULL, TITULOTITULOTITULOTITULO VARCHAR2(80) CONSTRAINTCONSTRAINTCONSTRAINTCONSTRAINT CHK_TITULOCHK_TITULOCHK_TITULOCHK_TITULO CHECK (TITULO LIKE ‘BANC%’), PRECOPRECOPRECOPRECO CONSTRAINTCONSTRAINTCONSTRAINTCONSTRAINT CHK_PRECOCHK_PRECOCHK_PRECOCHK_PRECO NUMBER CHECK (PRECO > 1500), LANCAMENTOLANCAMENTOLANCAMENTOLANCAMENTO DATE, COD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTO CONSTRAINTCONSTRAINTCONSTRAINTCONSTRAINT CHK_COD_ASSUNTOCHK_COD_ASSUNTOCHK_COD_ASSUNTOCHK_COD_ASSUNTO NUMBER CHECK (COD_ASSUNTO IN (1,2,3)) ) Referência: Prof. Fábio Silvestre ATRIBUTO TIPO_COLUNA DEFAULTDEFAULTDEFAULTDEFAULT VALOR_PADRAO Referência: Prof. Fábio Silvestre CREATE TABLE LIVROLIVROLIVROLIVRO ( CODIGOCODIGOCODIGOCODIGO NUMBER NOT NULL, TITULOTITULOTITULOTITULO VARCHAR2(80) , PRECOPRECOPRECOPRECO NUMBER DEFAULT 150, LANCAMENTOLANCAMENTOLANCAMENTOLANCAMENTO DATE DEFAULT SYSDATE, COD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTO NUMBER ) Referência: Prof. Fábio Silvestre 1. Impedindo a exclusão: COD_ASSUNTO CHAR(1) CONSTRAINT FK_LIVRO_ASSUNTO REFERENCES ASSUNTO ON DELETE RESTRICT 2. Transformando o valor da tabela filha em nulo: COD_ASSUNTO CHAR(1) CONSTRAINT FK_LIVRO_ASSUNTO REFERENCES ASSUNTO ON DELETE SET NULL Referência: Prof. Fábio Silvestre 3. Excluindo em cascata: COD_ASSUNTO CHAR(1) CONSTRAINT FK_LIVRO_ASSUNTO REFERENCES ASSUNTO ON DELETE CASCADE Referência: Prof. Fábio Silvestre CREATE TABLE LIVROLIVROLIVROLIVRO ( CODIGOCODIGOCODIGOCODIGO NUMBER NOT NULL, TITULOTITULOTITULOTITULO VARCHAR2(80) NOT NULL, PRECOPRECOPRECOPRECO NUMBER, LANCAMENTOLANCAMENTOLANCAMENTOLANCAMENTO DATE, COD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTO NUMBER CONSTRAINT FK_LIVRO_ASSUNTO REFERENCES ASSUNTO, COD_EDITORACOD_EDITORACOD_EDITORACOD_EDITORA NUMBER CONSTRAINT FK_LIVRO_EDITORA REFERENCES EDITORA ON DELETE CASCADE ) Referência: Prof. Fábio Silvestre ALTER TABLE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA ADD [COLUMN] NOME_COLUNANOME_COLUNANOME_COLUNANOME_COLUNA TIPO_COLUNA RESTRIÇÕES Obs.: A palavra reservada COLUMNCOLUMNCOLUMNCOLUMN é opcional no DB2 9, mas não pode ser utilizada no Oracle 10g e no SQL Server 2005. Referência: Prof. Fábio Silvestre ALTER TABLE LIVROLIVROLIVROLIVRO ADD EDICAOEDICAOEDICAOEDICAO NUMBER(5) ALTER TABLE EDITORAEDITORAEDITORAEDITORA ADD CIDADECIDADECIDADECIDADE VARCHAR2(50) NOT NULL Referência: Prof. Fábio Silvestre ALTER TABLE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA DROP [COLUMN] NOME_COLUNANOME_COLUNANOME_COLUNANOME_COLUNA Obs.: A palavra reservada COLUMNCOLUMNCOLUMNCOLUMN é opcional no DB2 9, mas é requerida no Oracle 10g e no SQL Server 2005. Referência: Prof. Fábio Silvestre ALTER TABLE LIVROLIVROLIVROLIVRO DROP COLUMN EDICAOEDICAOEDICAOEDICAO ALTER TABLE EDITORAEDITORAEDITORAEDITORA DROP COLUMN CIDADECIDADECIDADECIDADE Referência: Prof. Fábio Silvestre ALTER TABLE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA ADD CONSTRAINT NOME_RESTRIÇÃONOME_RESTRIÇÃONOME_RESTRIÇÃONOME_RESTRIÇÃO TIPO_RESTRIÇÃO ( COLUNACOLUNACOLUNACOLUNA1111_RESTRIÇÃO_RESTRIÇÃO_RESTRIÇÃO_RESTRIÇÃO, COLUNACOLUNACOLUNACOLUNA2222_RESTRIÇÃO_RESTRIÇÃO_RESTRIÇÃO_RESTRIÇÃO, ..., COLUNAN_RESTRICAOCOLUNAN_RESTRICAOCOLUNAN_RESTRICAOCOLUNAN_RESTRICAO) Referência: Prof. Fábio Silvestre ALTER TABLE LIVRO LIVRO LIVRO LIVRO ADD CONSTRAINT PK_LIVROPK_LIVROPK_LIVROPK_LIVRO PRIMARY KEY(CODIGOCODIGOCODIGOCODIGO) ALTER TABLE LIVRO LIVRO LIVRO LIVRO ADD CONSTRAINT FK_LIVRO_ASSUNTOFK_LIVRO_ASSUNTOFK_LIVRO_ASSUNTOFK_LIVRO_ASSUNTO FOREIGN KEY(COD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTO) REFERENCES ASSUNTOASSUNTOASSUNTOASSUNTO ALTER TABLE LIVRO LIVRO LIVROLIVRO ADD CONSTRAINT FK_LIVRO_EDITORAFK_LIVRO_EDITORAFK_LIVRO_EDITORAFK_LIVRO_EDITORA FOREIGN KEY(COD_EDITORACOD_EDITORACOD_EDITORACOD_EDITORA) REFERENCES EDITORAEDITORAEDITORAEDITORA Referência: Prof. Fábio Silvestre ALTER TABLE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA DROP CONSTRAINT NOME_RESTRIÇÃONOME_RESTRIÇÃONOME_RESTRIÇÃONOME_RESTRIÇÃO Referência: Prof. Fábio Silvestre ALTER TABLE LIVROLIVROLIVROLIVRO DROP CONSTRAINT PK_LIVROPK_LIVROPK_LIVROPK_LIVRO ALTER TABLE LIVROLIVROLIVROLIVRO DROP CONSTRAINT FK_LIVRO_EDITORAFK_LIVRO_EDITORAFK_LIVRO_EDITORAFK_LIVRO_EDITORA Referência: Prof. Fábio Silvestre DROP TABLE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA [CASCADE] Obs.: A palavra reservada CASCADECASCADECASCADECASCADE não é reconhecida no DB2 9. No Oracle 10g, a palavra reservada CASCADECASCADECASCADECASCADE deve vir acompanhada da palavra CONSTRAINTSCONSTRAINTSCONSTRAINTSCONSTRAINTS. O SQL Server 2005 não reconhece a cláusula CASCADECASCADECASCADECASCADE. Referência: Prof. Fábio Silvestre DROP TABLE LIVROLIVROLIVROLIVRO DROP TABLE EDITORAEDITORAEDITORAEDITORA DROP TABLE ASSUNTOASSUNTOASSUNTOASSUNTO CASCADE CONSTRAINTS Referência: Prof. Fábio Silvestre � LinguagemLinguagemLinguagemLinguagem dededede DefiniçãoDefiniçãoDefiniçãoDefinição dededede DadosDadosDadosDados (DDL)(DDL)(DDL)(DDL) - Linguagem utilizada para definir a estrutura de armazenamento dos dados, também chamada de dicionário de dados ou metadados. � LinguagemLinguagemLinguagemLinguagem dededede ManipulaçãoManipulaçãoManipulaçãoManipulação dededede DadosDadosDadosDados (DML)(DML)(DML)(DML) - Linguagem utilizada para leitura e armazenamento de dados. � LinguagemLinguagemLinguagemLinguagem dededede ControleControleControleControle dededede DadosDadosDadosDados (DCL)(DCL)(DCL)(DCL) - Linguagem utilizada para controle de sessão, transação, além do controle do próprio sistema de banco de dados. Referência: Prof. Fábio Silvestre � INSERTINSERTINSERTINSERT � UPDATEUPDATEUPDATEUPDATE � DELETEDELETEDELETEDELETE Referência: Prof. Fábio Silvestre INSERT INTO NOME_TABELANOME_TABELANOME_TABELANOME_TABELA (COLCOLCOLCOL1111, COLCOLCOLCOL2222, ..., COLNCOLNCOLNCOLN ) VALUES (VALVALVALVAL1111, VALVALVALVAL2222, ..., VALNVALNVALNVALN ) Referência: Prof. Fábio Silvestre INSERT INTO LIVRO LIVRO LIVRO LIVRO (CODIGO, TITULO, PRECO, LANCAMENTOCODIGO, TITULO, PRECO, LANCAMENTOCODIGO, TITULO, PRECO, LANCAMENTOCODIGO, TITULO, PRECO, LANCAMENTO) VALUES (1111, ‘BANCO DE DADOS PARA WEB’BANCO DE DADOS PARA WEB’BANCO DE DADOS PARA WEB’BANCO DE DADOS PARA WEB’, 432.45432.45432.45432.45, ‘16/05/2006’16/05/2006’16/05/2006’16/05/2006’) INSERT INTO LIVRO LIVRO LIVRO LIVRO VALUES (2, ‘SISTEMAS OPERACIONAIS’SISTEMAS OPERACIONAIS’SISTEMAS OPERACIONAIS’SISTEMAS OPERACIONAIS’, 387.67387.67387.67387.67, NULL) INSERT INTO LIVRO LIVRO LIVRO LIVRO (CODIGO, TITULO, PRECO, LANCAMENTOCODIGO, TITULO, PRECO, LANCAMENTOCODIGO, TITULO, PRECO, LANCAMENTOCODIGO, TITULO, PRECO, LANCAMENTO) VALUES (1111, ‘BANCO DE DADOS PARA WEB’BANCO DE DADOS PARA WEB’BANCO DE DADOS PARA WEB’BANCO DE DADOS PARA WEB’, 432.45432.45432.45432.45, TO_DATE(‘16/05/2006’ , ‘DD/MM/YYYY’16/05/2006’ , ‘DD/MM/YYYY’16/05/2006’ , ‘DD/MM/YYYY’16/05/2006’ , ‘DD/MM/YYYY’) ) Referência: Prof. Fábio Silvestre UPDATE NOME_TABELANOME_TABELANOME_TABELANOME_TABELA SET COLCOLCOLCOL1111 = VALVALVALVAL1111, COLCOLCOLCOL2222 = VALVALVALVAL2222, ..., COLNCOLNCOLNCOLN = VALNVALNVALNVALN WHERE EXPRESSAO_LOGICAEXPRESSAO_LOGICAEXPRESSAO_LOGICAEXPRESSAO_LOGICA Referência: Prof. Fábio Silvestre UPDATE LIVROLIVROLIVROLIVRO SET PRECOPRECOPRECOPRECO = 42, TITULOTITULOTITULOTITULO = ‘PROGRAMAÇÃO EM LINGUAGEM C’ WHERE CODIGOCODIGOCODIGOCODIGO = 2 UPDATE LIVROLIVROLIVROLIVRO SET PRECOPRECOPRECOPRECO = 42, COD_EDITORACOD_EDITORACOD_EDITORACOD_EDITORA = 1 WHERE COD_EDITORA COD_EDITORA COD_EDITORA COD_EDITORA = 2 AND PRECOPRECOPRECOPRECO > 50.50 Referência: Prof. Fábio Silvestre DELETE FROM NOME_TABELANOME_TABELANOME_TABELANOME_TABELA WHERE EXPRESSAO_LOGICAEXPRESSAO_LOGICAEXPRESSAO_LOGICAEXPRESSAO_LOGICA Referência: Prof. Fábio Silvestre DELETE FROM LIVROLIVROLIVROLIVRO WHERE DATA_LANCAMENTODATA_LANCAMENTODATA_LANCAMENTODATA_LANCAMENTO IS NULL AND PRECOPRECOPRECOPRECO > 50.32 DELETE FROM LIVROLIVROLIVROLIVRO WHERE COD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTOCOD_ASSUNTO = ‘B’ OR DATA_LANCAMENTODATA_LANCAMENTODATA_LANCAMENTODATA_LANCAMENTO IS NULL Referência: Prof. Fábio Silvestre Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT COL1, COL2, ..., COLN FROMFROMFROMFROM NOME_TABELA1, NOME_TABELA2, ..., NOME_TABELAN WHEREWHEREWHEREWHERE EXPRESSAO_LOGICA_WHERE GROUPGROUPGROUPGROUP BYBYBYBY COL1, COL2, ..., COLN HAVINGHAVINGHAVINGHAVING EXPRESSAO_LOGICA_HAVING ORDERORDERORDERORDER BYBYBYBY COL1, COL2, ..., COLN Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT COL1, COL2, ..., COLN FROMFROMFROMFROM NOME_TABELA Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT CODIGO, TITULO FROMFROMFROMFROM LIVRO CODIGO TITULO ---------- ------------------------------------- ---- 1 BANCO DE DADOS PARA WEB 2 PROGRAMANDO EM LINGUAGEM C 3 PROGRAMANDO EM LINGUAGEM C++ 4 BANCO DE DADOS NA BIOINFORMÁTICA 5 REDES DE COMPUTADORES Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT COL1, COL2, ..., COLN FROMFROMFROMFROM NOME_TABELA WHEREWHEREWHEREWHERE EXPRESSAO_LOGICA Referência: Prof. Fábio Silvestre 1111.... OperadoresOperadoresOperadoresOperadores dededede ComparaçãoComparaçãoComparaçãoComparação:::: >, <, =, >=, <=, <> 2222.... OperadoresOperadoresOperadoresOperadores LógicosLógicosLógicosLógicos:::: AND, OR e NOT 3333.... PredicadosPredicadosPredicadosPredicados própriosprópriosprópriospróprios dadadada linguagemlinguagemlinguagemlinguagem SQLSQLSQLSQL:::: IS (NOT) NULL, LIKE, IN e EXISTS Referência: Prof. Fábio Silvestre 1. ComparaçõesComparaçõesComparaçõesComparações atravésatravésatravésatravés operadoresoperadoresoperadoresoperadores relacionaisrelacionaisrelacionaisrelacionais: WHEREWHEREWHEREWHERE PRECO > 50 WHEREWHEREWHEREWHERE PRECO > 50 ANDANDANDAND ASSUNTO = ‘P’ 2. ComparaçõesComparaçõesComparaçõesComparações comcomcomcom valorvalorvalorvalor nulonulonulonulo: WHEREWHEREWHEREWHERE DATA_LANCAMENTO IS NULL WHEREWHEREWHEREWHERE DATA_LANCAMENTO IS NOT NULL Referência: Prof. Fábio Silvestre 3. ComparaçõesComparaçõesComparaçõesComparações comcomcomcom cadeiacadeiacadeiacadeia dededede caracterescaracterescaracterescaracteres:::: WHEREWHEREWHEREWHERE TITULO LIKE ‘BANCO DE DADOS’ WHEREWHEREWHEREWHERE TITULO LIKE ‘BANCO DE DADOS%’ WHEREWHEREWHEREWHERE TITULO LIKE ‘%BANCO DE DADOS’ WHEREWHEREWHEREWHERE TITULO LIKE ‘%BANCO DE DADOS%’ WHEREWHEREWHEREWHERE TITULO LIKE ‘%BANCO%DADOS%’ Referência: Prof. Fábio Silvestre 3. ComparaçõesComparaçõesComparaçõesComparações emememem intervalointervalointervalointervalo dededede valoresvaloresvaloresvalores:::: WHEREWHEREWHEREWHERE PRECO BETWEENBETWEENBETWEENBETWEEN 30 ANDANDANDAND 100 4. ComparaçõesComparaçõesComparaçõesComparações emememem umumumum conjuntoconjuntoconjuntoconjunto dededede valoresvaloresvaloresvalores: WHEREWHEREWHEREWHERE ASSUNTO ININININ (‘S’, ‘P’, ‘B’) Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT TITULO FROMFROMFROMFROM LIVRO WHEREWHEREWHEREWHERE DATA_LANCAMENTO IS NULL TITULO ---------------------------------------------------- BANCO DE DADOS NA BIOINFORMATICA Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT COD_ASSUNTO FROMFROMFROMFROM LIVRO WHEREWHEREWHEREWHERE CODIGO = 3 COD_ASSUNTO ------------------- P Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT CODIGO, TITULO,PRECO FROMFROMFROMFROM LIVRO WHEREWHEREWHEREWHERE TITULO LIKELIKELIKELIKE ‘%LINGUAGEM C%’ CODIGO TITULO PRECO ----------- -------------------------------------- ------ --------------- 2 PROGRAMANDO EM LINGUAGEM C 30 3 PROGRAMANDO EM LINGUAGEM C++ 111.5 Referência: Prof. Fábio Silvestre � Contagem � Soma � Média � Valor Máximo � Valor Mínimo Referência: Prof. Fábio Silvestre SELECT COUNT(*) FROM LIVRO COUNT(*) ------------ 5 SELECT COUNT(CODIGO) FROM LIVRO COUNT(CODIGO) ------------- 5 SELECT COUNT(LANCAMENTO) FROM LIVRO COUNT(LANCAMENTO) ------------- 4 Referência: Prof. Fábio Silvestre SELECT SUM(PRECO) FROM LIVRO SUM(PRECO) ---------------- 262.7 Referência: Prof. Fábio Silvestre SELECT AVG(PRECO) FROM LIVRO AVG(PRECO) ---------------- 52.54 Referência: Prof. Fábio Silvestre SELECT MAX(PRECO) FROM LIVRO MAX(PRECO) ---------------- 111.5 Referência: Prof. Fábio Silvestre SELECT MIN(PRECO) FROM LIVRO MIN(PRECO) ---------------- 31.2 Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT COL1, COL2, ..., COLN, FUNCAO1, FUNCAO2, ..., FUNCAON FROMFROMFROMFROM NOME_TABELA WHEREWHEREWHEREWHERE EXPRESSAO_LOGICA GROUPGROUPGROUPGROUP BYBYBYBY COL1, COL2, ..., COLN Referência: Prof. Fábio Silvestre SELECT COD_ASSUNTO, AVG(PRECO) FROM LIVRO GROUP BY COD_ASSUNTO COD_ASSUNTO AVG(PRECO) ------------------- ---------------- B 39.6 P 70.75 R 42 Referência: Prof. Fábio Silvestre SELECT COD_ASSUNTO, MAX(PRECO) FROM LIVRO WHERE LANCAMENTO IS NOT NULL GROUP BY COD_ASSUNTO COD_ASSUNTO MAX(PRECO) ------------------- ---------------- B 31.2 P 111.5 R 42 Referência: Prof. Fábio Silvestre SELECT CODIGO, COD_ASSUNTO, MAX(PRECO) FROM LIVRO GROUP BY CODIGO, COD_ASSUNTO CODIGO COD_ASSUNTO MAX(PRECO) ------------ --------------------- --------------- - 1 B 31.2 2 P 30 3 P 111.5 4 B 48 5 R 42 Referência: Prof. Fábio Silvestre SELECTSELECTSELECTSELECT COL1, COL2, ..., COLN, FUNCAO1, FUNCAO2, ..., FUNCAON FROMFROMFROMFROM NOME_TABELA WHEREWHEREWHEREWHERE EXPRESSAO_LOGICA_WHERE GROUPGROUPGROUPGROUP BYBYBYBY COL1, COL2, ..., COLN HAVINGHAVINGHAVINGHAVING EXPRESSAO_LOGICA_HAVING Referência: Prof. Fábio Silvestre SELECT COD_ASSUNTO FROM LIVRO GROUP BY COD_ASSUNTO HAVING AVG(PRECO) > 50 COD_ASSUNTO --------------------- P Referência: Prof. Fábio Silvestre SELECT COD_ASSUNTO, COUNT(*) FROM LIVRO GROUP BY COD_ASSUNTO HAVING COUNT(*) > 1 COD_ASSUNTO COUNT(*) ---------------------- ------------- B 2 P 2 Referência: Prof. Fábio Silvestre SELECT COD_ASSUNTO, COUNT(*) FROM LIVRO WHERE DATA_LANCAMENTO IS NOT NULL GROUP BY COD_ASSUNTO HAVING COUNT(*) > 1 COD_ASSUNTO COUNT(*) -------------------- ------------- P 2
Compartilhar