Olá desenvolvedores, hoje aprenderemos um pouco sobre SQL – Structured Query Language, (Linguagem de Consulta Estruturada), que é a linguagem de pesquisa declarativa padrão para banco de dados relacional.
No tutorial anterior falamos sobre o JDBC – Java Database Connectivity, e especialmente da sua conexão com o banco de dados. E ressaltamos que esta API, ou seja, este conjunto de classes e interfaces utiliza-se da linguagem SQL, para esta conexão e outras operações.
Em linhas gerais, SQL é a forma de instruirmos o banco de dados a partir de comandos específicos. Estes comandos executam ações como salvar, atualizar ou até mesmo excluir um registro. Ou ainda, possibilitar consultas, seja para exibir o resultado na tela ou gerar um relatório impresso, bem como mostrar um gráfico, entre outras ações possíveis. Em síntese, a linguagem SQL nos permite a partir de comandos manipular os dados em uma database de forma a obter um dado resultado.
Um exemplo do uso da linguagem SQL na prática, é por exemplo, um sistema do governo onde você entra com o CPF para fazer uma busca da sua situação cadastral. A resposta a esta consulta é construída a partir do SQL, a consulta ao banco de dados só é possível em função de uma conexão do sistema com o banco, cujo intermediário utiliza a linguagem SQL.
Uma das grandes vantagens em aprender SQL é que ele é utilizado por todos os bancos de dados relacionais. Isto é, a Strutured Query Language (SQL) é uma linguagem padrão para trabalhar com banco de dados relacionais nos diferentes SGBDs disponíveis no mercado. Então, se você aprendeu SQL para manipular dados no SGBD PostgreeSQL, poderá reaproveitar este conhecimento quando for trabalhar com Oracle ou MySQL, MariaDB, Amazon Aurora ou ainda Microsoft SQL Server.
“RAMIFICAÇÕES” DO SQL
A linguagem SQL é composta por um conjunto de linguagens que permitem, a saber, a DEFINIÇÃO – DDL (LINGUAGEM DE DEFINIÇÃO DE DADOS), CONSULTA E ATUALIZAÇÃO DE DADOS – DML (LINGUAGEM DE MANIPULAÇÃO DE DADOS):
LINGUEGEM DDL
DDL: LINGUAGEM DE DEFINIÇÃO DE DADOS: é um conjunto de comandos dentro da SQL usada para a definição das estruturas de dados. Fornecendo dessa forma as instruções que permitem a criação, modificação e remoção das tabelas, assim como criação de índices, como por exemplo.
- CREATE permite a criação de uma nova base de dados, tabela, índice, ou consulta armazenada. Entre os principais comandos inclusos estão CREATE DATABASE (CRIAR BANCO DE DADOS), CREATE TABLE (CRIAR TABELA) E OUTROS.
- DROP permite remover (destruir) uma base de dados existente, tabela, índice ou view. ENTRE OS PRINCIPAIS COMANDOS INCLUSOS ESTÃO DROP DATABASE (ELIMINA UM BANCO DE DADOS INTEIRO), DROP TABLE (EXCLUIR TABELA) E OUTROS.
- ALTER permite alterar um objeto de um banco de dados. Entre os principais comandos estão ALTER TABLE ADD (ADICIONAR UMA COLUNA NA TABELA), ALTER TABLE DROP (EXCLUIR UMA COLUNA NA TABELA).
LINGUAGEM DML
DML: LINGUAGEM DE MANIPULAÇÃO DE DADOS: é o grupo de comandos dentro da linguagem SQL utilizado para a recuperação, inclusão, remoção e modificação de informações em bancos de dados. Os principais comandos DML são SELECT, INSERT, UPDATE E DELETE.
- SELECT permite a consulta e retorno de um conjunto de registros de uma ou mais tabelas. O comando SELECT contém diversas cláusulas opcionais que servem para filtrar e tratar adequadamente a informação retornada. SELECT é normalmente a primeira palavra em uma instrução SQL. A maior parte das instruções SQL são instruções SELECT. A sintaxe mínima da instrução SELECT é: SELECT CAMPOS FROM TABELA.
- INSERT permite a inclusão de um ou mais registros em uma tabela. INSERT INTO NOME_TABELA (ATRIBUTOS) VALUES (VALORES_DOS_ATRIBUTOS);
- UPDATE é uma atualização dos dados de um ou mais registros de uma tabela. O comando UPDATE contém diversas cláusulas opcionais que permitem tratar adequadamente o tipo de atualização que deverá ser realizada.
- DELETE remove um ou mais registros de uma tabela. O comando DELETE pode conter as condições de deleção das informações.
BANCO DE DADOS RELACIONAL. O QUE É?
Um banco de dados relacional compreende uma coleção de dados relacionados entre si. Esses dados são armazenados em tabelas com colunas e linhas e podem ser acessados de várias formas distintas. Entretanto, os aspectos mais importantes a saber em um banco de dados relacional, é que eles utilizam a linguagem SQL, garantem integridade dos dados, transações e conformidade com o ACID.
A LINGUAGEM DE CONSULTA ESTRUTURADA, como sabem é uma interface usada para a comunicação com o banco de dados e outras operações. Elencada a ela está a INTEGRIDADE DE DADOS, é ela quem garante a precisão, confiabilidade e consistência dos dados. Mas para ter acesso a ela, os bancos de dados relacionais oferecem uma série de restrições que incluem, chave primária, chave estrangeira, restrições “não nulas”, “exclusivas”, e de “verificação”.
TRANSAÇÕES
As transações ocorrem quando uma ou mais instruções SQL são executadas como uma sequência de operações, formando uma única unidade lógica de trabalho. Isso significa que toda a transação deve ser entendida e processada como um único conjunto. Em linhas gerais implica necessariamente que nenhum componente individual da transação deverá passar. Assim, uma transação resulta em COMMIT ou ROLLBACK. E cada uma das transações são tratadas de forma coerente e confiável, estando diretamente ligada ao conceito anterior.
- O COMMIT em SQL finaliza uma transação dentro de SGBD e torna visíveis aos usuários todas as alterações.
- O ROLLBACK interrompe a transação corrente, ou seja, ele desfaz a transação corrente, fazendo com que todas as modificações realizadas por esta transação sejam rejeitadas. E não produz nenhuma mensagem para o usuário.
E por fim, outro importante aspecto dos bancos de dados relacionais diz respeito a conformidade com o ACID – Atomicidade, Consistência, Isolamento, Durabilidade. Em tese, A Atomicidade visa garantir o êxito da transação, se apenas uma parte falhar, toda a transação é dada como inválida.
A consistência nos leva de volta a integridade dos dados, onde estes devem ser gravados obedecendo todas as regras e restrições que objetivam a precisão, confiabilidade e consistência dos dados. O isolamento garante o controle frente a concorrência, assim, cada transação é asseguradamente independente. E por fim a durabilidade que diz respeito a permanência dos dados após uma alteração ter sido concluída com êxito. Estes dados devem persistir após o salvamento para acesso futuro.
EM POUCAS PALAVRAS
Aprendemos um pouco sobre a linguagem SQL e os banco de dados relacionais, e com isso, aprendemos mais sobre a estrutura e o grandiosos ecossistema de um banco de dados. Além de importantes conceitos, cujo conhecimento será de grande ajuda para o seu desenvolvimento aqui no curso de Formação Java Web, ou mesmo em sua carreira de programador. Eu fico por aqui e te vejo no próximo tutorial onde continuaremos essa conversa sobre banco de dados, e mais especificamente sobre DDL e DML.