A linguagem SQL (Structure Query Language) é um padrão de linguagem, utilizado para manipulação de dados e manipulação de objetos em um SGBD (sistema Gerenciador de Banco de Dados).

Essa linguagem foi padronizada inicialmente pela ANSI (American National Standard Institute) em 1986, onde ficou conhecida como SQL-86. No ano seguinte, a publicação padrão foi feita pela ISO, tornando-a como uma norma internacional. Foi dividida em duas vertentes:

– DDL Data Definition Language
– DML Data Manipulation Language

Essa linguagem é utilizada em todos os bancos de dados relacionais, e está presente até em sistemas operacionais. Existem variações de linguagens SQL específicas para determinados SGBDs, como é o caso do T-SQL do Microsoft SQL Server e P-SQL da Oracle, obviamente todas derivam do padrão ANSI.

Basicamente, a linguagem SQL é uma linguagem de consulta a banco de dados. Sua diferença das linguagens de programação comuns, é que o SQL não é uma linguagem procedural, como a maioria das linguagens de programação. Nessa linguagem, nós apenas informamos ao banco de dados o que queremos, e o SGBD se encarrega de escolher os procedimentos adequados a serem executados para resolver as solicitações.

O SELECT é a sintaxe básica da linguagem SQL. Como o próprio nome diz, esse comando é utilizado para SELECIONAR alguma coisa. A sintaxe do SELECT consistem em:

SELECT [coluna1, coluna2, … , colunaN]
FROM [tabela1, tabela2, … tabelaN]
WHERE [condição]
ORDER BY [coluna1, coluna2… colunaN] [asc | desc]

Após o nome SELECT, devemos informar as colunas que queremos retornar na consulta solicitada. As colunas devem ser separadas por vírgula. Caso queira retornar todas as colunas, você poderá utilizar (*), porém essa não é uma prática recomentada, por motivos de performance.

Após informar as colunas, teremos a cláusula FROM. Após o nome FROM iremos informar as tabelas que iremos consultar os dados. As tabelas devem ser informadas separadas por vírgula. Quando houver mais de uma tabela, as colunas de cada tabela informadas no SELECT, devem ser precedidas pelo nome da tabela, por exemplo, Nome_da_Tabela.Nome_da_coluna.

Depois de informar as tabelas no FROM, teremos a cláusula WHERE. Após o nome WHERE, iremos informar a condição ou conjunto de condições que deverão ser utilizados para satisfazer a consulta requerida. Caso tenhamos mais de uma tabela informada na clausula FROM, as ligação das colunas Essa cláusula é opcional.

Após, teremos o ORDER BY, essa cláusula também é opcional, e ela irá indicar a ordem em que os dados serão retornados. Poderemos ainda utilizar os opcionais ASC e DESC, que indicam, respectivamente, se os dados devem ser retornados na ordem crescente ou decrescente.

Para indicar a finalização do código SQL, devemos informar o sinal de ponto-e-vírgula (;)

Vamos mostrar alguns exemplos:

SELECT *
FROM products
WHERE unitprice > 45;

No select acima, iremos selecionar da tabela products, todos os registros que tem a coluna unitprice acima de 1000. Observe que iremos retornar todas as colunas da tabela products, pois estamos informando * após o SELECT.

—————————————————
SELECT products.productid, products.productname, products.categoryid, categories.categoryid, categories.categoryname
FROM products, categories
WHERE products.unitprice > 10

Nesse exemplo, estamos solicitando dados das tabelas products e categories onde o a coluna unitprice da tabela products é maior que 10. Porém, se você notar na figura abaixo, verá que o produto está sendo repetido 1 vez para cada categoria. Isso acontece porque não informamos na instrução SQL, a correspondência de uma tabela com a outra, por isso está acontecendo o produto cartesiano.

Para corrigir esse problema, iremos informar no mesmo SELECT, mais uma condição na cláusula WHERE, criando assim uma correspondência entre as tabelas.

SELECT products.productid, products.productname, products.categoryid, categories.categoryid, categories.categoryname
FROM products, categories
WHERE products.categoryid = categories.categoryid
AND products.unitprice > 10

Dessa forma, os dados retornarão sem repetição e com as correspondências de cada tabela.

Bom, esse foi o primeiro artigo em que estaremos explicando e mostrando a linguagem SQL e suas vertentes.

Dúvidas?? Mande um e-mail para leolopes@blogdati.com.br