Oscar Luiz Monteiro de Farias 1. Bancos de Dados. Mestrado em Engenharia de Computação área de concentração Geomática

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

Download "Oscar Luiz Monteiro de Farias 1. Bancos de Dados. Mestrado em Engenharia de Computação área de concentração Geomática"

Transcrição

1 Oscar Luiz Monteiro de Farias 1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática

2 Oscar Luiz Monteiro de Farias 2 Structured Query Language (SQL)... Linguagem de Banco de Dados com comandos para definição de dados, consulta e atualização Origens: SEQUEL (Structured English QUEry Language) Projetada e implementada nos centros de pesquisa IBM como interface para o SYSTEM R - um Sistema de Banco de Dados Relacional. Linguagem de consulta do DB2 da IBM e de vários outros bancos de dados

3 Oscar Luiz Monteiro de Farias 3 Structured Query Language (SQL) esforços da ANSI (American National Standards Institute) e ISO (International Standards Organization) para padronização: SQL1 (SQL ANSI 1986) SQL2 (SQL ANSI 1992) SQL3 (...) Inserida em várias hosts-languages (C, Pascal, etc.)

4 Oscar Luiz Monteiro de Farias 4 Definição de Dados em SQL... SQL usa os termos table, row e column para relação, tupla e atributo, respectivamente. As primeiras versões do SQL não incluíam o conceito de schema Um schema SQL é identificada por um nome de schema e inclui um identificador de autorização para indicar o usuário proprietário do schema, bem como descritores para cada elemento do schema. Elementos do schema: tabelas, visões, domínios e outros (ex. autorizações) Um schema pode, ao ser criado, incluir todas as definições de seus elementos, ou, alternativamente, incluí-las mais tarde.

5 Oscar Luiz Monteiro de Farias 5 Definição de Dados em SQL... CREATE SCHEMA COMPANY AUTHORIZATION SMITH; Catálogo: representa uma coleção de schemas em um ambiente SQL Um catálogo sempre contém um elemento especial chamado INFORMATION_SCHEMA, que fornece informações sobre todos os descritores de elementos de todos os seus esquemas, para os usuários autorizados. Restrições de integridade podem ser definidas apenas entre as relações pertencentes a um mesmo catálogo. Schemas dentro de um mesmo catálogo podem compartilhar certos elementos, como definições de domínios.

6 Oscar Luiz Monteiro de Farias 6 Definição de Dados em SQL... O comando CREATE TABLE é utilizado para especificar uma relação, incluindo o nome da relação, seus atributos e restrições de integridade. Especificam-se os atributos, fornecendo-se um nome para cada um, bem como um tipo de dados para determinar o domínio dos valores e, possivelmente, restrições. Especificam-se as restrições de chave, integridade da entidade e integridade referencial.

7 Oscar Luiz Monteiro de Farias 7

8 Oscar Luiz Monteiro de Farias 8

9 Oscar Luiz Monteiro de Farias 9 Exemplo: Banco de Dados Companhia CREATE TABLE EMPLOYEE (FNAME VARCHAR(15) NOT NULL, MINIT CHAR, LNAME VARCHAR(15) NOT NULL, SSN CHAR(9)NOT NULL, BDATE DATE, ADDRESS VARCHAR(30), SEX CHAR, SALARY DECIMAL(10,2), SUPERSSN CHAR(9), DNOINT NOT NULL, PRIMARY KEY (SSN), FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN), FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER));

10 Oscar Luiz Monteiro de Farias 10 Exemplo: Banco de Dados Companhia CREATE TABLE DEPARTMENT (DNAME VARCHAR(15) NOT NULL, DNUMBER INT NOT NULL, MGRSSN CHAR(9) NOT NULL, MGRSTARTDATE DATE, PRIMARY KEY (DNUMBER), UNIQUE (DNAME), FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE (SSN)); CREATE TABLE DEPT_LOCATIONS ( DNUMBER INT NOT NULL, DLOCATION VARCHAR(15) NOT NULL, PRIMARY KEY (DNUMBER, DLOCATION), FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT (DNUMBER));

11 Oscar Luiz Monteiro de Farias 11 Exemplo: Banco de Dados Companhia CREATE TABLE PROJECT (PNAME VARCHAR(15) NOT NULL, PNUMBER INT NOT NULL, PLOCATION VARCHAR(15), DNUM INT NOT NULL, PRIMARY KEY (PNUMBER), UNIQUE (PNAME), FOREIGN KEY (DNUM) REFERENCES DEPARTMENT (DNUMBER)); CREATE TABLE WORKS_ON (ESSN CHAR(9) NOT NULL, PNO INT NOT NULL, HOURS DECIMAL(3,1), NOT NULL, PRIMARY KEY (ESSN, PNO), FOREIGN KEY (ESSN ) REFERENCES EMPLOYEE (SSN), FOREIGN KEY (PNO) REFERENCES PROJECT (PNUMBER));

12 Oscar Luiz Monteiro de Farias 12 Exemplo: Banco de Dados Companhia CREATE TABLE DEPENDENT (ESSN CHAR(9) NOT NULL, DEPENDENT_NAME VARCHAR(15) NOT NULL, SEX BDATE CHAR, DATE, RELATIONSHIP VARCHAR(8), PRIMARY KEY (ESSN, DEPENDENT _NAME), FOREIGN KEY (ESSN) REFERENCES EMPLOYEE (SSN)); Dedinição, em SQL2, do Schema Company Observação: i) O schema SQL nos quais as relações acima estão declaradas está implicitamente especificado no ambiente no qual os comandos CREATE TABLE são executados. Alternativamente poderíamos ter: CREATE TABLE COMPANY.EMPLOYEE...

13 Oscar Luiz Monteiro de Farias 13 Definição de Dados em SQL... Data types disponíveis: numeric, character-string, bit-string, date, time. Numeric: números inteiros de diferentes tipos (INTEGER, SMALLINT) e números reais de diferentes precisões (FLOAT, REAL, DOUBLE PRECISION). Números formatados: DECIMAL(i, j) ou DEC(i, j) ou NUMERIC(i, j) i - precisão, ou n o total de dígitos decimais j - escala, ou n o de dígitos após o ponto decimal

14 Oscar Luiz Monteiro de Farias 14 Definição de Dados em SQL... Character-string: comprimento fixo (CHAR(n) ou CHARACTER(n)) comprimento variável (VARCHAR(n) ou CHAR VARYING(n) ou CHARACTER VARYING(n)) Bit-string: comprimento fixo (BIT(n)) comprimento variável (BIT VARYING(n)) Date e Time: TIME(I), TIME com zona, TIMESTAMP (date + time), INTERVAL

15 Oscar Luiz Monteiro de Farias 15 Definição de Dados em SQL... DEFAULT <value> - para especificar valores default para um atributo. UNIQUE - especifica chaves alternativas O projetista do schema pode especificar ações a serem efetivadas, no caso de violação das regras de integridade referencial, vinculando uma cláusula de referential triggered action a quaisquer rstrições de chaves estrangeiras (SET NULL, CASCADE, SET DEFAULT). Pode-se dar um nome às restrições para referências futuras Base tables (base relations) Virtual relations (criadas através do comando CREATE VIEW)

16 Oscar Luiz Monteiro de Farias 16 Definição de Dados em SQL... CREATE TABLE EMPLOYEE (..., DNO INT NOT NULL DEFAULT 1, CONSTRAINT EMPPK PRIMARY KEY (SSN), CONSTRAINT EMPSUPERFK FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT EMPDEPTFK FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER) ON DELETE SET DEFAULT ON UPDATE CASCADE);

17 Oscar Luiz Monteiro de Farias 17 Definição de Dados em SQL... CREATE TABLE DEPARTMENT (..., MGRSSN CHAR(9) NOT NULL DEFAULT ,..., CONSTRAINT DEPTPK PRIMARY KEY (DNUMBER), CONSTRAINT DEPTSK UNIQUE (DNAME), CONSTRAINT DEPTMGRFK FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE (SSN) ON DELETE SET DEFAULT ON UPDATE CASCADE); CREATE TABLE DEPT_LOCATIONS (..., PRIMARY KEY (DNUMBER, DLOCATION), FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT (DNUMBER) ON DELETE CASCADE ON UPDATE CASCADE);

18 Oscar Luiz Monteiro de Farias 18 Definição de Dados em SQL... O comando DROP SCHEMA possui duas opções: RESTRICT e CASCADE CASCADE - remove o schema e todos os seus elementos: tabelas, domínios, restrições, etc. RESTRICT - neste caso o schema só é removido se não mais possuir elementos. Ex.: DROP SCHEMA COMPANY CASCADE; DROP TABLE também possui duas opções: RESTRICT e CASCADE Ex.: DROP TABLE DEPENDENT CASCADE;

19 Oscar Luiz Monteiro de Farias 19 Definição de Dados em SQL... ALTER TABLE - ações possíveis: adicionar ou excluir uma coluna (atributo), alterar a definição de uma coluna e adicionar ou excluir restrições de integridade. Ex.: ALTER TABLE COMPANY.EMPLOYEE ADD JOB VARCHAR(12); Ex: ALTER TABLE COMPANY. EMPLOYEE DROP ADDRESS CASCADE; (todas as constraints e views que referenciam a coluna são automaticamente excluídas do schema) Ex.: ALTER TABLE COMPANY.EMPLOYEE DROP CONSTRAINT EMPSUPERFK CASCADE;

20 Oscar Luiz Monteiro de Farias 20 SELECT FROM WHERE block SELECT <attribute list> FROM <table list> WHERE <condition> QUERY Q0: Recupere a data de nascimento e endereço do empregado cujo nome é John B. Smith. SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME= John AND MINIT= B AND LNAME= SMITH

21 Oscar Luiz Monteiro de Farias 21 O SELECT FROM WHERE block é semelhante ao par de operações SELECT-PROJECT da Álgebra Relacional. A cláusula SELECT do SQL especifica os atributos a serem projetados A cláusula WHERE especifica a condição de seleção Em SQL o resultado da query pode ter tuplas duplicadas

22 Oscar Luiz Monteiro de Farias 22 QUERY Q1: Recupere o nome e o endereço de todos os empregados que trabalham no departamento Research. SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DNAME= Research AND DNUMBER=DNO Trata-se de uma query do tipo SELECT-PROJECT-JOIN da Álgebra Relacional A condição de seleção é DNAME= Research A condição de JOIN é DNUMBER=DNO

23 Oscar Luiz Monteiro de Farias 23 QUERY Q2: Para todo projeto localizado em Stafford, liste o n o do projeto, o n o do dpt o que o controla, o último nome do gerente e a data de seu nascimento. SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATE FROM PROJECT, EMPLOYEE, DEPARTMENT WHERE DNUM=DNUMBER AND MGRSSN=SSN AND PLOCATION= Stafford A condição de JOIN DNUM=DNUMBER relaciona um projeto ao dept o que o controla; A condição de JOIN MGRSSN=SSN relaciona o dept o controlador ao empregado que o gerencia;

24 Oscar Luiz Monteiro de Farias 24 Nomes de atributos ambíguos e aliases QUERY Q1A: Supor que os atributos DNO e LNAME da relação EMPLOYEE fossem chamados de DNUMBER e NAME e que o atributo DNAME da relação DEPARTMENT também fosse chamado de NAME. Neste caso a query Q1 teria que resolver as ambigüidades presentes. SELECT FNAME, EMPLOYEE.NAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DEPARTMENT.NAME= Research AND DEPARTMENT.DNUMBER=EMPLOYEE.DNUMBER

25 Oscar Luiz Monteiro de Farias 25 QUERY Q8: Para cada empregado, recupere o primeiro e último nome e o o primeiro e último nome do seu supervisor imediato. SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME FROM EMPLOYEE E, EMPLOYEE S WHERE E.SUPERSSN=S.SSN Um alias pode seguir de imediato o nome da relação, como acima, ou seguir a keyword AS. É também possível renomear os atributos da relação dentro da query. EMPLOYEE AS E(FN, MI, LN, SSN, BD, ADDR, SEX, SAL, SSSN, DNO)... Como na Álgebra Relacional não se pode especificar uma query com um nível arbitrário de recursividade em um único comando.

26 Oscar Luiz Monteiro de Farias 26 Uma query sem a cláusula WHERE indica que não há condição de seleção aplicada sobre as tuplas. Assim, todas serão selecionadas (WHERE TRUE). QUERY Q9: Recupere os SSNs de todos os empregados. SELECT SSN FROM EMPLOYEE Se mais de uma relação é especificada na cláusula FROM e não há uma cláusula WHERE, então o resultado é o CROSS PRODUCT das duas relações. QUERY Q10: Recupere todas as combinações possíveis de EMPLOYEE SSN e DEPARTMENT DNAME. SELECT SSN, DNAME FROM EMPLOYEE, DEPARTMENT (similar as operações da AR: CROSS PRODUCT seguido de um PROJECT)

27 Oscar Luiz Monteiro de Farias 27 ATENÇÃO! É extremamente importante especificar todas as seleções e condições JOIN na cláusula WHERE, sem o que poderão resultar tabelas imensas e incorretas. Para recuperar os valores de todos os atributos usa-se um *. QUERY Q1C: Recupere todos os valores de atributos das tuplas de EMPLOYEE, que trabalham no dept o de n o 5. SELECT * FROM EMPLOYEE WHERE DNO=5

28 Oscar Luiz Monteiro de Farias 28 QUERY Q1D: Recupere todos os valores de atributos dos empregados que trabalham no departamento Research, bem como os atributos deste dept o. SELECT * FROM EMPLOYEE, DEPARTMENT WHERE DNAME= Research AND DNO=DNUMBER QUERY Q10A: Recuperar o CROSS PRODUCT das relações EMPLOYEE e DEPARTMENT. SELECT * FROM EMPLOYEE, DEPARTMENT

29 Oscar Luiz Monteiro de Farias 29 SQL não elimina tuplas duplicatas do resultado das queries pelas seguintes razões: o custo da operação é alto (solução: classificar as tuplas e eliminar as duplicatas) o usuário pode desejar visualisar as tuplas duplicatas quando se aplica uma função agregada às tuplas, em geral não se deseja a eliminação de duplicatas Para se eliminar tuplas duplicatas do resultado deve-se usar a keyword DISTINCT na cláusula SELECT QUERY Q11A: Liste todos os salários diferentes dos empregados. SELECT DISTINCT SALARY FROM EMPLOYEE

30 Oscar Luiz Monteiro de Farias 30 SQL incorporou algumas das operações sobre conjuntos da Álgebra Relacional: união (UNION), diferença (EXCEPT) e interseção (INTERSECT). Nestas operações as tuplas duplicatas são eliminadas, a menos que a operação seja seguida da keyword ALL. QUERY Q4: Faça uma lista de todos os n os de projetos PARA PROJETOS que envolvam um empregado cujo último nome seja Smith, ou como um simples empregado, ou como um gerente do departamento que controla o projeto. (SELECT PNUMBER FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE DNUM=DNUMBER AND MGRSSN=SSN AND LNAME= Smith ) UNION (SELECT PNUMBER FROM PROJECT, WORKS_ON, EMPLOYEE WHERE PNUMBER=PNO AND ESSN=SSN AND LNAME= Smith )

31 Oscar Luiz Monteiro de Farias 31 Queries aninhadas (trata-se de uma query SELECT completa, dentro de uma cláusula WHERE de uma outra query, chamada de outer query) QUERY Q4A = QUERY Q4 SELECT DISTINCT PNUMBER FROM PROJECT WHERE PNUMBER IN (SELECT PNUMBER FROM PROJECT, DEPARTMENT, EMPLOYEE WHERE DNUM=DNUMBER AND MGRSSN=SSN AND LNAME= Smith ) OR PNUMBER IN (SELECT PNO FROM WORKS_ON, EMPLOYEE WHERE ESSN=SSN AND LNAME= Smith )

32 Oscar Luiz Monteiro de Farias 32 O operador de comparação IN compara um valor v com um conjunto (ou múltiplos conjuntos) de valores V e resulta em TRUE se v é um dos elementos de V. QUERY Q4B: Selecione o SSN de todos os empregados que trabalhem a mesma combinação (project, hours) em algum projeto em que o empregado John Smith também trabalhe. SELECT DISTINCT ESSN FROM WORKS_ON WHERE (PNO, HOURS) IN (SELECT PNO, HOURS FROM WORKS_ON, EMPLOYEE WHERE LNAME= Smith AND FNAME= John AND ESSN=SSN);

33 Oscar Luiz Monteiro de Farias 33 Além do operador IN, outros operadores de comparação podem ser usados para comparar um valor singular v (tipicamente o nome de um atributo) com um conjunto V (tipicamente uma nested query). O operador = ANY (= SOME) retorna TRUE se o valor v é igual a algum valor no conjunto V (é equivalente a IN). Outros operadores que podem ser combinados com as keywords ANY e SOME: >,>=,<,<= e <>. A keyword ALL pode ser usada com quaisquer dos operadores acima.

34 Oscar Luiz Monteiro de Farias 34 QUERY QX0: Recupere o nome dos empregados cujo salário seja maior que os salários de todos os empregados do departamento 5. SELECT FROM WHERE LNAME, FNAME EMPLOYEE SALARY > ALL (SELECT SALARY FROM EMPLOYEE WHERE DNO=5); Em geral pode-se ter um n o arbitrário de nested queries. Para se evitar ambigüidades aplica-se a regra: uma referência a um atributo não qualificado refere-se sempre à relação declarada na nested query mais interna.

35 Oscar Luiz Monteiro de Farias 35 QUERY Q12: Recupere o nome de cada empregado que tenha um dependente com o mesmo first name e sexo do empregado. SELECT FROM LNAME, FNAME EMPLOYEE E WHERE E.SSN IN (SELECT ESSN FROM DEPENDENT WHERE ESSN=E.SSN AND E.FNAME=DEPENDENT_NAME AND SEX=E.SEX) Sempre que uma condição em uma cláusula WHERE de uma nested query referencia algum atributo de uma relação declarada na outer query, as duas queries são ditas correlacionadas. A nested query é avaliada uma vez para cada tupla (ou combinação de tuplas) na outer query.

36 Oscar Luiz Monteiro de Farias 36 Em geral uma query formulada com blocos aninhados SELECT... FROM... WHERE e usando os operadores de comparação = ou IN pode ser sempre expressa como uma query com um único bloco. QUERY Q12A= QUERY Q12 SELECT FROM WHERE E.LNAME, E.FNAME EMPLOYEE E, DEPENDENT D E.SSN=D.ESSN AND E.SEX=D.SEX AND E.FNAME=D.DEPENDENT_NAME

37 Oscar Luiz Monteiro de Farias 37 A função EXISTS é utilizada para verificar se o resultado de uma nested query correlacionada é vazio, i.e., não contém tuplas. QUERY Q12B (Q12 revisitada): Recupere o nome de cada empregado que tenha um dependente com o mesmo first name e sexo do empregado. SELECT FROM LNAME, FNAME EMPLOYEE E WHERE EXISTS (SELECT * FROM DEPENDENT WHERE E.SSN=ESSN AND E.FNAME=DEPENDENT_NAME AND SEX=E.SEX) EXISTS(Q) retorna TRUE se existe pelo menos uma tupla como resultado da query Q e FALSE em caso contrário.

38 Oscar Luiz Monteiro de Farias 38 QUERY 6: Recupere o nome de todos os empregados que não tenham dependentes. SELECT LNAME, FNAME FROM EMPLOYEE E WHERE NOT EXISTS (SELECT * FROM DEPENDENT WHERE SSN=ESSN) A função UNIQUE(Q) retorna TRUE se não existem tuplas duplicatas no resultado da query Q; em caso contrário retorna FALSE.

39 Oscar Luiz Monteiro de Farias 39 QUERY 7: Liste o nome dos gerentes que tenham pelo menos um dependente. SELECT LNAME, FNAME FROM EMPLOYEE WHERE EXISTS (SELECT * FROM DEPENDENT WHERE SSN=ESSN) AND EXISTS (SELECT * FROM DEPARTMENT WHERE SSN=MGRSSN)

40 Oscar Luiz Monteiro de Farias 40 QUERY 3: Recupere o nome de cada empregado que trabalhe em todos os projetos controlados pelo dept o de n o 5 (operator CONTAINS - SQL original) SELECT LNAME, FNAME FROM EMPLOYEE WHERE ((SELECT PNO FROM WORKS_ON WHERE SSN=ESSN) CONTAINS (SELECT PNUMBER FROM PROJECT WHERE DNUM=5))

41 Oscar Luiz Monteiro de Farias 41 QUERY 3A (paráfrase de Q3): Selecione cada empregado de tal forma que não exista um projeto, controlado pelo dept o 5 em que o empregado não trabalhe. SELECT FROM WHERE (SELECT * LNAME, FNAME EMPLOYEE NOT EXISTS FROM WORKS_ON B WHERE (B.PNO IN (SELECT PNUMBER AND FROM PROJECT WHERE DNUM=5)) NOT EXISTS (SELECT * FROM WORKS_ON C WHERE C.ESSN=SSN AND C.PNO=B.PNO)) Universal quantifier ( ) ou negated existential quantifier (not )

42 Oscar Luiz Monteiro de Farias 42 É possível explicitar um conjunto de valores em uma cláusula WHERE. QUERY 13: Recupere os SSNs de todos os empregados que trabalhem nos projetos de n os 1, 2 ou 3. SELECT FROM DISTINCT ESSN WORKS_ON WHERE PNO IN (1, 2, 3) SQL permite queries que verificam se um valor é NULL (missing or undefined or not applicable) Ao invés de usar os operadores = ou, SQL usa IS ou IS NOT. Isto porque SQL considera cada valor NULL distinto de todos os outros valores NULL.

43 Oscar Luiz Monteiro de Farias 43 QUERY 14: Recupere os nomes de todos os empregados que não tenham supervisor. SELECT FROM LNAME, FNAME EMPLOYEE WHERE SUPERSSN IS NULL É possível renomear qualquer atributo que apareça no resultado de uma query, adicionando-se o qualificador AS seguido pelo novo nome desejado. QUERY 8A ~ QUERY 8, porém trocando-se os últimos nomes de cada empregado e de cada supervisor para EMPLOYEE_NAME e SUPERVISOR_NAME, respectivamente: SELECT E.LNAME AS EMPLOYEE_NAME, S.LNAME AS SUPERVISOR_NAME FROM EMPLOYEE AS E, EMPLOYEE AS S WHERE E.SUPERSSN=S.SSN

44 Oscar Luiz Monteiro de Farias 44 O conceito de joined table (or joined relation) foi incorporado em SQL2 para permitir aos usuários especificar uma tabela que resultasse de uma operação JOIN, na cláusula FROM de uma query. QUERY 1A ~ QUERY 1: SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE JOIN DEPARTMENT ON DNO=DNUMBER WHERE DNAME= Research Os atributos da tabela resultante do JOIN compreendem todos os atributos da primeira tabela - EMPLOYEE - seguidos por todos os atributos da segunda tabela - DEPARTMENT. Existem diferentes tipos de JOIN: NATURAL JOIN e OUTER JOINS NATURAL JOIN para duas relações R e S: nenhuma condição de JOIN é especificada. Uma condição JOIN implícita (EQUI) é criada para cada par de atributos com o mesmo nome em R e em S. Apenas um atributo permanece.

45 Oscar Luiz Monteiro de Farias 45 Se os nomes dos atributos JOIN não são os mesmos nas relações base, é possível renomear os atributos e, então, aplicar-se o NATURAL JOIN. QUERY 1B ~ QUERY Q1: porém renomeou a relação DEPARTMENT para DEPT e os atributos para DNAME, DNO (para ser igual ao atributo JOIN da tabela EMPLOYEE), MSSN e MSDATE. SELECT FNAME, LNAME, ADDRESS FROM (EMPLOYEE NATURAL JOIN (DEPARTMENT AS DEPT (DNAME, DNO, MSNN, MSDATE))) WHERE DNAME= Research A condição JOIN implícita é EMPLOYEE.DNO = DEPT.DNO

46 Oscar Luiz Monteiro de Farias 46 O tipo default de JOIN em uma tabela joined é o INNER JOIN, em que uma tupla é incluída no resultado, apenas se existe uma tupla na outra relação que satisfaz a condição do JOIN. QUERY 8B ~ QUERY 8A: porém desejamos incluir no resultado todos os empregados, mesmo aqueles que não possuem um supervisor. SELECT E.LNAME AS EMPLOYEE_NAME, S.LNAME AS SUPERVISOR_NAME FROM (EMPLOYEE E LEFT OUTER JOIN EMPLOYEE S ON E.SUPERSSN=S.SSN) Opções de JOIN: INNER JOIN (=JOIN), LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN. Pode-se omitir a keyword OUT.

47 Oscar Luiz Monteiro de Farias 47 QUERY Q2A = Q2: SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATE FROM ((PROJECT JOIN DEPARTMENT ON DNUM=DNUMBER) JOIN EMPLOYEE ON MGRSSN=SSN) WHERE PLOCATION= Stafford Funções agregadas (agregate functions) e agrupamento (grouping): built-in functions: COUNT, SUM, MAX, MIN, AVG. Aplicadas a um conjunto ou vários conjuntos de valores. Podem ser usadas nas cláusulas SELECT OU HAVING. QUERY Q15: Recupere a soma dos salários de todos os empregados, o maior e menor salário e o salário médio. SELECT SUM(SALARY), MAX (SALARY), MIN (SALARY), AVG (SALARY) FROM EMPLOYEE

48 Oscar Luiz Monteiro de Farias 48 QUERY Q15: Ache a soma dos salários de todos os empregados do dept o Research, como também os salários máximo, mínimo e médio neste dept o. SELECT FROM WHERE SUM(SALARY), MAX (SALARY), MIN (SALARY), AVG (SALARY) EMPLOYEE, DEPARTMENT DNO=DNUMBER AND DNAME = Research QUERY Q17: Recupere o n o total de empregados na companhia. SELECT COUNT(*) FROM EMPLOYEE A função COUNT( ) retorna o n o de tuplas ou valores especificados na query.

49 Oscar Luiz Monteiro de Farias 49 QUERY Q18: Recupere o n o de empregados do dept o Research. SELECT COUNT(*) FROM EMPLOYEE, DEPARTMENT WHERE DNO=DNUMBER AND DNAME= Research Pode-se usar a função COUNT para contar valores em uma coluna, ao invés de em tuplas. QUERY Q19: Conte o número de salários distintos no Banco de Dados Companhia. SELECT FROM COUNT (DISTINCT SALARY) EMPLOYEE

50 Oscar Luiz Monteiro de Farias 50 Em alguns casos poderemos necessitar de usar funções para selecionar tuplas particulares. Nestes casos especifica-se uma nested query correlacionada com a função desejada e usa-se a nested query na cláusula WHERE da outer query. QUERY Q5: Recuperar os nomes de todos os empregados que tenham dois ou mais dependentes. SELECT FROM FNAME, LNAME EMPLOYEE WHERE (SELECT COUNT(*) FROM DEPENDENT WHERE SSN = ESSN) 2

51 Oscar Luiz Monteiro de Farias 51 SQL possui uma cláusula GROUP BY com a finalidade de permitir o agrupamento de atributos. Os atributos a serem grupados devem ser especificados na cláusula GROUP BY e também na cláusula SELECT, de tal forma que os valores resultantes da aplicação de funções a um grupo de tuplas apareçam juntamente com o valor do atributo de grupamento. QUERY Q20: Para cada dept o recupere o n o do dept o, o n o de empregados no dept o e o seu salário médio. SELECT FROM DNO, COUNT (*), AVG (SALARY) EMPLOYEE GROUP BY DNO A cláusula SELECT inclui somente o atributo a ser agrupado e as funções a serem aplicadas em cada grupo de tuplas.

52 Oscar Luiz Monteiro de Farias 52 QUERY Q21: Para cada projeto recupere o seu n o, o seu nome e o n o de empregados que trabalham no projeto. SELECT FROM WHERE PNUMBER, PNAME, COUNT(*), PROJECT, WORKS_ON PNUMBER = PNO GROUP BY PNUMBER, PNAME Observação: O agrupamento e as funções são aplicadas depois do joining das duas relações. Em alguns casos desejamos recuperar os valores destas funções apenas para grupos que satisfazem determinadas condições. SQL provê uma cláusula HAVING para esta finalidade, a qual pode aparecer em conjunto com uma cláusula GROUP BY.

53 Oscar Luiz Monteiro de Farias 53 HAVING provê uma condição no grupo de tuplas associadas com cada valor do atributo de agrupamento. Somente os grupos que satisfazem esta condição são recuperados no resultado da query. QUERY Q22: Para cada projeto no qual trabalham mais de dois empregados, recupere o n o do projeto, o nome do projeto e o n o de empregados que trabalham no projeto. SELECT FROM WHERE PNUMBER, PNAME, COUNT(*) PROJECT, WORKS_ON PNUMBER=PNO GROUP BY PNUMBER, PNAME HAVING COUNT(*) > 2 Observação: a condição de seleção na cláusula WHERE limita as tuplas às quais as funções são aplicadas; a cláusula HAVING limita grupos inteiros.

54 Oscar Luiz Monteiro de Farias 54 QUERY Q23: Para cada projeto, recupere o n o do projeto, o nome do projeto e o n o de empregados do dept o 5 que trabalham no projeto. SELECT PNUMBER, PNAME, COUNT(*) FROM PROJECT, WORKS_ON, EMPLOYEE WHERE PNUMBER = PNO AND SSN = ESSN AND DNO = 5 GROUP BY PNUMBER, PNAME Deve-se ser muito cuidadoso ao se aplicar duas diferentes condições (Uma para a função na clúsula SELECT e, a outra, para a função na cláusula HAVING).

55 Oscar Luiz Monteiro de Farias 55 QUERY Q240: Contar o n o total de empregados cujos salários excedem US$ 40,000 em cada dept o, porém apenas para os dept os em que mais de 5 empregados trabalham. SELECT FROM DNAME, COUNT(*) DEPARTMENT, EMPLOYEE WHERE DNUMBER = DNO AND SALARY > GROUP BY DNAME HAVING COUNT(*) > 5 ERRADO! Selecionará apenas os dept os que tenham mais de 5 empregados, cada um deles ganhando mais de US$ REGRA: A cláusula WHERE é executada primeiro, para selecionar as tuplas individuais; depois executa-se a cláusula HAVING, para selecionar os grupos individuais de tuplas.

56 Oscar Luiz Monteiro de Farias 56 QUERY Q24: para cada dept o em que mais de 5 empregados trabalham, recuperar o n o do dept o, e o n o de empregados com salário maior que US$ SELECT FROM WHERE GROUP BY DNAME DNAME, COUNT(*) DEPARTMENT, EMPLOYEE DNUMBER = DNO AND SALARY > AND DNO IN (SELECT DNO FROM GROUP BY EMPLOYEE DNO HAVING COUNT(*) > 5)

57 Oscar Luiz Monteiro de Farias 57 Comparações de substrings, operadores aritméticos e classificação O operador LIKE possibilita comparação entre strings. % substitui um n o arbitrário de caracteres. _ substitui um único caracter arbitrário. QUERY Q25: Recupere todos os empregados com endereço em Houston, TX SELECT FNAME, LNAME FROM EMPLOYEE WHERE ADDRESS LIKE %Houston, TX% QUERY Q26: Encontre todos os empregados nascidos na década de 50. SELECT FNAME, LNAME FROM EMPLOYEE WHERE BDATE LIKE 5

58 Oscar Luiz Monteiro de Farias 58 Operadores aritméticos podem ser aplicados a valores numéricos em uma query. QUERY Q27: Mostre os salários que resultariam, se a todos os trabalhadores que trabalham no projeto ProductX fosse dado um aumento de 10%. SELECT FROM WHERE FNAME, LNAME, 1.1*SALARY EMPLOYEE, WORKS_ON, PROJECT SSN=ESSN AND PNO=PNUMBER AND PNAME= ProductX O operador para strings + e - podem ser usados com os tipos de dados date, time, timestamp e interval

59 Oscar Luiz Monteiro de Farias 59 Classificação: a cláusula ORDER BY QUERY Q28: Recupere uma lista de empregados e dos projetos em que eles trabalham, ordenada por dept os e, dentro de cada dept o, ordenada alfabeticamente por sobrenome e nome. SELECT FROM WHERE DNAME, LNAME, FNAME, PNAME DEPARTMENT, EMPLOYEE, WORKS_ON, PROJECT SSN=ESSN AND DNUMBER=DNO AND PNO=PNUMBER ORDER BY DNAME, LNAME, FNAME As keywords ASC e DESC

60 Oscar Luiz Monteiro de Farias 60 Queries em SQL - forma geral SELECT < lista de atributos > FROM < lista de tabelas > [WHERE < condição >] [GROUP BY < atributo(s) de grupamento >] [HAVING < condição de grupo >] [ORDER BY < lista de atributos>] Observação: do ponto de vista do programador e da otimização do sistema, é geralmente preferível formular-se uma consulta, tanto quanto possível, com o mínimo de aninhamento e de ordenamento.

61 Oscar Luiz Monteiro de Farias 61 Comandos de Update em SQL... INSERT, DELETE e UPDATE INSERT é usado para se adicionar uma tupla a uma relação Os valores devem ser especificados na mesma ordem em que os atributos correspondentes foram especificados no comando CREATE TABLE. INSERT INTO EMPLOYEE VALUES ( Richard, K, Marini, , 30-DEC-52, 98 Oak Forest, Katy, TX, M, 3700, , 4) Uma forma alternativa de INSERT possibilita ao usuário especificar explicitamente os nomes de atributos que correspondem aos valores fornecidos. INSERT INTO EMPLOYEE (FNAME, LNAME, SSN) VALUES Richard, Marini, ) Atributos não especificados assumem o valor DEFAULT ou NULL.

62 Oscar Luiz Monteiro de Farias 62 Comandos de Update em SQL... A inserção de múltiplas tuplas deve ser separada por,. As restrições de integridade devem ser de responsabilidade do programador, caso o SGBD não as implemente. Uma variação de INSERT possibilita a inserção de múltiplas tuplas em uma relação, em conjunção com o resultado de uma query. CREATE TABLE DEPTS_INFO (DEPT_NAME VARCHAR(15), NO_OF_EMPS INTEGER, TOTAL_SAL INTEGER); INSERT INTO DEPTS_INFO (DEPT_NAME, NO_OF_EMPS, TOTAL_SAL) SELECT DNAME, COUNT(*), SUM(SALARY) FROM DEPARTMENT, EMPLOYEE WHERE DNUMBER=DNO GROUP BY DNAME;

63 Oscar Luiz Monteiro de Farias 63 Comandos de Update em SQL... DELETE remove tuplas de uma relação. Possui uma cláusula WHERE, para selecionar as tuplas a serem excluídas. A exclusão pode se propagar para tuplas em outras relações, caso isto esteja especificado em uma restrição de integridade referencial da DDL. Um DELETE sem cláusula WHERE ocasiona a exclusão de todas as tuplas, todavia a tabela (vazia) permanece na base de dados. Caso a intenção seja de se remover a tabela deve-se usar o comando DROP TABLE. Exemplos: U4A: DELETE FROM EMPLOYEE WHERE LNAME= Brown U4B: DELETE FROM EMPLOYEE WHERE SSN=

64 Oscar Luiz Monteiro de Farias 64 Comandos de Update em SQL... U4C: DELETE FROM EMPLOYEE WHERE DNO IN SELECT DNUMBER FROM DEPARTMENT WHERE DNAME= Research ) U4D: DELETE FROM EMPLOYEE O Comando UPDATE é utilizado para modificar valores de atributos de uma ou mais tuplas. A cláusula WHERE seleciona as tuplas da relação que serão modificadas. Atualização do valor de uma chave primária (PK) pode propagar-se para valores de chaves-estrangeiras (FK) de tuplas em outras relações, caso isto esteja especificado como uma restrição de integridade referencial na DDL. Uma cláusula adicional SET especifica os atributos a serem alterados e os seus novos valores.

65 Oscar Luiz Monteiro de Farias 65 Comandos de Update em SQL U5: UPDATE PROJECT SET PLOCATION= Bellaire, DNUM = 5 WHERE PNUMBER = 10 Um único comando UPDATE pode alterar várias tuplas. U6: UPDATE EMPLOYEE SET SALARY = SALARY * 1.1 WHERE DNO IN(SELECT DNUMBER FROM DEPARTMENT WHERE DNAME= Research É possível especificar-se NULL ou DEFAULT como um novo valor para um atributo.

66 Oscar Luiz Monteiro de Farias 66 Views em SQL... Uma Visão (View) é uma tabela que é derivada de outras. Estas podem ser tabelas básicas ou Visões (Views) já previamente definidas. Views são tabelas virtuais cujas tuplas não necessariamente existem fisicamente. Às vezes usa-se views para se especificar uma tabela, resultado de uma query, que seja referenciada freqüentemente. CREATE VIEW: comando para especificar uma view. Dá-se um nome à tabela virtual (view), uma lista de nomes de atributos, e uma query, para especificar o conteúdo da view. V1: CREATE VIEW WORKS_ON1 AS SELECT FROM FNAME, LNAME, PNAME, HOURS EMPLOYEE, PROJECT, WORKS_ON WHERE SSN=ESSN AND PNO=PNUMBER

67 Oscar Luiz Monteiro de Farias 67 Views em SQL... Se nenhum dos atributos da view é resultante da aplicação de funções ou operadores aritméticos, não é necessário especificar-se nomes de atributos para a view, os quais serão os mesmos nomes dos atributos nas tabelas que definem a view (query anterior). V2: CREATE VIEW DEPT_INFO (DEPT_NAME, NO_OF_EMPS, TOTAL_SAL) AS SELECT DNAME, COUNT(*), SUM(SALARY) FROM WHERE GROUP BY DEPARTMENT, EMPLOYEE DNUMBER=DNO DNAME

68 Oscar Luiz Monteiro de Farias 68 Views em SQL... Podemos realizar consultas sobre views QV1: Recuperar o Sobrenome e Nome de todos os empregados que trabalham no projeto ProjectX. SELECT FROM WHERE PNAME, FNAME, LNAME WORKS_ON1 PNAME= ProjectX ; A principal vantagem de uma view é simplificar determinadas consultas.

69 Oscar Luiz Monteiro de Farias 69 Views em SQL... Uma view está sempre atualizada (up to date). Qualquer alteração nas tabelasbase sobre as quais a view é definida, reflete-se de imediato na view. É responsabilidade do SGBD (e não do usuário) assegurar que a view esteja sempre atualizada. Quando não mais se precisar de uma view usa-se o comando DROP VIEW. DROP VIEW WORKS_ON1; DROP VIEW DEPT_INFO;

70 Oscar Luiz Monteiro de Farias 70 Views em SQL... Atualização de Views é complicado e pode ser ambíguo. Views definidas sobre uma única tabela base e sem funções agregadas podem ser diretamente mapeadas para atualização na própria tabela base. Para views envolvendo JOINS, uma operação de update pode ser mapeada de múltiplas maneiras em operações de update sobre as relações bases. Exemplo: Considere a view WORKS_ON1 e suponha que se deseja alterar o atributo PNAME de John Smith de Product para ProductY. UV1: UPDATE SET PNAME= ProductY WORKS_ON1 WHERE LNAME= Smith AND FNAME= John AND PNAME= ProductX

71 Views em SQL... Oscar Luiz Monteiro de Farias 71

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

L Q S m e g a u g n Li A 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

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página

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

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges BANCO DE DADOS II SQL Básico COTEMIG Gerson Borges gerson@cotemig.com.br Definição de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados é uma coleção de dados relacionados Representando algum

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 Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM

Leia mais

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Programa Introdução Conceitos

Leia mais

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem SQL Comandos

Leia mais

SQL-99: Esquema de BD EMPRESA

SQL-99: Esquema de BD EMPRESA SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado

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

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC SQL/DML Parte 2 Consultas Aninhadas

Leia mais

DCC011 Introdução a Banco de Dados

DCC011 Introdução a Banco de Dados DCC011 Introdução a Banco de Dados SQL select avançado Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Revisão: consultas básicas Formato

Leia mais

SQL Básica. Andre Noel

SQL Básica. Andre Noel SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou

Leia mais

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

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

Leia mais

SQL DCC011. SQL gerenciar tabelas e dados. Programa. Introdução. Introdução

SQL DCC011. SQL gerenciar tabelas e dados. Programa. Introdução. Introdução Programa DCC011 Introdução a Banco de Dados SQL gerenciar taelas e dados Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.r Introdução Conceitos

Leia mais

BANCO DE DADOS II Conceitos Básicos. COTEMIG Gerson Borges

BANCO DE DADOS II Conceitos Básicos. COTEMIG Gerson Borges BANCO DE DADOS II Conceitos Básicos COTEMIG Gerson Borges gerson@cotemig.com.br Revisão O que é um banco de dados? Definições Preliminares [Chu, 1985] Um banco de dados é um conjunto de arquivos relacionados

Leia mais

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

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

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

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

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 PROGRAMA 3.SQL Básico 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação 1 3.SQL Básico A linguagem SQL foi desenvolvida para o ambiente relacional, podendo ser adaptada a ambientes

Leia mais

Modelo de Dados Relacional

Modelo de Dados Relacional Modelo de Dados Relacional Introdução O modelo relacional representa um banco de dados como um conjunto de relações Informalmente, uma relação é uma tabela de valores, onde cada linha representa uma coleção

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

SQL (Tópicos) Structured Query Language

SQL (Tópicos) Structured Query Language SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

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

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre

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

ANÁLISE E PROJETO DE BANCO DE DADOS

ANÁLISE E PROJETO DE BANCO DE DADOS ANÁLISE E PROJETO DE BANCO DE DADOS SQL FELIPE G. TORRES SQL A linguagem SQL (Struct Query Language) é utilizada como padrão em bancos de dados relacionais. Seu desenvolvimento foi originalmente no início

Leia mais

DCC011 Introdução a Banco de Dados

DCC011 Introdução a Banco de Dados Programa DCC011 Introdução a Banco de Dados SQL select Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Introdução Conceitos básicos, características

Leia mais

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

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010 Sumário SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto October 18, 2010 1 Introdução 2 Tabelas 3 Colunas 4 5 Modificação de Tabelas 6 Domínios André Restivo (FEUP)

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 PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

DCC011 Introdução a Banco de Dados

DCC011 Introdução a Banco de Dados Programa DCC011 Introdução a Banco de Dados SQL select Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Introdução Conceitosbásicos, característicasda

Leia mais

Banco de Dados. Linguagem SQL

Banco de Dados. Linguagem SQL Banco de Dados Linguagem SQL 1 A linguagem SQL: história Em junho de 1970, o matemático Edgar Frank Codd, publicou o artigo "A Relational Model of Data for Large Shared Data Banks" na revista "Communications

Leia mais

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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 16 Escola Politécnica da Universidade de São Paulo 1 SQL - STRUCTURED QUERY LANGUAGE SQL - Structured Query Language Linguagem de acesso a Banco de Dados

Leia mais

Processamento e Otimização de Consultas

Processamento e Otimização de Consultas Processamento e Otimização de Consultas Processo de Execução de uma Consulta 1 Otimização de Consultas SQL Em algumas linguagens de consulta, a estratégia de execução é definida pela maneira como o usuário

Leia mais

Page 1. Prof. Constantino Jacob

Page 1. Prof. Constantino Jacob Tópicos Introdução à SQL Definição Tipos de Operações Instrução SELECT Sintaxe básica Operações relacionais de restrição, projeção e junção Instruções DML Delete, Update e Insert Instruções DDL Create

Leia mais

A linguagem SQL

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

Bancos (Bases) de Dados

Bancos (Bases) de Dados Bancos (Bases) de Dados Aula #8 SQL Prof. Eduardo R. Hruschka * Slides baseados no material elaborado pelas professoras: Cristina D. A. Ciferri Elaine P. M. de Souza SQL (Structured Query Language) Linguagem

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

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

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco

Leia mais

SQL-99: Definição de esquema, restrições básicas e consultas

SQL-99: Definição de esquema, restrições básicas e consultas SQL-99: Definição de esquema, restrições básicas e consultas A linguagem SQL é uma das maiores razões para o sucesso dos BD relacionais no mundo comercial Este capítulo apresenta as principais funcionalidades

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) 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

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

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; MySQL SQL (Structured Query Languagem ) Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José; Inicialmente - Sequel

Leia mais

SQL - Structured Query Language. Karine Reis Ferreira

SQL - Structured Query Language. Karine Reis Ferreira SQL - Structured Query Language Karine Reis Ferreira karine@dpi.inpe.br SQL - Structured Query Language n n Linguagem padrão (ISO) para sistemas de bancos de dados É uma linguagem declarativa de alto nível

Leia mais

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

SQL. 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. SQL Banco de Dados I Prof. Guilherme Tavares de Assis Universidade

Leia mais

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

MySql. Introdução a MySQL. Andréa Garcia Trindade MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language) 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

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

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU Aula 6 BD1 Modelo Relacional Profa. Elaine Faria UFU - 2017 Introdução Modelo Relacional Proposto por Codd em 1970 Revolucionou a área de banco de dados É o modelo dominante base para os SGBDs líderes

Leia mais

Banco de Dados. Professora: Luciana Faria

Banco de Dados. Professora: Luciana Faria Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é

Leia mais

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

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 SQL Structured Query Language SQL Desenvolvida pela IBM Structured English Query Language Sequel Linguagem de consulta para o sistema R Primeiro

Leia mais

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

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

GES013 Sistema de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva ilmerio arroba ufu.br UFU/FACOM

GES013 Sistema de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva ilmerio arroba ufu.br  UFU/FACOM GES013 Sistema de Banco de Dados Modelo Relacional (R) Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM UFU/FACOM Página 2 Modelo Relacional R : Definição Def. O MODELO

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

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>

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> BANCO DE DADOS 1. Scripts de criação de 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 Onde:

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

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

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL Sistemas de Informação e Bases de Dados 2012/2013 Linguagem SQL Alberto Sardinha Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 Sumário Linguagem SQL 2 História Princípio dos

Leia mais

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

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para

Leia mais

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

Utilizando o Postgres - comandos SQL para a manipulação de dados Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é

Leia mais

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

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer 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

Leia mais

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011 Banco de Dados I Aula 14 - Prof. Bruno Moreno 11/10/2011 Plano de Aula INSERT UPDATE SELECT-FROM-WHERE Uso de ALIASES SELECT com * DISTINCT Operações de Conjuntos Comparação entre substrings Operadores

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) SQL SQL (Structured Query Language), ou Linguagem de Consulta Estruturada. Usada em Bancos de Dados Relacionais. É padronizada (SQL ANSI). ANSI (American National

Leia mais

Definição de Dados com SQL

Definição de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I Definição de Dados com SQL 2 Structured Query Language (SQL) Linguagem de consulta estruturada

Leia mais

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

Introdução ao Banco de Dados. Banco de Dados Introdução ao Banco de Dados Prof. Tiago Garcia de Senna Carneiro UFOP Prof. Técnicas de Programação II 2006 PARTE 1: Conceitos Básicos Banco de Dados SGDB: Sistema Gerenciador de Banco de Dados Definição:

Leia mais

SQL. Prof. Roger Cristhian Gomes

SQL. Prof. Roger Cristhian Gomes SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões

Leia mais

Bancos de Dados. 8. Structured Query Language (SQL)

Bancos de Dados. 8. Structured Query Language (SQL) Bancos de Dados 8. Structured Query Language (SQL) Introdução A padronização ao redor de SQL é uma das principais razões para o sucesso dos bancos de dados relacionais A migração entre SGBDs é facilitada,

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

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

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) (csmnunes@gmail.com) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;

Leia mais

mod._1_teoria_sistemas de bancos de dados.doc

mod._1_teoria_sistemas de bancos de dados.doc SISTEMAS DE BANCOS DE DADOS Os Sistemas de Bancos de Dados apareceram para acabar com os problemas e desvantagens dos tradicionais Sistemas de Processamento de Arquivos, onde os registros permanentes eram

Leia mais

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

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language) AULA 8 8.1. OBJETIVO DA AULA Relembrar conceitos e recursos básicos apresentados nas aulas anteriores, dar continuidade nas codificações iniciadas e ainda não finalizadas, explorar acesso a banco de dados

Leia mais

Bases de Dados. Parte V: A Linguagem SQL. Parte V

Bases de Dados. Parte V: A Linguagem SQL. Parte V Bases de Dados Parte V A Linguagem SQL Ricardo Rocha DCC-FCUP 1 SQL Structured Query Language O SQL é uma poderosa linguagem declarativa que permite definir, questionar e manipular bases de dados. Para

Leia mais

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados SQL João Eduardo Ferreira Osvaldo Kotaro Takai Introdução SQL - Structured Query Language Linguagem declarativa não-procedimental Desenvolvida e implementada pelo laboratório de pesquisa

Leia mais

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

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para

Leia mais

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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo PCS3413 Engenharia de So-ware e Banco de Dados Aula 17 Escola Politécnica da Universidade de São Paulo 1 SQL STRUCTURED QUERY LANGUAGE Manipulação de dados operações de modificam o estado das tabelas:

Leia mais

BANCO DE DADOS PARA NINJAS

BANCO DE DADOS PARA NINJAS BANCO DE DADOS PARA NINJAS PARANGABA RONNISON REGES VIDAL Ceará, 25 de Outubro de 2016 ROTEIRO l Conhecimento Pra que usar? Ferramentas SGBD's Consultas (Jutsu) Linguagem de Consulta PRA QUE USAR? PRA

Leia mais

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

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha Fundamentos de SQL Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha SQL - Introdução SQL-Structured Query Language (Linguagem de

Leia mais

GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL

GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC SQL Def. A SQL(Structured Query Language)

Leia mais

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

- Um query block permite a implementação das operações de selecção, projecção e junção da álgebra relacional. 2.3 Linguagens relacionais (continuação) SQL Structured Query Language 1) "Query block" Select From Where - Um "query block" permite a implementação

Leia mais

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

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g Pedro F. Carvalho OCP Oracle 2008.2 10g SQL Avançado Atualização e Inserção de Dados Comando INSERT Sumário Inclusão simples, inclusão de dados com SELECT Comando UPDATE Alteração simples, alteração usando

Leia mais

Manipulação de Dados com SQL

Manipulação de Dados com SQL Manipulação de Dados com SQL Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia www.facom.ufu.br/~wendelmelo Banco de Dados I manipulação de dados com SQL 2 Structured Query Language

Leia mais

Linguagem de Definição de Dados (DDL)

Linguagem de Definição de Dados (DDL) Modelagem de Banco de Dados Linguagem de Definição de Dados (DDL) Professor: Anderson D. Moura Março, 2009 Linguagem de Definição de Dados Linguagem para especificar a informação acerca de cada tabela,

Leia mais

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

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,

Leia mais

Revisão de Bancos de Dados

Revisão de Bancos de Dados Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)

Leia mais

Marcelo Henrique dos Santos

Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Marketing e Vendas (em andamento) Especialista em games Bacharel em Sistema de Informação Email: marcelosantos@outlook.com AULA 03 SQL (Structure Query Language)

Leia mais

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD. Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que

Leia mais

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução Programa DCC011 Introdução a Banco de Dados Álgebra Relacional Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Introdução Conceitos básicos,

Leia mais

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

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais Linguagem de Consulta SQL Profa. Carla A. Lima Reis SQL Agenda Introdução Histórico BD relacionais Linguagem SQL Definição de BD Manipulação de BD com SQL Consultas SQL Consultas com várias tabelas Subconsultas

Leia mais

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

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton

Leia mais

SQL Linguagem de Definição de Dados

SQL Linguagem de Definição de Dados SQL Linguagem de Definição de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais

Leia mais

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

'%'! $!0 $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,/)!)+,/)% *! +,0''% * %$!*!$$ #!%&%'%'%$! 94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31? MODELAGEM FÍSICA Capítulo 3! " # $ $!%%%& '$! $% $$%"%' ) ' *'!%'!$ $ $ $% +, %#!!" '$*'#%! $ $$%" % '$%!!% $% * % $ *-! %$% $!* '% $!$$.!'% & $%!% $ $ ' %/!$ 0 $*' $% *0 )#%!$0% 1&$$$%+#!*22,"$% )'%$$%%&

Leia mais

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação 1/5 Universidade Federal da Bahia Disciplina: Banco de Dados Prof a. Daniela Barreiro Claro ALGEBRA RELACIONAL Duas linguagens formais do Modelo Relacional o Álgebra Relacional e Cálculo Relacional Álgebra

Leia mais

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

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas Linguagem SQL ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas villas@puc-rio.br SQL Linguagem padrão de acesso tabelas em um banco de dados relacional Permite definir e manipular dados DML

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

A linguagem SQL

A linguagem SQL 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 recebeu o nome de

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

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