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 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)
);

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