Baixe o app para aproveitar ainda mais
Prévia do material em texto
SQL banco de dados. Imagem de acesso a um banco de dados SQL Paradigma Multiparadigma Surgido em 1974 Última versão SQL:2016 (2016) Criado por Donald D. Chamberlin Raymond F. Boyce Estilo de tipagem: Forte Dialetos: SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2016 Influenciada por Datalog Influenciou Agena, CQL,LINQ, Windows PowerShell SQL Origem: Wikipédia, a enciclopédia livre. Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é a linguagem de pesquisa declarativa padrão para banco de dados relacional (base de dados relacional). Muitas das características originais do SQL foram inspiradas na álgebra relacional. O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System R, que tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por E. F. Codd. O nome original da linguagem era SEQUEL, acrônimo para "Structured English Query Language" (Linguagem de Consulta Estruturada, em Inglês)[1], vindo daí o facto de, até hoje, a sigla, em inglês, ser comumente pronunciada "síquel" ao invés de "és-kiú-él", letra a letra. No entanto, em português, a pronúncia mais corrente é letra a letra: "ésse-quê-éle". A linguagem é um grande padrão de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se diferencia de outras linguagens de consulta a banco de dados no sentido em que uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões regulares de emparelhamento, queries recursivas e gatilhos (triggers). Também foi feita uma adição controversa de tipos não-escalados e algumas características de orientação a objeto. O SQL:2003 introduz características relacionadas ao XML, sequências padronizadas e colunas com valores de auto-generalização (inclusive colunas-identidade). Tal como dito anteriormente, embora padronizado pela ANSI e ISO, possui muitas variações e extensões produzidos pelos diferentes fabricantes de sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais principais. Outra aproximação é permitir para código de idioma procedural ser embutido e interagir com o banco de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens. https://pt.wikipedia.org/wiki/Ficheiro:Sql_ledger_login.png https://pt.wikipedia.org/wiki/Paradigma_de_programa%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/Multiparadigma https://pt.wikipedia.org/wiki/Vers%C3%A3o https://pt.wikipedia.org/wiki/Donald_Chamberlin https://pt.wikipedia.org/w/index.php?title=Raymond_F._Boyce&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Tipo_de_dado https://pt.wikipedia.org/w/index.php?title=SQL-92&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=SQL:1999&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=SQL:2003&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=SQL:2008&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=SQL:2016&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Datalog https://pt.wikipedia.org/wiki/Agena https://pt.wikipedia.org/w/index.php?title=Common_Query_Language&action=edit&redlink=1 https://pt.wikipedia.org/wiki/LINQ https://pt.wikipedia.org/wiki/Windows_PowerShell https://pt.wikipedia.org/wiki/Banco_de_dados_relacional https://pt.wikipedia.org/wiki/%C3%81lgebra_relacional https://pt.wikipedia.org/wiki/International_Business_Machines https://pt.wikipedia.org/wiki/System_R https://pt.wikipedia.org/wiki/Modelo_relacional https://pt.wikipedia.org/wiki/Edgar_Frank_Codd https://pt.wikipedia.org/wiki/American_National_Standards_Institute https://pt.wikipedia.org/wiki/1986 https://pt.wikipedia.org/wiki/Organiza%C3%A7%C3%A3o_Internacional_para_Padroniza%C3%A7%C3%A3o https://pt.wikipedia.org/wiki/1987 https://pt.wikipedia.org/wiki/1992 https://pt.wikipedia.org/wiki/1999 https://pt.wikipedia.org/wiki/2003 https://pt.wikipedia.org/wiki/Express%C3%B5es_regulares https://pt.wikipedia.org/wiki/Gatilho_(banco_de_dados) https://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objeto https://pt.wikipedia.org/wiki/XML https://pt.wikipedia.org/wiki/Sistema_de_gerenciamento_de_banco_de_dados https://pt.wikipedia.org/wiki/Banco_de_dados https://pt.wikipedia.org/wiki/Oracle_(banco_de_dados) https://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_Java https://pt.wikipedia.org/wiki/PostgreSQL https://pt.wikipedia.org/wiki/Perl https://pt.wikipedia.org/wiki/Tcl https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o) Tabela 'T' Consulta Resultado C1 C2 1 a 2 b Select * from T C1 C2 1 a 2 b C1 C2 1 a 2 b Select C1 from T C1 1 2 C1 C2 1 a 2 b Select * from T where C1=1 C1 C2 1 a Exemplo 1 Exemplo 2 Subconjuntos do SQL DML - Linguagem de Manipulação de Dados DDL - Linguagem de Definição de Dados DCL - Linguagem de Controle de Dados DTL - Linguagem de Transação de Dados DQL - Linguagem de Consulta de Dados Palavras-chave em SQL Cláusulas Operadores Lógicos Operadores relacionais Funções de Agregação Sistemas de Banco de Dados que usam SQL Referências Bibliografia Ligações externas A pesquisa SELECT * FROM T, no exemplo da tabela à direita acima, terá como resultado todos os elementos de todas as linhas da tabela chamada T. Partindo da mesma tabela T, a pesquisa SELECT C1 FROM T terá como resultado todos os elementos da coluna C1 da tabela T. O resultado da pesquisa SELECT * FROM T WHERE C1=1 será todos os elementos de todas as linhas onde o valor de coluna C1 é '1'. Exemplo básico de verificação se tabela existe em SQL: IF (EXISTS (SELECT * FROM INFORMACAO.TABELA WHERE ESQUEMA_TABELA = 'Esquema da Tabela' AND NOME_TABELA = 'Nome da Tabela')) BEGIN --Faça a rotina SQL aqui... END Índice Exemplo 1 Exemplo 2 Subconjuntos do SQL A linguagem SQL é dividida em subconjuntos de acordo com as operações que queremos efetuar sobre um banco de dados, tais como: O primeiro grupo é a DML (Data Manipulation Language - Linguagem de manipulação de dados). DML é um subconjunto da linguagem SQL que é utilizado para realizar inclusões, consultas, alterações e exclusões de dados presentes em registros. Estas tarefas podem ser executadas em vários registros de diversas tabelas ao mesmo tempo. Os comandos que realizam respectivamente as funções acima referidas são Insert, Update e Delete. função comandosSQL descrição do comando exemplo inclusões INSERT é usada para inserir um registro (formalmente uma tupla) a uma tabela existente. INSERT INTO Pessoa (id, nome, sexo) VALUE; alterações UPDATE para mudar os valores de dados em uma oumais linhas da tabela existente. UPDATE Pessoa SET data_nascimento = '11/09/1985' WHERE id_pessoa = 7 exclusões DELETE permite remover linhas existentes de umatabela. DELETE FROM pessoa WHERE id_pessoa = 7 É possível inserir dados na tabela Area usando o INSERT INTO: INSERT INTO Area (arecod, aredes) VALUES (100, "Informática"), (200, "Turismo"), (300, "Higiene e Beleza"); O segundo grupo é a DDL (Data Definition Language - Linguagem de Definição de Dados). Uma DDL permite ao utilizador definir tabelas novas e elementos associados. A maioria dos bancosde dados de SQL comerciais tem extensões proprietárias no DDL. Os comandos básicos da DDL são poucos: CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados. DROP: apaga um objeto do banco de dados. Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente. Outros comandos DDL: CREATE TABLE CREATE INDEX CREATE VIEW ALTER TABLE ALTER INDEX DROP INDEX DROP VIEW DML - Linguagem de Manipulação de Dados DDL - Linguagem de Definição de Dados DCL - Linguagem de Controle de Dados https://pt.wikipedia.org/wiki/DML https://pt.wikipedia.org/wiki/DML https://pt.wikipedia.org/wiki/DDL https://pt.wikipedia.org/wiki/Tabelas_(banco_de_dados) O terceiro grupo é o DCL (Data Control Language - Linguagem de Controle de Dados). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. Duas palavras-chaves da DCL: GRANT - autoriza ao usuário executar ou setar operações. REVOKE - remove ou restringe a capacidade de um usuário de executar operações. BEGIN WORK (ou BEGIN TRANSACTION, dependendo do dialeto SQL) pode ser usado para marcar o começo de uma transação de banco de dados que pode ser completada ou não. COMMIT finaliza uma transação dentro de um sistema de gerenciamento de banco de dados. ROLLBACK faz com que as mudanças nos dados existentes desde o último COMMIT ou ROLLBACK sejam descartadas. COMMIT e ROLLBACK interagem com áreas de controle como transação e locação. Ambos terminam qualquer transação aberta e liberam qualquer cadeado ligado a dados. Na ausência de um BEGIN WORK ou uma declaração semelhante, a semântica de SQL é dependente da implementação. Embora tenha apenas um comando, a DQL é a parte da SQL mais utilizada. O comando SELECT permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. Esse comando é composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples às mais elaboradas. Função Comandos SQL Descrição docomando Exemplo consultas SELECT O Select é o principal comando usado em SQL para realizar consultas a dados pertencentes a uma tabela. Select * From Pessoa; As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta. FROM – Utilizada para especificar a tabela que se vai selecionar os registros. WHERE – Utilizada para especificar as condições que devem reunir os registros que serão selecionados. GROUP BY – Utilizada para separar os registros selecionados em grupos específicos. DTL - Linguagem de Transação de Dados DQL - Linguagem de Consulta de Dados Palavras-chave em SQL Cláusulas https://pt.wikipedia.org/wiki/Linguagem_de_controle_de_dados https://pt.wikipedia.org/wiki/Select_(SQL) https://pt.wikipedia.org/wiki/Select_(SQL) https://pt.wikipedia.org/w/index.php?title=From_(SQL)&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Where_(SQL) HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo. ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica. DISTINCT – Utilizada para selecionar dados sem repetição. UNION - combina os resultados de duas consultas SQL em uma única tabela para todas as linhas correspondentes. AND – E lógico. Avalia as condições e devolve um valor verdadeiro caso ambos sejam corretos. OR – OU lógico. Avalia as condições e devolve um valor verdadeiro se algum for correto. NOT – Negação lógica. Devolve o valor contrário da expressão. O SQL possui operadores relacionais, que são usados para realizar comparações entre valores, em estruturas de controle. Operador Descrição Exemplos < Menor SELECT * FROM informacao.tabela WHERE idade < 18; Seleciona todos os registros na "tabela" que possuem o campo "idade" com valores menores que 18. > Maior SELECT * FROM informacao.tabela WHERE idade > 18; Seleciona todos os registros na "tabela" que possuem o campo "idade" com valores maiores que 18. <= Menor ouigual SELECT * FROM informacao.tabela WHERE idade <= 18; Seleciona todos os registros na "tabela" que possuem o campo "idade" com valores menores ou iguais à 18. >= Maior ouigual SELECT * FROM informacao.tabela WHERE idade >= 18; Seleciona todos os registros na "tabela" que possuem o campo "idade" com valores maiores ou iguais à 18. = Igual SELECT * FROM informacao.tabela WHERE idade = 18; Seleciona todos os registros na "tabela" que possuem o campo "idade" com valores exatamente iguais à 18. <> Diferente SELECT * FROM informacao.tabela WHERE idade <> 18; Seleciona todos os registros na "tabela" que possuem o campo "idade" com valores que são diferentes de 18. BETWEEN – Utilizado para especificar valores dentro de um intervalo fechado. LIKE – Utilizado na comparação de um modelo e para especificar registros de um banco de dados. "Like" + extensão % significa buscar todos resultados com o mesmo início da extensão. IN - Utilizado para verificar se o valor procurado está dentro de um« »a lista. Ex.: valor IN (1,2,3,4). As funções de agregação, como os exemplos abaixo, são usadas dentro de uma cláusula SELECT em grupos de registros para devolver um único valor que se aplica a um grupo de registros. AVG – Utilizada para calcular a média dos valores de um campo determinado. COUNT – Utilizada para devolver o número de registros da seleção. SUM – Utilizada para devolver a soma de todos os valores de um campo determinado. Operadores Lógicos Operadores relacionais Funções de Agregação https://pt.wikipedia.org/w/index.php?title=Having_(SQL)&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=Order_by&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Opera%C3%A7%C3%B5es_SET_(SQL) https://pt.wikipedia.org/wiki/Intervalo_(matem%C3%A1tica) MAX – Utilizada para devolver o valor mais alto de um campo especificado. MIN – Utilizada para devolver o valor mais baixo de um campo especificado. 1. Chamberlin, D. D., Astrahan, M. M., Blasgen, M. W., Gray, J. N., King, W. F., Lindsay, B. G., Lorie, R., Mehl, J. W., Price, T. G., Putzolu, F., Selinger, P. G., Schkolnick, M., Slutz, D. R., Traiger, I. L., Wade, B. W., and Yost, R. A. 1981. A history and evaluation of System R. Commun. ACM 24, 10 (Oct. 1981), 632-646. http://doi.acm.org/10.1145/358769.358784 2. DataFlex SQL Connectivity Kits. https://www.dataaccess.com.br/produtos/dataflex/características/sql-connectivity-details-1107 Navathe, S. B. and Elmasri, R. - Sistemas de Banco de Dados – Fundamentos e Aplicações, Editora LTC, ano 2002. Ramalho, José Antonio Alves, Transact-SQL Guia de Referência, Série Ramalho, Editora Berkeley, ano 2001. Padrão SQL 2003 (http://www.acm.org/sigmod/record/issues/0403/index.html#standards) (em inglês) O que é SQL? (https://www.alura.com.br/artigos/o-que-e-sql) (em português) SQL tutorial (http://sqlwoz.com) Jupitermedia Corporation's online SQL tutorial (http://sqlcourse.com/) (em inglês) A Gentle Introduction to SQL by Andrew Cumming (http://sqlzoo.net/) (em inglês) Database Debunking (http://www.dbdebunk.com/) (em inglês) Online SQL Formatter (http://www.text-utils.com/sql-formatter) (em inglês) Curso de SQL Gratuito (http://www.softblue.com.br/site/curso/id/3/CURSO+SQL+COMPLETO+B ASICO+AO+AVANCADO+ON+LINE+BD03) (em português) Sybase Advantage Database Server (https:// web.archive.org/web/20101008045513/http:// www.sybase.com.br/products/databasemana gement/advantagedatabaseserver) Apache Derby Caché DB2 Dataflex [2] Firebird HSQLDB (banco de dados implementado em Java) IDMS (banco de dados hierárquico) IMS (banco de dados hierárquico) Informix Ingres InterBase Microsoft Access Microsoft SQL Server MySQL Oracle PointBase Micro (banco de dados relacional implementado em Java) PostgreSQL SQLite LiteBase Mobile (dedicado à plataformas móveis como: Palm OS, Pocket PC, WinCE, Symbian) Sybase Adaptive Server Enterprise Teradata (primeiro RDBMS com arquiteturaparalela do mercado) Sistemas de Banco de Dados que usam SQL Referências Bibliografia Ligações externas http://doi.acm.org/10.1145/358769.358784 https://www.dataaccess.com.br/produtos/dataflex/caracter%C3%ADsticas/sql-connectivity-details-1107 http://www.acm.org/sigmod/record/issues/0403/index.html#standards https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa https://www.alura.com.br/artigos/o-que-e-sql http://sqlwoz.com/ http://sqlcourse.com/ https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://sqlzoo.net/ https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://www.dbdebunk.com/ https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://www.text-utils.com/sql-formatter https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://www.softblue.com.br/site/curso/id/3/CURSO+SQL+COMPLETO+BASICO+AO+AVANCADO+ON+LINE+BD03 https://pt.wikipedia.org/wiki/L%C3%ADngua_portuguesa https://web.archive.org/web/20101008045513/http://www.sybase.com.br/products/databasemanagement/advantagedatabaseserver https://pt.wikipedia.org/wiki/Apache_Derby https://pt.wikipedia.org/wiki/Cach%C3%A9 https://pt.wikipedia.org/wiki/DB2 https://pt.wikipedia.org/wiki/Dataflex https://pt.wikipedia.org/wiki/Firebird_(servidor_de_base_de_dados) https://pt.wikipedia.org/wiki/HSQLDB https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o) https://pt.wikipedia.org/w/index.php?title=IDMS&action=edit&redlink=1 https://pt.wikipedia.org/wiki/IMS https://pt.wikipedia.org/wiki/Informix https://pt.wikipedia.org/wiki/Ingres_(SGBD) https://pt.wikipedia.org/wiki/InterBase https://pt.wikipedia.org/wiki/Microsoft_Access https://pt.wikipedia.org/wiki/Microsoft_SQL_Server https://pt.wikipedia.org/wiki/MySQL https://pt.wikipedia.org/wiki/Oracle_(banco_de_dados) https://pt.wikipedia.org/wiki/PointBase_Micro https://pt.wikipedia.org/wiki/PostgreSQL https://pt.wikipedia.org/wiki/SQLite https://pt.wikipedia.org/w/index.php?title=LiteBase_Mobile&action=edit&redlink=1 https://pt.wikipedia.org/wiki/Sybase https://pt.wikipedia.org/wiki/Teradata https://pt.wikipedia.org/wiki/RDBMS SQL for beginners (http://www.cfxweb.net/modules.php?name=News&file=article&sid=161) (em inglês) Oracle SQL FAQ (http://www.orafaq.com/faqsql.htm) (em inglês) LiteBase (http://www.litebase.org/) (em português) Tutorial de SQL (http://www.1keydata.com/pt/sql/) (em português) Oracle SQL tutorials (http://freeitsolutions.com/oracle-tutorials/?search=sql) (em inglês) O que faz um Administrador de Banco de Dados (https://medium.com/@InfoTec/o-que-faz-um-ad ministrador-de-banco-de-dados-83caac92d4ef) (em português) Tutorial SQL - Portal W3 Schools (https://www.w3schools.com/sql/) Obtida de "https://pt.wikipedia.org/w/index.php?title=SQL&oldid=57375258" Esta página foi editada pela última vez às 14h06min de 7 de fevereiro de 2020. Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de utilização. http://www.cfxweb.net/modules.php?name=News&file=article&sid=161 https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://www.orafaq.com/faqsql.htm https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa http://www.litebase.org/ https://pt.wikipedia.org/wiki/L%C3%ADngua_portuguesa http://www.1keydata.com/pt/sql/ https://pt.wikipedia.org/wiki/L%C3%ADngua_portuguesa http://freeitsolutions.com/oracle-tutorials/?search=sql https://pt.wikipedia.org/wiki/L%C3%ADngua_inglesa https://medium.com/@InfoTec/o-que-faz-um-administrador-de-banco-de-dados-83caac92d4ef https://pt.wikipedia.org/wiki/L%C3%ADngua_portuguesa https://www.w3schools.com/sql/ https://pt.wikipedia.org/w/index.php?title=SQL&oldid=57375258 https://creativecommons.org/licenses/by-sa/3.0/deed.pt https://foundation.wikimedia.org/wiki/Condi%C3%A7%C3%B5es_de_Uso
Compartilhar