# MySQL

### Em Geral

| `mysql -u root -h docker.hackthebox.eu -P 3306 -p` | faça login no banco de dados mysql |
| -------------------------------------------------- | ---------------------------------- |
| `SHOW DATABASES`                                   | Listar bancos de dados disponíveis |
| `USE users`                                        | Mudar para banco de dados          |

### Tabelas

| `CREATE TABLE logins (id INT, ...)`                               | Adicionar uma nova tabela                            |
| ----------------------------------------------------------------- | ---------------------------------------------------- |
| `SHOW TABLES`                                                     | Listar tabelas disponíveis no banco de dados atual   |
| `DESCRIBE logins`                                                 | Mostrar propriedades e colunas da tabela             |
| `INSERT INTO table_name VALUES (value_1,..)`                      | Adicionar valores à tabela                           |
| `INSERT INTO table_name(column2, ...) VALUES (column2_value, ..)` | Adicione valores a colunas específicas em uma tabela |
| `UPDATE table_name SET column1=newvalue1, ... WHERE <condition>`  | Atualizar valores da tabela                          |

### Colunas

| `SELECT * FROM table_name`                                | Mostrar todas as colunas de uma tabela    |
| --------------------------------------------------------- | ----------------------------------------- |
| `SELECT column1, column2 FROM table_name`                 | Mostrar colunas específicas em uma tabela |
| `DROP TABLE logins`                                       | Excluir uma tabela                        |
| `ALTER TABLE logins ADD newColumn INT`                    | Adicionar nova coluna                     |
| `ALTER TABLE logins RENAME COLUMN newColumn TO oldColumn` | Renomear coluna                           |
| `ALTER TABLE logins MODIFY oldColumn DATE`                | Alterar tipo de dados da coluna           |
| `ALTER TABLE logins DROP oldColumn`                       | Excluir coluna                            |

### Saída

| `SELECT * FROM logins ORDER BY column_1`              | Classificar por coluna                                              |
| ----------------------------------------------------- | ------------------------------------------------------------------- |
| `SELECT * FROM logins ORDER BY column_1 DESC`         | Classificar por coluna em ordem decrescente                         |
| `SELECT * FROM logins ORDER BY column_1 DESC, id ASC` | Classificar por duas colunas                                        |
| `SELECT * FROM logins LIMIT 2`                        | Mostrar apenas os dois primeiros resultados                         |
| `SELECT * FROM logins LIMIT 1, 2`                     | Mostrar apenas os dois primeiros resultados a partir do índice 2    |
| `SELECT * FROM table_name WHERE <condition>`          | Listar resultados que atendem a uma condição                        |
| `SELECT * FROM logins WHERE username LIKE 'admin%'`   | Listar resultados onde o nome é semelhante a uma determinada string |
