Você está na página 1de 5

Introdução:

SQL (Structured Query Language) é uma linguagem de programação utilizada para gerenciar bancos
de dados relacionais. É amplamente utilizada em aplicações de gerenciamento de banco de dados, como
sistemas de gerenciamento de banco de dados (DBMS), como MySQL, Oracle, MS SQL Server, entre out-
ros.
Com SQL, é possível criar, modificar e excluir bases de dados, tabelas e registros. Além disso, é
possível fazer consultas aos dados armazenados em um banco de dados, filtrar resultados, realizar
operações de junção entre tabelas e até mesmo realizar cálculos em conjuntos de dados.
Existem várias versões da linguagem SQL, incluindo o SQL padrão ANSI e as variações implemen-
tadas pelos diferentes sistemas de gerenciamento de banco de dados. No entanto, a maioria das instruções
SQL básicas são comuns a todas as versões, o que torna a linguagem amplamente utilizada e facilita a mi-
gração de um DBMS para outro. Algumas das principais funcionalidades de SQL incluem:
Criação e modificação de estruturas de banco de dados: com SQL, é possível criar tabelas, índices,
sequências e outros objetos de banco de dados. Também é possível alterar a estrutura dessas tabelas, adicio-
nando ou excluindo colunas, modificando o tipo de dados de uma coluna, entre outras operações.
Inserção, atualização e exclusão de dados: com SQL, é possível adicionar novos registros a uma
tabela, alterar os dados de um registro existente ou excluir um registro da tabela.
Consultas a dados: com SQL, é possível realizar consultas aos dados armazenados em um banco de
dados, filtrando os resultados por diversos critérios, ordenando os resultados, agrupando os resultados, entre
outras operações.
Junções: é possível realizar junções entre duas ou mais tabelas, combinando os dados de diferentes
tabelas em um único conjunto de resultados.
Agregação de dados: é possível realizar operações de agregação, como soma, média, contagem, entre
outras, em conjuntos de dados.
Essas são apenas algumas das principais funcionalidades de SQL. Existem muitas outras operações
que podem ser realizadas com a linguagem, o que a torna uma ferramenta poderosa e versátil para gerencia-
mento de banco de dados.
Este material é um resumo do estudo da linguagem de programação SQL. Ele aborda os principais
conceitos e funcionalidades da linguagem, incluindo a criação e modificação de estruturas de banco de da-
dos, a inserção, atualização e exclusão de dados, as consultas a dados, as junções e a agregação de dados.
O objetivo deste material é fornecer uma visão geral da linguagem SQL e de suas principais
aplicações, de modo a preparar o leitor para profundizar seus estudos e começar a utilizar a linguagem em
projetos reais.
Espera-se que, ao final deste material, o leitor tenha uma compreensão básica da linguagem SQL e
esteja pronto para começar a utilizá-la em seus projetos de gerenciamento de banco de dados.
Executar o SQL.
Digite no terminal ☞ sudo mysql -u root -p ou sudo mysql -u root -p"senha" (sem espaços após o
"p").

Criação do banco de dados.

1. Importar bancos de dados já existentes.


Dentro do SQL server, crie um banco de dados com create database "nome";
feche o SQL server e digite mysql -u root -p"senha" nome_do_banco < tabela.sql

Observação: No MariaDB pode dar problemas ao importar do SQL. Para resolver faça isso:
sed -i ’s/utf8mb4_0900_ai_ci/utf8_general_ci/g’ *.sql
sed -i ’s/CHARSET=utf8mb4/CHARSET=utf8/g’ *.sql

1.1. Verificar dados importados pela linha de comando


Exemplo: mysql -u root -p"senha" -e ’use jesse; show tables;’

2. Exportar banco de dados.


mysqldump -u root -p"senha" nome_do_banco_de_dados_existente > nome_exportado.sql. Exemplo:
mysqldump -u root -p jesse > jesse.sql (isso salvará o banco no diretório atual - onde foi executado o co-
mando).

3. Criar um banco de dados.


create database "Nome"; Exemplo: create database Livro;

4. Selecionar um banco de dados da base de dados.


Para selecionar um banco de dados específico ☞ use "Nome do banco";

5. Mostrar os bancos e as tabelas.


Para verificar quais são os bancos existente ☞ show databases;

Operações com tabelas.

Criar tabelas com auto-incremento


create table "Nome da tabela" ("Nome do ID" int primary key auto_increment, "Nome da coluna"
varchar(valor) not null, "Nome da coluna 2" varchar(valor) not null, "Nome da coluna 3" int not null); Ex-
emplo: create table Oi (ID int primary key auto_increment,Curso varchar(100) not null, Valor int not null);

Inserir uma coluna na tabela já criada


alter table "nome da da tabela" add "nome da coluna" tipo de variável. Exemplo: alter table cliente
add i_idade_cliente int;

Alterar uma coluna já existente


Exemplo: alter table cliente modify column i_idade_cliente Tinyint;

Deletar tabelas e banco de dados


Deletar tabelas ☞ drop table "Nome da tabela"
Deletar o banco ☞ drop database "Nome do banco";

Deletar um valor da tabela


delete from "Nome da tabela" where "Nome da coluna=Nome da linha a ser deletada". Exemplo:
delete from Vendas where Curso="LibreOffice";
Limpar uma tabela ☞ truncate table "Nome da tabela";

Fazer consultas na tabela


Para selecionar colunas específicas de uma tabela select coluna1,coluna2,... from "nome da tabela";
Para somar os dados de uma coluna da tabela select sum(coluna_x) from "nome da tabela". Idem para
avg, count() e count(*). Esse último conta todas as linhas, incluindo as linhas com valores nulos.

6. soma com DISTINCT


Somar os valores de pessoas que estão em um grupo. Exemplo: somar quantas pessoas vão a
academia.
select count(distinct "nome") from "tabela";.

Ordenar dados
Para ordenar os dados, escrevemos select * from "noma da tabela" order by ASC/DESC "nome da
coluna";
Para limitar um número de linhas (tipo fazer top 10 de alguma coisa), podemos usar select *from
"nome da tabela" limit "N de linhas";

Mostrar dados de forma aleatória


Podemos exibir os dados em "N" linhas aleatórias usando o comando:
select * from leitura.a2023 order by rand() limit 5;
Observação: No exemplo acima, usamos "N=5" para gerar 5 linhas aleatórias.

Atualizar valores na tabela


Comando ☞ update "Nome da tabela" set "valor" where "nome da coluna"; Exemplo: update Ven-
das set Valor = 50 where Curso = "Linux";

Inserir dados em uma tabela


Use insert into "Nome da tabela" (nome da coluna 1, nome da coluna 2, ...) values ("valor da coluna
1", "valor da coluna 2",...numero (não precisa de aspas),...);

6.1. Informações sobre uma tabela. Para ver informações de uma tabela, use describe "Nome da
tabela";

Selecionar uma tabela


Use select * from "nome da tabela"; (não esquecer do ponto e vírgula).

Filtros em tabelas

7. Sem regex
Use select * from "Nome da tabela" where "Nome da coluna" = Condição;
8. Com regex
Use select * from "Nome da tabela" where "Nome da coluna" regexp "expressão regular";. Exemplo:
select * from livro where Livro regexp "ˆA.*s$"

9. Where com várias condições


Exemplo: select Nome, Sobrenome , Sexo , Estado_Civil , Telefone from clientes where Nome reg-
exp "ˆA" and Sexo = "F" and Estado_Civil = "S";

Group by
Use select * from "Nome da tabela" group by "Nome da coluna";.

Concatenar textos - CONCAT()


Exemplo: select Nome, Sobrenome , concat(Nome, ’ ’, Sobrenome) Nome_Completo from
clientes where nome regexp "ˆA" and Sexo = "F" and Estado_Civil = "S" and Renda_Anual > 80000;
Join com duas tabelas
Para fazer "join" select TabelaA.coluna1,TabelaA.coluna2,...TabelaB.coluna1, Tabela B.coluna2...
from Tabela A inner join Tabela B on TabelaA.id_chave_estrangeira=TabelaB.id_chave_primaria.
Exemplo: select pedidos.ID_Loja , pedidos.Data_Venda , pedidos.Receita_Venda , lojas.Loja , lo-
jas.Gerente , lojas.Telefone from pedidos inner join lojas on pedidos.ID_Loja = lojas.ID_Loja;

Join com mais de duas tabelas


Exemplo: select pedidos.ID_Loja , pedidos.Qtd_Vendida , pedidos.Receita_Venda , (pedidos.Re-
ceita_Venda * pedidos.Qtd_Vendida ) total, lojas.Loja , locais.Estado , lojas.Gerente from pedidos inner
join lojas on pedidos.ID_Loja = lojas.ID_Loja inner join locais on lojas.Loja = locais.Cidade where pedi-
dos.Qtd_Vendida;

10. Join com tabelas de bancos diferentes


select * from leitura.a2022 join Biblia.livro on leitura.a2022.Nome=Biblia.livro.Livro where Local-
ização regexp "NT";

Substituir valores em uma tabela


Exemplo: substituir na coluna "Data", da tabela "a2022", o ano de 2022 para 2023.
update a2022 set Data = replace(Data,"2022","2023")

Criar um tabela nova a partir de uma join


create view as "nome para ser salvo" TabelaA.coluna1,TabelaA.coluna2,...TabelaB.coluna1, Tabela
B.coluna2... from Tabela A inner join Tabela B on TabelaA.id_chave_estrangeira=TabelaB.id_chave_pri-
maria.

Exportar/importar dados para csv


Só podemos importar/exportar arquivos para uma pasta específica. Para localizar essa pasta digite no
SQL server ☞ show variables like "secure_file_priv". No meu caso a saída foi: local = "var/lib/mysql-
files/" para o Mariadb foi local ="/var/lib/mysql/arquivo.csv".

11. Exportar para csv.


Faça a consulta e no final do comando digite ☞ into outfile "local" fields terminated by "," lines ter-
minated by "\n";. Exemplo: select * from livros into outfile "local" fields terminated by "," lines terminated
by "\n";
Exemplo: select * from clientes limit 5 into outfile "/var/lib/mysql-files/sql.csv" fields terminated by ","
lines terminated by "\n";
Após isso, copie o arquivo da pasta "local" para uma pasta do sistema como, por exemplo, a pasta
Download. Observação: o arquivo estará protegido. Dessa forma é necessário alterar as permissões uti-
lizando, por exemplo, o chmod +777.
Observação: Para exportar o aquivo.csv com o nome das colunas use:
select ("ID","Data","Massa") union select * from massa into outfile "/var/lib/mysql/pesos.csv" fields
terminated by "," line s terminated by "\n";

12. Importar de um csv


Salvar o csv na pasta "local" e digitar:

load data infile "local" into table "nome da tabela de um banco já selecionado" fields terminated by "," en-
closed by ’"’ lines terminated by "0 ignore 1 rows (isso para ignorar, caso tenha, o cabeçalho) (Nome da
coluna 1, Nome da coluna 2, etc);

Exemplo: load data infile "/var/lib/mysql-files/biblia.csv" into table livros fields terminated by "," enclosed
by ’"’ lines terminated by "\n" ignore 1 rows (Ordem,Nome,Abreviação,Capítulos,Versículos,Local);

13. Selecionar as 5 últimas linhas de uma tabela


select * from datas order by ID desc limit 5;

14. Alterar os nomes de uma coluna


alter table livro change Número_de_Versículos Versículos int(11);
Neste exemplo, trocamos o nomde de uma coluna "Número_de_Versículos" para "Versículos".

15. Alterar o nome e uma tabela já criada


Basta executar o comando. rename table antigo_nome to novo_nome. Exemplo: Renomear a tabela
de nome a2022 para a2023 ☞ rename table a2022 to a2023;

16. Group by só com o ano de uma data


select avg(Massa) from massa group by year(Data);

Você também pode gostar