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.