# MYSQL ## Lidando com usuários ### Logar como root sudo mysql -u root ### Listar todos os usuários SELECT * FROM mysql.user; ### Deletar um usuário DELETE FROM mysql.user WHERE User = 'nome_do_usuário'; ### Criar um usuário CREATE USER 'nome_do_usuario'@'host' IDENTIFIED BY 'senha'; ### Conceder permissões a um usuário GRANT tipo_da_permissão ON nome_da_database.nome_tabela TO 'nome_do_usuario'@'host'; ### Caso queira dar todas as permissões a um usuário, em todas as tabelas GRANT ALL PRIVILEGES ON *.* TO 'nome_do_usuario'@'host'; ## Recarregar as permissões FLUSH PRIVILEGES; --- ## Lidando com as databases ### Criar database CREATE DATABASE nome_da_database; ### Mostrar todas as databases SHOW databases; ### Usar database USE nome_da_database; ### Deletar uma database DROP DATABASE nome_da_database; --- ## Lidando com as tabelas ### Criar tabela Para criar uma tabela, é necessário informar pelo menos uma coluna CREATE TABLE nome_tabela (primeira_coluna tipo caracteristicas_opcionais, segunda_coluna tipo caracteristicas_opcionais, etc...); >Neste link é possível pegar todos os tipos de colunas do mySQL >https://dev.mysql.com/doc/refman/8.0/en/data-types.html Exemplo: ```sql=0 create table tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( tutorial_id ) ); ``` Exemplo 2: ```sql=0 create table users( id integer auto_increment not null, name varchar(100) not null, email varchar(100) not null unique, primary key(id) ); ``` Note que toda tabela precisa ter uma coluna que sirva de chave primária. Geralmente essa é a primeira coluna a ser criada, e tem o nome de ID. Para colocar uma coluna como chave primária, use: CREATE TABLE nome_tabela (nome_da_primeira_coluna tipo_de_dado primary key outras_caracteristicas_opcionais); Caso o dado em questão possa ser incrementado automaticamente, como um INTEGER, use: CREATE TABLE nome_tabela (nome_da_primeira_coluna tipo_de_dado auto_increment);` Caso o dado em questão seja um vetor de itens, deverá ser especificado seu tamanho: CREATE TABLE nome_tabela (nome_da_primeira_coluna tipo_de_dado(numero_de_posições)) ### Mostrar as colunas de uma tabela SHOW COLUMNS FROM nome_tabela; ### Insere coluna ALTER TABLE nome_tabela ADD nome_coluna descrição_coluna > A descrição pode conter apenas o tipo da coluna, como `ADD ordem int` ### Altera coluna ALTER TABLE nome_tabela CHANGE nome_atual nome_novo tipo especificacoes_opcionais; ### Deleta coluna ALTER TABLE nome_tabela ### Todas as tabelas SHOW TABLES; ### Renomear tabelas RENAME TABLE nome_atual TO nome_novo; ### Deletar tabelas DROP TABLE nome_tabela; --- ## Lidando com dados Estando dentro de uma database, com pelo menos uma tabela criada, podemos então começar a armazenar dados Vamos considerar a seguinte tabela para os exemplos: Tabela **clientes** | ID | NOME | RG | | --- | ---- | --- | ### Inserindo uma linha de informações INSERT INTO clientes(id, nome, rg) VALUES ('1','Fulano de Tal','123456789'); ### Pegando informações SELECT nome_do_campo FROM clientes WHERE campo = 'característica_desejada;' Se desejarmos ver toda a tabela, depois do `select` usamos * Se desejarmos escolher os campos cuja informação obedece à uma expressão regular, usamos `like` ao invés de `=` ### Alterando um campo específico UPDATE clientes SET nome='Fulano' WHERE nome='Barroso'; ### Deletando uma linha específica DELETE FROM cliente WHERE campo='valor';