Você está na página 1de 11

Caderno linguagem Mysql

Comando para criar o banco de dados. 3


comando para selecionar o banco de dados o qual será trabalhado. 3
Tipos de dados. 3
Tamanho dos dados 4
comando para criar uma tabela. 5
comando para inserir dados em uma tabela. 5
comando para apagar um bando de dados ou apagar uma tabela. 7
comandos para alterar uma tabela sem excluir. 7
comando para criar um usuário no banco. 8
comando para visualizar todos usuários do sistema. 8
comando para visualizar uma tabela do sistema. 8
comando para dar ao usuário todas as permissões no sistema. 9
Tipos de permissão 10
Permite consultar (SELECT) qualquer coluna da tabela, visão ou sequência
especificada. 10
Permite inserir (INSERT) novas linhas na tabela especificada. 10
Permite modificar (UPDATE) os dados de qualquer coluna da tabela especificada. 10
Permite excluir (DELETE) linhas(dados) da tabela especificada. 10
Permite criar gatilhos (REFERENCES) na tabela especificada. 10
Habilitar operações (TRIGGER). 10
Para criar (CREATE). 10
permite utilizar a função especificada (EXECUTE). 10
permite acessar os objetos (USAGE). 11
Para retirar todos os privilégios de um usuário. 11
para retirar apenas alguns privilégios. 11
Para visualizar todas as permissões de um usuário. 11
Comando para criar o banco de dados.

importante: sempre use o ponto e vírgula ao final de cada comando.


● create database nome_do_banco;

comando para selecionar o banco de dados o qual será


trabalhado.
● use nome_do_banco;

Desabilitar modo de segurança


● set sql_safe_updates = 0;

Tipos de dados.

● DECIMAL(X,Y) – Ponto decimal com X dígitos e Y casas decimais.


exemplo: decimal(5,2), possível valor 132,25.

● CHAR(M) – Tipo literal que ocupa tamanho fixo entre 0 e 255 caracteres.
exemplos: char(5), char(M).

● BOOL / BOOLEAN
Valores binários 0 / 1.

● VARCHAR(X) – Tipo literal de tamanho variável, até 65535 caracteres.


exemplo, varchar(40), o número 40 é um limitador, mas não uma exigência, logo
é possível usar qualquer quantidade de caracteres que não passe o valor desejado,
no caso 40. exemplo (Dênis Anderson)

● BLOB / MEDIUMBLOB/ TINYBLOB – Campo com tamanho máximo de


65535 caracteres binários, são usados para armazenar grandes quantidades de
dados, como imagens.
● MEDIUMTEXT – Permite armazenar até 16.777.215 caracteres.
● LONGTEXT – Permite armazenar até 4.294.967.295 caracteres.

● DATE – Uma data de 01/01/1000 a 31/12/9999, no formato YYYY-MM-DD

● DATETIME – Uma combinação de data e hora de 01/01/1000 00:00:00 a


31/12/9999 23:59:59, no formato YYYY-MM-DD HH:MM:SS

● TIME – Hora apenas, no formato HH:MM:SS

● YEAR(X) – Ano nos formatos de 2 ou 4 dígitos; Se forem 2 (YEAR(2)), ano vai


de 1970 a 2069; para 4 (YEAR(4)), vai de 1901 a 2155. O padrão é 4.

Tamanho dos dados

Tipo Tamanho valor min valor min Valor Max Valor max
byte Signed Unsigned signed signed

TINYINT 1 -128 0 127 255

SMALLINT 2 -32768 0 32767 65535

MEDIUMINT 3 -8388608 0 8388607 16777215

INT 4 -2147483648 0 2147483647 4294967295

BIGINT 8 -2^63 0 2^63 -1 2^64 -1


comando para criar uma tabela.

● create table nome_da_tabela(


coluna_1 tipo,
coluna_2 tipo,
coluna_da_chave_primaria tipo,
coluna_da_chave_estrangeira tipo,
coluna_n tipo,

primary key (coluna_da_chave_primaria),


foreign key (coluna_da_chave_estrangeira) references
nome_da_tabela(coluna_escolhida)
);

comando para inserir dados em uma tabela.


● insert into nome_da_tabela(
coluna_1,
coluna_2,
coluna_da_chave_primaria,
coluna_da_chave_estrangeira, coluna_n)
values
('campo1','campo2','campo3','campo4','campo5');

Para inserir dados de vários usuários de forma simultânea basta usar uma vírgula após o
parênteses e colocar os dados do novo usuário, e assim até que todos os dados sejam
descritos.
exemplo, criando uma tabela de clientes, sendo a coluna histórico como chave
estrangeira de outra coluna que guarda o histórico de compra desse cliente e o id_cliente
a chave primária:

● create table clientes(


nome varchar(40),
cpf bigint(11),
id_cliente int(6) auto_increment,
historico int(6),

primary key (id_cliente),


foreign key (historico) references vendas(id_venda)
);

Inserindo dados nessa tabela:


● insert into clientes(nome, cpf, id_cliente)
values
('Elaine Silva','12345678910'),
('Pedro Santos','32145698701');

Obs. O último campo(historico), sendo uma chave estrangeira, será preenchido


automaticamente pelos dados da outra tabela de referência e o campo id_cliente possui a
string auto_increment, logo seus valores serão preenchidos automaticamente pelo
sistema de forma numérica crescente.

Graficamente essa tabela ficaria da seguinte forma:


Clientes

nome cpf id_cliente historico


Elaine Silva 12345678910 123456 000001

Pedro Santos 32145698701 123654 000002


comando para apagar um bando de dados ou apagar uma tabela.

para bancos de dados:


● drop database nome_do_banco;
para tabelas:
● drop table nome_da_tabela;

comandos para alterar uma tabela sem excluir.

Como não foi escolhida a posição, a nova coluna ficará em último na tabela.
● alter table nome_da_tabela add column nome_da_coluna
tipo;

com o uso do "first" a nova coluna ficará no lugar da primeira coluna da tabela,
exemplo:
● alter table nome_da_tabela add column nome_da_coluna
tipo first;

Mudar o tipo de dado em uma coluna:


● alter table nome_da_tabela modify column
nome_da_coluna novo_tipo;

com o uso do "after" você pode escolher depois de qual coluna da tabela sua nova
coluna deverá ficar.
● alter table nome_da_tabela add column nome_da_coluna
tipo after coluna_escolhida;

para alterar o nome da tabela


● rename table nome_da_tabela to novo_nome_da_tabela;

para apagar uma coluna da tabela.


● alter table nome_da_tabela drop column nome_da_coluna;
comando para criar um usuário no banco.

● create user 'nome_do_usuario'@'%' identified by


'senha_escolhida';
o campo ‘localhost’ faz com que seu usuário seja acessado somente no seu diretório
local, para que o usuário possa ser acessado de qualquer local deve ser usar o símbolo %
no lugar do localhost, exemplo:
● create user 'nome_do_usuario'@'%' identified by
'senha_escolhida';

comando para apagar um usuário.


drop user 'nome_do_usuario'@'%';

comando para visualizar todos usuários do sistema.


● select*from mysql.user;

comando para visualizar uma tabela do sistema.


● select*from nome_da_tabela;

Quando o usuário é criado, este não tem nenhum tipo de permissão no sistema, portanto
é preciso dar permissões condizentes com a função de cada usuário.
comando para dar ao usuário todas as permissões no sistema.
exceto a permissão conceder privilégios, essa só pertence ao usuário /root.
● grant all privileges on * . * to
'nome_do_usuario'@'%';

para selecionar melhor a qual banco de dados e a qual tabela você está dando permissão
ao usuário, é possível especificar nos campos
* . *, sendo o primeiro asterisco referente ao banco de dados e o segundo a tabela,
exemplo:

● grant all privileges on nome_do_banco . nome_da_tabela


to 'nome_do_usuario'@'%';
nesse caso a permissão está sendo concedida somente na tabela específica no banco de
dados específico, mas também poderia ser dada a permissão a todas tabelas de um
banco de dados, exemplo:
● grant all privileges on nome_do_banco . * to
'nome_do_usuario'@'%';
Nesse caso só foi especificado o nome do banco, logo as permissões foram concedidas a
todas tabelas daquele banco.

o comando anterior dava ao usuário todos os privilégios dentro do sistema, mas é


possível dar acesso somente a algumas permissões específicas. Lembrando que no lugar
de * . * Você pode escolher o banco de dados e a tabela, se não escolher estará dando
permissão em todo o sistema para o usuário.
● grant select on * . * to 'nome_do_usuario'@'%';
Tipos de permissão
Permite consultar (SELECT) qualquer coluna da tabela, visão ou sequência
especificada.
● grant select on * . * to 'nome_do_usuario'@'%';

Permite inserir (INSERT) novas linhas na tabela especificada.


● grant insert on * . * to 'nome_do_usuario'@'%';

Permite modificar (UPDATE) os dados de qualquer coluna da tabela especificada.


● grant updateon * . * to 'nome_do_usuario'@'%';

Permite excluir (DELETE) linhas(dados) da tabela especificada.


● grant delete on * . * to 'nome_do_usuario'@'%';

Permite criar gatilhos (REFERENCES) na tabela especificada.


● grant references on * . * to 'nome_do_usuario'@'%';

Habilitar operações (TRIGGER).


● grant trigger on * . * to 'nome_do_usuario'@'%';

Para criar (CREATE).


para bancos de dados, permite a criação de novos esquemas no banco de dados. Para
esquemas, permite a criação de novos objetos no esquema. Para mudar o nome de um
objeto existente é necessário ser o dono do objeto e possuir este privilégio no esquema
que o contém.Para espaços de tabelas, permite a criação de tabelas e índices no espaço
de tabelas, e permite a criação de bancos de dados possuindo este espaço de tabelas
como seu espaço de tabelas padrão (Deve ser observado que revogar este privilégio não
altera a colocação dos objetos existentes).
● grant create on * . * to 'nome_do_usuario'@'%';

permite utilizar a função especificada (EXECUTE).


E qualquer operador implementado utilizando a função
● grant execute * . * to 'nome_do_usuario'@'%';
permite acessar os objetos (USAGE).
contidos no esquema especificado. Essencialmente, concede a quem recebe o direito de
"procurar" por objetos dentro do esquema. Sem esta permissão ainda é possível ver os
nomes dos objetos, por exemplo consultando as tabelas do sistema.
● grant usage * . * to 'nome_do_usuario'@'%';

para tornar o trabalho mais rápido é possível usar o comando para dar várias permissões
para vários usuários de uma única vez, exemplo:
● grant select, insert, update on *.* to
'nome_do_usuario'@'%';
podendo adicionar quantos usuários forem necessários, desde que separados por vírgula,
assim como os privilégios.

Para retirar todos os privilégios de um usuário.


● revoke all privileges, grant option from
‘nome_do_usuario'@'%';

para retirar apenas alguns privilégios.

● revoke nome_do_privilegio on *.* from


‘nome_do_usuario'@'%';
exemplo, retirando o privilégio insert:
revoke insert on *.* from ‘nome_do_usuario'@'%';

Para visualizar todas as permissões de um usuário.


● show grants for ‘nome_do_usuario'@'%';

Você também pode gostar