#################################################################################################### 01. O que é um banco de dados: Nessa aula aprenderemos o que é um banco de dados e quais são as suas propriedades como: Tabela, linha, coluna, tipo de dado. Também aprenderemos o que é um banco de dados Relacional. #################################################################################################### 02. Estrutura do Banco de Dados: Nessa aula apresentaremos como será a estrutura do banco de dados do projeto que iremos desenvolver. ![estrutura-banco-de-dados](https://storage.googleapis.com/golden-wind/explorer/description-assets/nivel-08/estrutura-banco-de-dados.png) #################################################################################################### 03. Conectando com o banco de dados: Nessa aula faremos a configuração inicial para que nosso projeto consiga se comunicar com o banco de dados SQLite. [Commit: Conectando com o banco de dados](https://github.com/rocketseat-education/explorer-stage-08/tree/b2dbfe50491ab49887d29879d1665ad429856b0e) #################################################################################################### 04. SGBD: Nessa aula instalaremos a ferramenta **Beekeper Studio** para que consigamos visualizar e executar funções em nosso banco da dados. Importante: recentemente o Beekeeper Studio deixou sua versão gratuita disponível apenas no GitHub do projeto. Você pode baixar a última release para o seu sistema operacional no link abaixo de acordo com seu sistema operacional: [Beekeeper Studio - Windows](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-Setup-3.6.2.exe) [Beekeeper Studio - macOS (Intel)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-3.6.2.dmg) [Beekeeper Studio - macOS (Apple Silicon)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-3.6.2-arm64.dmg) [Beekeeper Studio - Linux (Ubuntu/PopOS)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/beekeeper-studio_3.6.2_amd64.deb) #################################################################################################### 05. Criando tabela de usuário: Nessa aula com a utilização do Beekeper Studio, criaremos a nossa primeira tabela no banco de dados. Comando para criar a tabela **`users` :** ```sql CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, email VARCHAR, password VARCHAR, avatar VARCHAR NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ``` [Commit: Criando tabela de usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/a6b40b0bde3c517e62e3bb9c1c78894093a68a5c) #################################################################################################### 06. SQL: Nessa aula aprenderemos os conceitos dos comandos **DDL** *(Data Definition Language) -* INSERT, SELECT, UPDATE E DELETE. #################################################################################################### 07. Alter: Nessa aula aprenderemos a alterar o nome das tabelas, adicionar e deletar colunas do banco de dados. Alterar nome da tabela: ```sql ALTER TABLE users RENAME TO clients ``` Adicionando coluna `status`: ```sql ALTER TABLE users ADD status VARCHAR ``` Renomeando coluna `status` : ```sql ALTER TABLE users RENAME COLUMN status to active ``` Deletando coluna `status`: ```sql ALTER TABLE users DROP COLUMN status ``` #################################################################################################### 08. Comandos DML: Nessa aula aprenderemos o significado de SQL *(Structured Query Language),* ou Linguagem de Consulta Estruturada. É a linguagem padrão para banco de dados relacionais. Também aprenderemos sobre comandos DML (Data Manipulation Language) #################################################################################################### 09. Manipulando Dados: Nessa aula aprenderemos como inserir, buscar, atualizar e deletar os registros na tabela `users` Inserindo dados na tabela `users` ```sql INSERT INTO users (name, email, password) VALUES ('birobirobiro', 'birobirobiro@email.com', '123'); ``` Buscando registros na tabela `users`: ```sql SELECT * FROM users; ``` Atualizando registros: ```sql UPDATE users SET avatar = 'birobirobiro.png' WHERE id = 1 ``` Deletando registros: ```sql DELETE FROM users WHERE id = 3 ``` [Commit: Manipulando Dados](https://github.com/rocketseat-education/explorer-stage-08/tree/8122d21f1bea0e02fa1a69df079b4b906148bc55) #################################################################################################### 10. Migrations: Nessa aula aprenderemos como automatizar a criação do banco de dados utilizando as Migrations. [Commit: Migrations](https://github.com/rocketseat-education/explorer-stage-08/tree/eadb068f98e22b574327f5915e834a9ae3e8c4a4) #################################################################################################### 11. Select: Nessa aula faremos a consulta SQL em nosso Controller para saber se um e-mail já existe no banco de dados. [Commit: Select](https://github.com/rocketseat-education/explorer-stage-08/tree/6a90c2908c4828c3cc20c6ce72e2dc4988aa8b8a) #################################################################################################### 12. Cadastrando usuário: Nessa aula aprenderemos como cadastrar usuários em nosso banco de dados através do nosso Controller. [Commit: Cadastrando usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/cf08d9338ae2f410e0cdfcbcffc6c4b4564f7c6b) #################################################################################################### 13. Criptografando senha do usuário: Nessa aula aprenderemos como criptografar as senhas do usuários utilizando a lib `bcryptjs`. [Commit: Criptografando senha do usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/8a9c5b502930f20cca1c9a18ee22d1220c958016) #################################################################################################### 14. Atualizando usuário: Nessa aula faremos a lógica em nosso back-end para que os dados dos usuários sejam atualizados. [Commit: Atualizando usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/ae565f3320cfdccce6d03f2b5cdceca3b2349a57) #################################################################################################### 15. Atualizando senha: Nessa aula aprenderemos qual estratégia utilizar para atualizar a senha do usuário. [Commit: Atualizando senha](https://github.com/rocketseat-education/explorer-stage-08/tree/fc2a9bfbde571e656605db2c40d0e925ce7b042e) #################################################################################################### 16. Datetime do Banco: Nessa aula aprenderemos como atualizar o formato da data do banco de dados utilizando a função `DATETIME('now’)` do SQL. [Commit: Datetime do Banco](https://github.com/rocketseat-education/explorer-stage-08/tree/f47f4d19078fc13fe2c3662d1fffacbeb83bdbe3) #################################################################################################### 17. Validando nome e e-mail: Nessa aula faremos a validação de nome e e-mail ao atualizar um registro no banco de dados utilizando o **Nullish coalescing operator `(??)`** [Commit: Validando nome e e-mail](https://github.com/rocketseat-education/explorer-stage-08/tree/abb6a3f1fba1f1604d26a7dee1776cdeec22a3be) #################################################################################################### 01. O que é um banco de dados: Nessa aula aprenderemos o que é um banco de dados e quais são as suas propriedades como: Tabela, linha, coluna, tipo de dado. Também aprenderemos o que é um banco de dados Relacional. #################################################################################################### 02. Estrutura do Banco de Dados: Nessa aula apresentaremos como será a estrutura do banco de dados do projeto que iremos desenvolver. ![estrutura-banco-de-dados](https://storage.googleapis.com/golden-wind/explorer/description-assets/nivel-08/estrutura-banco-de-dados.png) #################################################################################################### 03. Conectando com o banco de dados: Nessa aula faremos a configuração inicial para que nosso projeto consiga se comunicar com o banco de dados SQLite. [Commit: Conectando com o banco de dados](https://github.com/rocketseat-education/explorer-stage-08/tree/b2dbfe50491ab49887d29879d1665ad429856b0e) #################################################################################################### 04. SGBD: Nessa aula instalaremos a ferramenta **Beekeper Studio** para que consigamos visualizar e executar funções em nosso banco da dados. Importante: recentemente o Beekeeper Studio deixou sua versão gratuita disponível apenas no GitHub do projeto. Você pode baixar a última release para o seu sistema operacional no link abaixo de acordo com seu sistema operacional: [Beekeeper Studio - Windows](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-Setup-3.6.2.exe) [Beekeeper Studio - macOS (Intel)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-3.6.2.dmg) [Beekeeper Studio - macOS (Apple Silicon)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-3.6.2-arm64.dmg) [Beekeeper Studio - Linux (Ubuntu/PopOS)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/beekeeper-studio_3.6.2_amd64.deb) #################################################################################################### 05. Criando tabela de usuário: Nessa aula com a utilização do Beekeper Studio, criaremos a nossa primeira tabela no banco de dados. Comando para criar a tabela **`users` :** ```sql CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, email VARCHAR, password VARCHAR, avatar VARCHAR NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ``` [Commit: Criando tabela de usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/a6b40b0bde3c517e62e3bb9c1c78894093a68a5c) #################################################################################################### 06. SQL: Nessa aula aprenderemos os conceitos dos comandos **DDL** *(Data Definition Language) -* INSERT, SELECT, UPDATE E DELETE. #################################################################################################### 07. Alter: Nessa aula aprenderemos a alterar o nome das tabelas, adicionar e deletar colunas do banco de dados. Alterar nome da tabela: ```sql ALTER TABLE users RENAME TO clients ``` Adicionando coluna `status`: ```sql ALTER TABLE users ADD status VARCHAR ``` Renomeando coluna `status` : ```sql ALTER TABLE users RENAME COLUMN status to active ``` Deletando coluna `status`: ```sql ALTER TABLE users DROP COLUMN status ``` #################################################################################################### 08. Comandos DML: Nessa aula aprenderemos o significado de SQL *(Structured Query Language),* ou Linguagem de Consulta Estruturada. É a linguagem padrão para banco de dados relacionais. Também aprenderemos sobre comandos DML (Data Manipulation Language) #################################################################################################### 09. Manipulando Dados: Nessa aula aprenderemos como inserir, buscar, atualizar e deletar os registros na tabela `users` Inserindo dados na tabela `users` ```sql INSERT INTO users (name, email, password) VALUES ('birobirobiro', 'birobirobiro@email.com', '123'); ``` Buscando registros na tabela `users`: ```sql SELECT * FROM users; ``` Atualizando registros: ```sql UPDATE users SET avatar = 'birobirobiro.png' WHERE id = 1 ``` Deletando registros: ```sql DELETE FROM users WHERE id = 3 ``` [Commit: Manipulando Dados](https://github.com/rocketseat-education/explorer-stage-08/tree/8122d21f1bea0e02fa1a69df079b4b906148bc55) #################################################################################################### 10. Migrations: Nessa aula aprenderemos como automatizar a criação do banco de dados utilizando as Migrations. [Commit: Migrations](https://github.com/rocketseat-education/explorer-stage-08/tree/eadb068f98e22b574327f5915e834a9ae3e8c4a4) #################################################################################################### 11. Select: Nessa aula faremos a consulta SQL em nosso Controller para saber se um e-mail já existe no banco de dados. [Commit: Select](https://github.com/rocketseat-education/explorer-stage-08/tree/6a90c2908c4828c3cc20c6ce72e2dc4988aa8b8a) #################################################################################################### 12. Cadastrando usuário: Nessa aula aprenderemos como cadastrar usuários em nosso banco de dados através do nosso Controller. [Commit: Cadastrando usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/cf08d9338ae2f410e0cdfcbcffc6c4b4564f7c6b) #################################################################################################### 13. Criptografando senha do usuário: Nessa aula aprenderemos como criptografar as senhas do usuários utilizando a lib `bcryptjs`. [Commit: Criptografando senha do usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/8a9c5b502930f20cca1c9a18ee22d1220c958016) #################################################################################################### 14. Atualizando usuário: Nessa aula faremos a lógica em nosso back-end para que os dados dos usuários sejam atualizados. [Commit: Atualizando usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/ae565f3320cfdccce6d03f2b5cdceca3b2349a57) #################################################################################################### 15. Atualizando senha: Nessa aula aprenderemos qual estratégia utilizar para atualizar a senha do usuário. [Commit: Atualizando senha](https://github.com/rocketseat-education/explorer-stage-08/tree/fc2a9bfbde571e656605db2c40d0e925ce7b042e) #################################################################################################### 16. Datetime do Banco: Nessa aula aprenderemos como atualizar o formato da data do banco de dados utilizando a função `DATETIME('now’)` do SQL. [Commit: Datetime do Banco](https://github.com/rocketseat-education/explorer-stage-08/tree/f47f4d19078fc13fe2c3662d1fffacbeb83bdbe3) #################################################################################################### 17. Validando nome e e-mail: Nessa aula faremos a validação de nome e e-mail ao atualizar um registro no banco de dados utilizando o **Nullish coalescing operator `(??)`** [Commit: Validando nome e e-mail](https://github.com/rocketseat-education/explorer-stage-08/tree/abb6a3f1fba1f1604d26a7dee1776cdeec22a3be) #################################################################################################### 01. O que é um banco de dados: Nessa aula aprenderemos o que é um banco de dados e quais são as suas propriedades como: Tabela, linha, coluna, tipo de dado. Também aprenderemos o que é um banco de dados Relacional. #################################################################################################### 02. Estrutura do Banco de Dados: Nessa aula apresentaremos como será a estrutura do banco de dados do projeto que iremos desenvolver. ![estrutura-banco-de-dados](https://storage.googleapis.com/golden-wind/explorer/description-assets/nivel-08/estrutura-banco-de-dados.png) #################################################################################################### 03. Conectando com o banco de dados: Nessa aula faremos a configuração inicial para que nosso projeto consiga se comunicar com o banco de dados SQLite. [Commit: Conectando com o banco de dados](https://github.com/rocketseat-education/explorer-stage-08/tree/b2dbfe50491ab49887d29879d1665ad429856b0e) #################################################################################################### 04. SGBD: Nessa aula instalaremos a ferramenta **Beekeper Studio** para que consigamos visualizar e executar funções em nosso banco da dados. Importante: recentemente o Beekeeper Studio deixou sua versão gratuita disponível apenas no GitHub do projeto. Você pode baixar a última release para o seu sistema operacional no link abaixo de acordo com seu sistema operacional: [Beekeeper Studio - Windows](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-Setup-3.6.2.exe) [Beekeeper Studio - macOS (Intel)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-3.6.2.dmg) [Beekeeper Studio - macOS (Apple Silicon)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/Beekeeper-Studio-3.6.2-arm64.dmg) [Beekeeper Studio - Linux (Ubuntu/PopOS)](https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v3.6.2/beekeeper-studio_3.6.2_amd64.deb) #################################################################################################### 05. Criando tabela de usuário: Nessa aula com a utilização do Beekeper Studio, criaremos a nossa primeira tabela no banco de dados. Comando para criar a tabela **`users` :** ```sql CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, email VARCHAR, password VARCHAR, avatar VARCHAR NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ``` [Commit: Criando tabela de usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/a6b40b0bde3c517e62e3bb9c1c78894093a68a5c) #################################################################################################### 06. SQL: Nessa aula aprenderemos os conceitos dos comandos **DDL** *(Data Definition Language) -* INSERT, SELECT, UPDATE E DELETE. #################################################################################################### 07. Alter: Nessa aula aprenderemos a alterar o nome das tabelas, adicionar e deletar colunas do banco de dados. Alterar nome da tabela: ```sql ALTER TABLE users RENAME TO clients ``` Adicionando coluna `status`: ```sql ALTER TABLE users ADD status VARCHAR ``` Renomeando coluna `status` : ```sql ALTER TABLE users RENAME COLUMN status to active ``` Deletando coluna `status`: ```sql ALTER TABLE users DROP COLUMN status ``` #################################################################################################### 08. Comandos DML: Nessa aula aprenderemos o significado de SQL *(Structured Query Language),* ou Linguagem de Consulta Estruturada. É a linguagem padrão para banco de dados relacionais. Também aprenderemos sobre comandos DML (Data Manipulation Language) #################################################################################################### 09. Manipulando Dados: Nessa aula aprenderemos como inserir, buscar, atualizar e deletar os registros na tabela `users` Inserindo dados na tabela `users` ```sql INSERT INTO users (name, email, password) VALUES ('birobirobiro', 'birobirobiro@email.com', '123'); ``` Buscando registros na tabela `users`: ```sql SELECT * FROM users; ``` Atualizando registros: ```sql UPDATE users SET avatar = 'birobirobiro.png' WHERE id = 1 ``` Deletando registros: ```sql DELETE FROM users WHERE id = 3 ``` [Commit: Manipulando Dados](https://github.com/rocketseat-education/explorer-stage-08/tree/8122d21f1bea0e02fa1a69df079b4b906148bc55) #################################################################################################### 10. Migrations: Nessa aula aprenderemos como automatizar a criação do banco de dados utilizando as Migrations. [Commit: Migrations](https://github.com/rocketseat-education/explorer-stage-08/tree/eadb068f98e22b574327f5915e834a9ae3e8c4a4) #################################################################################################### 11. Select: Nessa aula faremos a consulta SQL em nosso Controller para saber se um e-mail já existe no banco de dados. [Commit: Select](https://github.com/rocketseat-education/explorer-stage-08/tree/6a90c2908c4828c3cc20c6ce72e2dc4988aa8b8a) #################################################################################################### 12. Cadastrando usuário: Nessa aula aprenderemos como cadastrar usuários em nosso banco de dados através do nosso Controller. [Commit: Cadastrando usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/cf08d9338ae2f410e0cdfcbcffc6c4b4564f7c6b) #################################################################################################### 13. Criptografando senha do usuário: Nessa aula aprenderemos como criptografar as senhas do usuários utilizando a lib `bcryptjs`. [Commit: Criptografando senha do usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/8a9c5b502930f20cca1c9a18ee22d1220c958016) #################################################################################################### 14. Atualizando usuário: Nessa aula faremos a lógica em nosso back-end para que os dados dos usuários sejam atualizados. [Commit: Atualizando usuário](https://github.com/rocketseat-education/explorer-stage-08/tree/ae565f3320cfdccce6d03f2b5cdceca3b2349a57) #################################################################################################### 15. Atualizando senha: Nessa aula aprenderemos qual estratégia utilizar para atualizar a senha do usuário. [Commit: Atualizando senha](https://github.com/rocketseat-education/explorer-stage-08/tree/fc2a9bfbde571e656605db2c40d0e925ce7b042e) #################################################################################################### 16. Datetime do Banco: Nessa aula aprenderemos como atualizar o formato da data do banco de dados utilizando a função `DATETIME('now’)` do SQL. [Commit: Datetime do Banco](https://github.com/rocketseat-education/explorer-stage-08/tree/f47f4d19078fc13fe2c3662d1fffacbeb83bdbe3) #################################################################################################### 17. Validando nome e e-mail: Nessa aula faremos a validação de nome e e-mail ao atualizar um registro no banco de dados utilizando o **Nullish coalescing operator `(??)`** [Commit: Validando nome e e-mail](https://github.com/rocketseat-education/explorer-stage-08/tree/abb6a3f1fba1f1604d26a7dee1776cdeec22a3be)