quinta-feira, 25 de maio de 2023

Structure Query Language - SQL


SQL  Linguagem de Consulta Estruturada, é uma linguagem de pesquisa declarativa padrão para bancos de dados relacionais.


Dentro do SQL temos 2 tipos o DDL e o DML


DDL (linguagem de definição de dados): Define as tabelas onde os dados serão armazenados.

- Comandos: Create, Drop e Alter.


DML (linguagem de manipulação de dados): Permite a inclusão, remoção, atualização e seleção dos dados.

- Comandos: Select, Insert, Delete, Update.


Vamos criar um banco de dados, topa?


Usaremos um sistema gerenciador de banco de dados bem ligero: SQLiteStudio


E duas tabelas, 1 tabela base chamada User, que nutre a tabela principal Posts, diagrama foi feito em dbdiagram.io


Disponível em https://dbdiagram.io/d/645a6a8bdca9fb07c4c7207e


Passo 1: Abrir SQLiteStudio









Passo 2:Clicar no menú DataBase.










Passo 3: Clicar em Add a dataBase










Passo 4: Para procurar o local, clicar na icono da pastinha



Passo 5: Seleccionar a pasta BasedeDados (previamente criada) e clicar em Select 



Passo 6: Clicar em Select




Passo 7: Colocamos o nome DBUsers











Passo 8: Clicar em Test connection, para verificar a conexão





Passo 7: Clicar em OK 



Pronto nosso banco de dados já está criado.


Podemos criar as tabelas de forma visual o com scripts sql


Vamos a criar com script sql, para  aprender o linguagem 😊


_______________________________________________________________________________

DDL (linguagem de definição de dados): Define as tabelas onde os dados serão armazenados.

Create, Drop e Alter.


Passo 1: Clicar em editor SQL, no ícone do lápis com a folha em branco




Passo 2: Clica no espaço em branco


Passo 3: Escreva o comado:

DROP TABLE IF EXISTS Users;

O comando Drop, é usado para r)emover a definição dos dados da tabela, se ela existir. Você precisa ter cuidado ao usar este comando, pois ele pode apagar permanentemente seus dados.

DROP TABLE IF EXISTS Users;

CREATE TABLE Users (

id_users INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,

username VARCHAR (200) NOT NULL,

role VARCHAR (100)

);




Passo 4: Clicar em Execute query (F9), no ícone play






Agora criamos a tabela dos Posts

Partindo do codigo criando anteriormente

Passo 5: Mudamos o nome da tabela e agregando os novos campos, assim

DROP TABLE IF EXISTS Posts;

CREATE TABLE Posts (

id_post INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,

title VARCHAR (200) NOT NULL,

body VARCHAR (100),

id_users INTEGER CONSTRAINT FK_Posts_Users REFERENCES Users (id_users) NOT NULL

);











REFERENCES faz referência para usar os dados da tabela Users, chave secundária aqui em Post referenciado a chave primária de Users.



Passo 6: Clicar em Execute query (F9), no ícone play 





Agora temos 2 tabelas.


Vamos a preencher dados nestas tabelas.


Bora lá 👊


_______________________________________________________________________________

DML (linguagem de manipulação de dados): Permite a inclusão, remoção, atualização e seleção dos dados.

Select, Insert, Delete, Update.


INSERT INTO Users (id_users, username, role) VALUES (1, 'nadiduno', 'DevRel');


Escrevemos otros registros, e anexando à primeira linha


INSERT INTO Users (id_users, username, role) VALUES (1, 'nadiduno', 'DevRel');

INSERT INTO Users (id_users, username, role) VALUES (2, 'maolylara', 'FullStack');

INSERT INTO Users (id_users, username, role) VALUES (3, 'barbaranery', 'Líder Tech');

INSERT INTO Users (id_users, username, role) VALUES (4, 'magnosantos', 'Adm de BD');


Selecionamos tudo 


E pressionamos F9 play


Vamos preencher a tabela de Posts, já tendo Usuarios registrado, podemos decir que um de essos usuários realizou um post


Abrimos post, columnas, para poder visualizar os nomes dos campos e não ter erro de transcrição


INSERT INTO Nome_Table (campo1,campo2,campo3...campoN) VALUES (valor1, valor2,valor3....valorN);

Em caso do valor ser cadeia de caracteres coloca aspas simples no início e fim do texto.


Exemplo para esta BD


INSERT INTO Posts (id_post,title,body,id_users) VALUES (1, 'Amante da TI', 'Gosto de respirar tecnologia na minha utopia ',1);


INSERT INTO Post (id_post,title,body,id_users) VALUES (2, 'LinkdIn', 'Como usar o linkedIn para ser vista',3);






SELECT - Seleccionar desde uma tabela e apresentar

é dizer fazer consultas para gerar repórteres

SELECT *

FROM Users;

Também podemos ordenar esta consulta por ordem ascendente os username


SELECT *

FROM Users AS u

ORDER BY u.username ASC;


Podemos eliminar da consulta a columna id_users e só deixar o username e role

modificando o * por os campos que desejo visualizar

usando como o nome ou alias da tabela


exemplo 

u.username,u.role


ficando assim

SELECT u.username,u.role

FROM Users AS u

ORDER BY u.username ASC;



Melhor né


Vamos com a seguinte tabela Posts

SELECT *

FROM Posts AS p;


Legal, agora vamos a saber os username de que realizou  os posts, em lugar de ver só 1 e 3


Usaremos um novo comando o INNER JOIN


SELECT *

FROM Posts AS p

INNER JOIN Users AS u

ON p.id_users=u.id_users;



Podemos mostrar os campos necessários em lugar de todos

SELECT p.title,p.body,u.username

FROM Posts AS p

INNER JOIN Users AS u

ON p.id_users=u.id_users;



Deixe aqui seu comentário se quer uma continuação deste post, onde podemos aprender a atualizar e eliminar estes registros...


Nenhum comentário:

Postar um comentário

Como Criar um Pull Request (PR) no GitHub

  Como Criar um Pull Request (PR) no GitHub Um Pull Request (PR) é um recurso essencial no GitHub que permite propor mudanças em um repositó...