Desbravando os Segredos do SQL: Um Guia Completo para Dominar a Linguagem de Bancos de Dados
Tags: sql, mysql, database
Published: 2023-06-19 20:25:46

SQL (Structured Query Language) é uma linguagem de programação padronizada usada para gerenciar bancos de dados relacionais e realizar várias operações nos dados. Criada inicialmente na década de 1970, o SQL é comumente usado não apenas por administradores de banco de dados, mas também por desenvolvedores que escrevem scripts de integração de dados e por analistas de dados que desejam configurar e executar consultas analíticas.


![SQL MindMap](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tnlxda40d9x7vq4fxui5.jpg)

##Comandos SQL
Existem 4 comandos importantes em SQL:
DDL (Data Query Language)
É usado para criar e modificar a estrutura dos objetos do banco de dados. Esses objetos do banco de dados incluem visões, esquemas, tabelas, índices, etc.
Os comandos DDL comumente usados em consultas SQL são `CREATE`, `ALTER`, `DROP `e `TRUNCATE`.

**CREATE**: É usado para criar uma nova tabela no banco de dados. Exemplo:
```sql
CREATE TABLE [nome_da_tabela] ([definições_de_coluna]) [parâmetros_da_tabela];
```
```sql
CREATE TABLE EMPLOYEE (Nome VARCHAR2(20), Email VARCHAR2(100), DOB DATE);
```
**DROP**: É usado para excluir a estrutura e os registros armazenados na tabela.Exemplo:
```sql
DROP TABLE nome_da_tabela;
```
```sql
DROP TABLE EMPLOYEE;
```
**ALTER**: É usado para alterar a estrutura do banco de dados, seja para modificar as características de um atributo existente ou para adicionar um novo atributo.
Exemplo:
```sql
ALTER TABLE nome_da_tabela ADD nome_da_coluna DEFINIÇÃO-DE-COLUNA;
```
```sql
ALTER TABLE Employee ADD Address VARCHAR2(20);
```
**TRUNCATE**: É usado para excluir todas as linhas da tabela e liberar o espaço ocupado por ela. Exemplo:
```sql
TRUNCATE TABLE nome_da_tabela;
```
```sql
TRUNCATE TABLE EMPLOYEE;
```
---------------------------------------------------
##DQL (Data Query Language)
É usado para buscar dados do banco de dados, como por exemplo o comando `SELECT`. Ele é usado para selecionar atributos com base em uma condição descrita pela cláusula WHERE.
Exemplo:
```sql
SELECT atributos FROM tabelas WHERE condições;
```
```sql
SELECT Email FROM Employee WHERE Name='Vishal';
```

##DML (Data Manipulation Language)
Permite modificar a instância do banco de dados inserindo, modificando e excluindo dados. É responsável por realizar todos os tipos de modificação de dados em um banco de dados. Os comandos DML comumente usados em consultas SQL são CRUD, SELECT, INSERT, UPDATE e DELETE.
**SELECT**: É usado para buscar registros de dados da tabela do banco de dados e apresentá-los como um conjunto de resultados.
Exemplo:
```sql
SELECT nome_da_coluna1, nome_da_coluna2,.. FROM nome_da_tabela;
```
```sql
SELECT * FROM nome_da_tabela;
```
```sql
SELECT EmployeeId, EmployeeName, Designation, Country FROM Employee;
```
```sql
SELECT * FROM Employee;
```

**INSERT**: É usado para inserir registros de dados na tabela do banco de dados.
Exemplo:
```sql
INSERT INTO nome_da_tabela (col1, col2, col3,.... colN)
VALUES (valor1, valor2, valor3, .... valorN);
```
```sql
INSERT INTO Employee (EmployeeName, Designation, Country)
VALUES ('John Doe', 'Manager', 'USA');
```

**UPDATE**: É usado para modificar os registros existentes na tabela do banco de dados.
Exemplo:
```sql
UPDATE nome_da_tabela
SET coluna = novo_valor
WHERE condição;
```
```sql
UPDATE Employee
SET Designation = 'Lead'
WHERE EmployeeId = 1001;
```

**DELETE**: É usado para excluir registros existentes na tabela do banco de dados.
Exemplo:
```sql
DELETE FROM nome_da_tabela WHERE condição;
```
```sql
DELETE FROM Employee WHERE EmployeeId = 1001;
```
---------------------------------------------------
##DCL (Data Control Language)
É usado para controlar os direitos de acesso ao banco de dados, definindo as permissões concedidas aos usuários.
Exemplo:
```sql
GRANT permissões ON nome_da_tabela TO nome_do_usuário;
```
```sql
GRANT SELECT, INSERT, UPDATE, DELETE ON Employee TO John;
```

##TCL (Transaction Control Language)
É usado para gerenciar as transações no banco de dados, permitindo que você confirme ou reverta as alterações feitas nas transações.
Exemplo:
```sql
COMMIT;
```
```sql
ROLLBACK;
```
---------------------------------------------------