ūüôč 11 Perguntas e respostas sobre SQL

SQL, Structured Query Language ou Linguagem de Consulta Estruturada em português é uma linguagem procedural usada para manipulação de bancos de dados relacionais e dos próprios dados que os bancos armazenam.

  • O subgrupo denominado DML(Data Manipulation Language ou Linguagem de Manipula√ß√£o de Dados em portugu√™s) da linguagem SQL serve para realizar inclus√£o, exclus√£o, altera√ß√£o e recupera√ß√£o de dados de uma tabela.
  • O subgrupo denominado DDL(Data Definition Language ou Linguagem de Defini√ß√£o de Dados em portugu√™s) da SQL serve para definir e manipular as estruturas de dados, ou seja, as tabelas, √≠ndices e constraints.
  • O subgrupo denominado DCL(Data Control Language ou Linguagem de Controle de Dados) da linguagem SQL serve para controlar as permiss√Ķes do banco de dados.
  • O subgrupo denominado DTL(Data Transaction Language) da SQL √© usada para controlar as transa√ß√Ķes de um banco de dados.

A DML, DDL, DCL, DTL, etc formam a linguagem SQL usada para a manipula√ß√£o de bancos de dados, podendo ocorrer pequenas varia√ß√Ķes de sintaxe entre diferentes fabricantes de bancos de dados caso n√£o implementem rigorasamente o padr√£o ANSI.

O padr√£o SQL ANSI √© uma tentativa de padroniza√ß√£o da linguagem SQL por organiza√ß√Ķes internacionais como o American National Standards Institute (traduz-se como "Instituto Nacional Americano de Padr√Ķes") ou ANSI.

Essa padronização ocorreu e foi necessária devido ao fato de terem surgidos vários dialetos de bancos que foram criados por diversos fabricantes.

Segue abaixo a listagem de como o padr√£o foi se desenvolvendo e melhorando com o tempo.

  • SQL-86 - Primeira vers√£o da linguagem, lan√ßada em 1986, consiste basicamente na vers√£o inicial da linguagem criada pela IBM.
  • SQL-92 - Lan√ßada em 1992, inclui novos recursos tais como tabelas tempor√°rias, novas fun√ß√Ķes, express√Ķes nomeadas, valores √ļnicos, instru√ß√£o CASE etc.
  • SQL:1999 (SQL3) - Lan√ßada em 1999, foi a vers√£o que teve mais recursos novos significativos, entre eles: a implementa√ß√£o de express√Ķes regulares, recursos de orienta√ß√£o a objetos, queries recursivas, triggers, novos tipos de dados (boolean, LOB, array e outros), novos predicados etc.
  • SQL:2003 - Lan√ßada em 2003, inclui suporte b√°sico ao padr√£o XML, sequ√™ncias padronizadas, instru√ß√£o MERGE, colunas com valores auto-incrementais etc.
  • SQL:2006 - Lan√ßada em 2006, n√£o inclui mudan√ßas significativas para as fun√ß√Ķes e comandos SQL. Contempla basicamente a intera√ß√£o entre SQL e XML

Fonte : www.fabioprado.net

Uma query √© uma requisi√ß√£o de informa√ß√£o feita a um banco de dados relacional que pode ter como resposta informa√ß√Ķes contidas em uma ou mais tabelas ou at√© mesmo metadados do banco de dados. No geral as requisi√ß√£o de informa√ß√Ķes s√£o escritas por meio da linguagem SQL, mas podem haver outras linguagens n√£o muito usuais como o AQL, o Datalog e o DMX.

4.  
Quem criou o SQL ?

O SQL foi criado dentro dos laboratórios da IBM na década de 70 visando a viabilização do modelo relacional proposto por Edgar Frank Codd.

Entre as subdivis√Ķes da linguagem SQL, usa-se a DDL(Data Definition Language ou Linguagem de Defini√ß√£o de Dados) para se excluir um banco de dados de um SGBD(Sistema Gerenciador de Banco de Dados).

As instru√ß√Ķes DDL s√£o CREATE, ALTER, DROP, RENAME e TRUNCATE, sendo que para se excluir um banco de dados a query ser√° escrita utilizando-se a instru√ß√£o: DROP DATABASE [nome_do_banco];

A linguagem SQL √© baseada na √°lgebra relacional(forma de se fazer c√°lculos sobre conjuntos ou rela√ß√Ķes), proposta por Edgar Frank Codd. O comando SELECT √© baseado no operador primitivo de sele√ß√£o da √°lgebra relacional, que tem como resultado um subconjunto de dados que atendam a alguma condi√ß√£o predeterminada.

Para adicionar uma coluna em um tabela de um banco dados, é necessário utilizar a instrução ALTER TABLE juntamente com a instrução ADD COLUMN da DDL(Data Definition Language), ou seja, é necessário utilizar o conjunto de comandos da SQL responsável pela definição de dados.

O comando ALTER TABLE pode ser usado para adicionar ou remover uma coluna de uma tabela e também para alterar o nome ou o tipo de uma coluna.

O exemplo da instru√ß√£o SQL ANSI abaixo demonstra como se faz para adicionar a coluna COL_1 na tabela exemplo, sendo que, geralmente a nova coluna ser√° adicionada com a √ļltima coluna da tabela.

  • ALTER TABLE TABELA_EXEMPLO ADD COLUMN COL_1 char(50);

SQL √© um acr√īnimo para o termo structured query language em ingl√™s e que em portugu√™s significa linguagem de consulta estruturada, ou seja, a linguagem declarativa padr√£o para consulta e manipula√ß√£o de banco de dados usada por interm√©dio de um SGBD(sistema gerenciador de banco de dados).

NoSQL é um conceito em que o modelo relacional de armazenamento de dados não é necessariamente a melhor solução para todos os problemas relacionados a armazenamento e recuperação de informação em bancos de dados. O NoSQL não pretende substituir o modelo relacional, mas sim atuar de forma complementar a ele e dependendo do caso ser uma alternativa que resolva problemas que o modelo relacional não consegue resolver eficientemente.

A expressão NoSQL já foi entendida como "no sql", "não sql" ou "não relacional", mas hoje é entendido como "not only sql" ou "não somente sql" devido a forma de armazenamento dos bancos não relacionais ocorrerem de forma não estruturada.

A concatenação no SQL não segue um padrão pré-definido como no SQL ANSI e por isto dependendo do fabricante do SGBD pode haver diferenças na forma de se realizar a concatenação de campos ou strings.

Para exemplificar como concatenar em diferentes SGBD's utilizando o SQL, suponha a tabela PESSOA abaixo:

IDNOMESOBRENOME
1PAULOALVARENGA

  • Para concatenar no SGBD MySQL pode-se utilizar a instru√ß√£o CONCAT como no exemplo SELECT CONCAT(NOME,SOBRENOME) FROM PESSOA que ir√° ter como resultado a string "Paulo Alvarenga".
  • Para concatenar no SGBD PostgreSQL utiliza-se o comando || como no exemplo SELECT NOME || SOBRENOME FROM PESSOA que ir√° ter como resultado "Paulo Alvarenga".
  • O SGBD Oracle possui duas formas de concatena√ß√£o, uma utilizando CONCAT e outra utilizando o comando || como nos exemplos SELECT NOME || SOBRENOME FROM PESSOA e SELECT CONCAT(NOME,SOBRENOME) FROM PESSOA que ter√£o como resultado a string "Paulo Alvarenga".
  • O SGBD SQLServer tamb√©m possui duas formas de concatena√ß√£o, uma utilizando CONCAT e outra utilizando o operador + como nos exemplos SELECT CONCAT(NOME, SOBRENOME) AS NOME_COMPLETO FROM PESSOA e SELECT (NOME + SOBRENOME) AS NOME_COMPLETO FROM PESSOA que ter√£o como resultado "Paulo Alvarenga".

Para se fazer uma soma utilizando SQL é necessário utilizar o operador aritmético de adição (+). Para exemplificar suponha a tabela COMPRAS abaixo:

IDNOME_PESSOAQUANT_BANANASQUANT_MACAS
1Jo√£o2045
2Patricia1332

Para sabermos quantas frutas foram compradas por jo√£o devemos somar os campos QUANT_BANANAS e QUANT_MACAS conforme a query SELECT (QUANT_BANANAS+QUANT_MACAS) AS QUANT_FRUTAS FROM COMPRAS WHERE NOME_PESSOA LIKE 'Jo√£o' que ter√° como resultado 65.

Observação: No exemplo acima foi a soma foi realiza entre dois campos numéricos, mas caso a soma seja realizada entre um campo numérico e um campo string por exemplo o banco poderá retornar um erro avisando que será necessário realizar uma conversão de tipos antes de fazer a soma.


exerciciosresolvidos.com.br

Acreditamos na educação gratuita e de qualidade. Nos ajude com sua opinião, sugestão ou crítica : exerciciosresolvidosbr@gmail.com

Copyright ¬© 2020. Built with ‚̧ Love