Escolar Documentos
Profissional Documentos
Cultura Documentos
Durante a instalao aceite a licena, selecione o tipo de instalao (developer default), Cheque os
requerimentos exigidos, confirme a porta 3306, informa a senha de root e se necessrio crie outro usurio e
conclua a instalao. Cheque se o caminho do mysql est na varivel de ambiente PATH.
TESTE A INSTALAO
Abrir a janela de servios e procurar o servio MYSQL57. Para iniciar ou parar o servio, execute o DOS como
administrador e digite: net start MYSQL57 e net stop MYSQL57.
Fonte:
https://dev.mysql.com/doc/refman/5.7/en/mysql-installer.html
https://dev.mysql.com/doc/refman/5.7/en/mysql-installer-workflow.html
2. COMANDOS BSICOS:
Fonte: https://dev.mysql.com/doc/refman/5.7/en/tutorial.html
https://elias.praciano.com/2013/02/mysql-comandos-basicos/
Funo Comando
Iniciar servio Mysql net start MYSQL57
Parar servio Mysql net stop MYSQL57
Conectar ao mysql mysql -h nome-do-servidor -u nome-do-usuario
Criar um banco CREATE DATABASE nome-do-banco;
Criar um usurio CREATE USER 'jef'@'localhost' IDENTIFIED BY 'passwd';
Use aspas mesmo que a senha seja numrica.
Definir privilgios GRANT ALL ON *.* TO 'jef'@'localhost';
GRANT SELECT, INSERT ON mydb.* TO 'user'@'host';
Alterar sua senha SET PASSWORD = 'new_passord';
Alterar senha de outrm SET PASSWORD FOR 'jef'@'localhost' =
PASSWORD('mypass');
atualiza tabela de users FLUSH PRIVILEGES;
Selecione o banco USE nome-do-banco
Criar uma tabela CREATE TABLE nome-da-tabela(params);
Ver bancos existentes SHOW DATABASES;
Ver tabelas existentes SHOW TABLES;
Ver descrio da tabela DESCRIBE nome-da-tabela;
Limpar tabela TRUNCATE TABLE nome-da-tabela;
Remover tabela DROP TABLE nome-da-tabela;
Remover banco DROP DATABASE nome-do-banco;
MyISAM padro at a verso 5.5, estende os recursos do antigo ISAM. otimizado para compresso,
plenamente apropriado a ambientes com intensa leitura de dados e pouca escrita ou com nenhuma escrita. Sua
principal deficincia no ter suporte a transaes e chaves estrangeiras.
InnoDB mecanismo padro do MySQL oferece suporte a chaves estrangeiras, (ACID) transaes, transaes
distribudas SQL e XA , ndices FULLTEXT, operaes espaciais, colunas virtuais. Apresenta tima performance.
MERGE possibilita agrupar logicamente uma srie de tabelas MyISAM idnticas e referenci-las como um
objeto. Sendo isso bom bancos de dados com grandes volumes de dados.
MEMORY (HEAP) contedo fica armazenado na memria ram, possui acesso extremamente rpido mas os
dados ficam muito vulnerveis.
ARCHIVE indicado para insero gil e rpida de grande quantidade de dados em arquivos comprimidos e no
indexados, para economizar espao.
CSV (Comma Separated Values valores separados por vrgulas)armazena os dados em arquivos de texto,
separando os registros com vrgulas. um padro que ocupa pouqussimo espao, por sua simplicidade e tem
maior compatibilidade com aplicativos.
FEDERATED permite acessar dados remotos sem usar a tecnologia de replicao ou cluster.FEDERATED. Uma
tabela FEDERATED local puxa automaticamente os dados das tabelas remotas (federadas). Nenhum dado
armazenado nas tabelas locais.
BLACKHOLE aceita dados, mas no os armazena. Pode ser usado em projetos de bancos de dados distribudos,
onde estes so automaticamente replicados, mas no armazenados localmente. comum ser usado para rodar
testes de performance.
4. TRANSAES
ATOMICIDADE: Para que uma transao seja efetivada todas as aes devem ser realizadas para serem
persistidas (commit), caso alguma delas falhe toda a transao desfeita (rollback).
CONSISTNCIA: Para manter a consistncia de um banco de dados, todas as regras estabelecidas devem ser
obedecidas, chaves primrias, chaves estrangeiras, checagem de valores limitados etc.
ISOLAMENTO: Cada transao funciona independente das outras que esto ocorrendo simultaneamente, dentro
de cada transao podem ser realizadas uma ou mais operaes. Essas operaes no influenciam entre elas,
isso um mecanismo de controle do prprio banco de dados e como no influenciam tambm no podem ver o
que as outras esto executando.
DURABILIDADE: O que uma transao executar e realizar confirmao, somente uma nova transao pode
desfazer essa alterao.
Geralmente os SGBD so transacionais, so capazes de manter a integridade dos dados e elas nunca finalizam
em um estado intermedirio, ou so executadas at o final com sucesso ou desfeitas por alguma falha. Em um
sistema ideal as transaes deveriam garantir todas as propriedades citadas acima, ACID.
5. TIPOS DE DADOS
NUMRICO
DATA E HORA
STRINGS
CHAR(N), VARCHAR (N) cadeias de caracteres, so semelhantes, mas diferem na forma como so
armazenados e recuperados.
BINARY (N), VARBINARY(N) so semelhantes a CHAR e VARCHAR , exceto que eles contm cadeias binrias
em vez de cadeias de caracteres.
BLOB sequncias de bytes um objeto grande binrio que pode conter uma quantidade varivel de dados.
Seus tipos diferem apenas de seu comprimento mximo. TINYBLOB , BLOB , MEDIUMBLOB e LONGBLOB
TEXT similar ao BLOB, porm com sequncia de caracteres TINYTEXT , TEXT , MEDIUMTEXT e LONGTEXT .
ENUM apenas um valor escolhido. String cujo valor escolhido vem de uma lista de valores permitidos
separados por vrgula.
SET tambm um tipo de dado do tipo lista, mas pode armazenar mais de uma opo da lista.
JSON
A partir do MySQL 5.7.8, o MySQL suporta o tipo JSON que permite um acesso eficiente aos dados nos
documentos JSON (JavaScript Object Notation).
ESPACIAIS
OPERADORES
Nome Descrio
AND, && E LGICO
OR, || OU LGICO
:= ATRIBUI VALOR
(NOT) BETWEEN ... AND... VERIFICA SE UM VALOR EST NO INTERVALO
=,<=>, IGUAL, OPERADOR IGUAL PARA NULL
>,>=,<, <= MAIOR,MAIOR OU IGUAL, MENOR, MENOR OU IGUAL
!=,<> NO IGUAL
+,-,*, /, DIV SOMA, SUBTRAO, MULTIPLICAO, DIVISO, DIVISO DE INTEIROS
(NOT) IS NULL TESTE DE VALOR NULL
OPERADORES DE STRING
NOME DESCRIO
CONCAT(STR1,STR2,...) RETORNA UMA STRING CONCATENADA
CONCAT_WS(SEP, STR1,STR2,...) RETORNA UMA STRING CONCATENADA COM SEPARADOR
INSERT(STR, POS,LEN,NEWSTR) INSERE UMA STRING COM AO TAMANHO E POSIO INDICADA
INSTR(STR, SUBSTR) RETORNA A POSIO DA PRIMEIRA OCORRNCIA DE SUBSTR EM STR
LENGTH(STR) RETORNA O TAMANHO DA STRING
TRIM(STR) REMOVE ESPACOS EM BRANCO NA STRING
STRCMP(S1,S2) COMPARA DUAS STRINGS
(NOT)LIKE COMPARA POR CARACTER - Retorna 1( TRUE) ou 0( FALSE).
REPLACE(STR1,STR2) SUBSTITUI A OCORRNCIA DE STR1 POR STR2
OBS.
possvel combinar o operador LIKE com caracteres de escape.
\% qualquer nmero de caracteres ou \_ exatamente um caracter
Ateno!
Para procurar \n, especifique-a como \\n.
Para procurar \, especifique-a como \\\\;
LISTA DE STRINGS ... WHERE estado [NOT] IN('PE', 'BA', 'CE', 'BH');
FUNES
FUNO DESCRIO
AVG() VALOR MDIO
COUNT() CONTAGEM DE LINHAS
COUNT(DISTINCT) CONTAGEM DE VALORES DIFERENTES
MAX() VALOR MXIMO
MIN() VALOR MNIMO
SUM() SOMA
FUNO DESCRIO
CASE CASE OPERADOR
IF() CONSTRUTOR IF/ELSE
IFNULL() NULL IF/ELSE
NULLIF() RETORNA NULL SE EXPR1=EXPR2
FUNO DESCRIO
NOW() RETORNAR A DATA E A HORA ATUAIS
DAYNAME() RETORNA O DIA DA SEMANA
DATEDIFF() SUBTRAIR DUAS DATAS
PERIOD_ADD ADICIONE UM PERODO A UM ANO-MS
PERIOD_DIFF DEVOLVE O NMERO DE MESES ENTRE PERODOS
SEC_TO_TIME CONVERTE SEGUNDOS PARA 'HH: MM: SS'
ARQUIVO DE TEXTO - possvel colocar suas declaraes SQL em um arquivo e, em seguida, dizer ao mysql que
leia esse arquivo. shell> mysql db_name < text_file
Se voc colocar a declarao USE db_name como a primeira declarao no arquivo, no necessrio especificar
o nome do banco de dados na linha de comando:
shell> mysql < text_file
ARQUIVO DE SCRIPT - Se voc j est executando mysql , voc pode executar um arquivo de script SQL: mysql>
source file_name
mysql> \. file_name
s vezes voc pode querer que seu script exiba informaes de progresso para o usurio.
SELECT '<info_to_display>' AS ' ';
7. INSTRUES SQL
a. CREATE DATABASE
A CHARACTER SET especifica o conjunto de caracteres padro do banco de dados. A COLLATE especifica o
agrupamento de banco de dados padro. Por padro o charset e collate definido latin1, latin1_swedish_ci.
b. CREATE TABLE
CONSTRAINTS
NOT NULL - Garante que uma coluna no pode ter um valor NULL
UNIQUE - Garante que todos os valores de uma coluna sejam diferentes
PRIMARY KEY - Uma combinao de um NO NULL e UNIQUE. Identifica exclusivamente cada linha em
uma tabela
FOREGEIN KEY - Identifica exclusivamente uma linha / registro em outra tabela
CHECK - Garante que todos os valores de uma coluna satisfaam uma condio especfica
DEFAULT - Define um valor padro para uma coluna quando nenhum valor especificado
INDEX - Use para criar e recuperar dados do banco de dados mais rapidamente
ADD FOREIGN KEY ALTER TABLE pet ADD FOREIGN KEY(owner) REFERENCES client (id);
DROP FOREIGN KEY ALTER TABLE pet DROP FOREIGN KEY(owner) REFERENCES client (id); ?erro?
Use SHOW CREATE TABLE PET;" para descobrir o nome da constraint da chave estrangeira gerada pelo
mysql, em seguida use o mesmo comando do DROP CONSTRAINT.
d. INSERT
Sem passar as colunas
INSERT INTO client VALUES (1,'maria', 'rua do sol n10' );
Passando as colunas
INSERT INTO client (id,name,address) VALUES (1,'maria', 'rua do sol n10');
e. REPLACE
- Tente inserir a nova linha na tabela
- Embora a insero falhe porque ocorre um erro de chave duplicada para uma chave primria ou ndice
exclusivo:
Exclua da tabela a linha conflitante que possui o valor da chave duplicada
Tente novamente inserir a nova linha na tabela
f. UPDATE
UPDATE table
SET column = expr1
WHERE col = expr 2;
UPDATE client SET address ='rua da alegria n20', name='Maria do Socorro' WHERE id =1;
g. DELETE
SINTAXES
DELETE table1, table2 ou DELETE FROM table1, table2
FROM table_ref USING table_ref
WHERE condition WHERE condition
Exemplo que exclui o registro mais antigo da tabela de log do usurio jcole.
DELETE FROM table_log WHERE user = 'jcole'
ORDER BY timestamp_column LIMIT 1;
h. SELECTS
Sintaxe: create table user ( Insert into user values (1,'maria do carmo',900.00);
SELECT id int(10) auto_increment, Insert into user values(2,'maria do socorro',800.00);
FROM name varchar(20), Insert into user values(3,'maria',100.00);
WHERE salary decimal(5,2), Insert into user values(4,'joo',100.00);
GROUP BY primary key (id) Insert into user values(5,'jos',100.00);
ASC DESC )ENGINE=InnoDB DEFAULT Insert into user values(6,'jos',900.00);
HAVING CHARSET=utf8mb4
ORDER BY AUTO_INCREMENT=1 ;
ASC DESC
LIMIT
GROUP BY HAVING
No use having para ITENS que deveriam est dentro do WHERE. A clusula having refere-se a funes
agregadas. A consulta abaixo retorna os users com maior salrio cujo valor seja maior que 500 ordenados de
forma crescente por nome.
UNION
Combina vrios selects em um nico conjunto de resultados. Por padro as linhas duplicadas so removidas do
resultado, logo o termo distinct indiferente. Use o termo ALL para receber inclusive as linhas duplicadas.
SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]
Exemplos:
RIGHT JOIN
LEFT JOIN
INNER JOIN
FULL OUTER
EXCLUDING JOIN
RIGHT EXCLUDING JOIN TODOS OS PETS QUE NO POSSUEM CLIENTES. ERRADO WHERE C.ID IS NULL
(IN lista)Trazer os dados dos clientes que possuem gatos como pets.
SELECT * FROM client WHERE id IN (SELECT owner FROM pet WHERE species = 'GATO');
(ANY QUALQUER VALOR) Trazer os dados dos clientes que possuem pets nascidos 15/05/2017.
SELECT * FROM client WHERE id= ANY (SELECT owner FROM pet WHERE birth='15-05-2017' );
EXISTS OR NO EXISTS
ALL
View