Upload
rafael-rabello
View
85
Download
0
Embed Size (px)
Citation preview
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 1/7
Primeiros Comandos MySQL
Select Now();
Mostrará a data e hora atual;
Show Databases;
Mostra os bases criadas.
SELECT VERSION( );
Mostra a versão instalada do MySql.
Current_date;
Mostra a data corrente.
CREATE DATABASE;Cria uma Base (subdiretório sobre o diretório principal “MYSQL”) dentro do banco de
dados MySQL.
DROP DATABASE;
Deleta a base selecionada e todos os seus registros e tabelas. Cuidado com esse
comando.
USE DATABASE_NAME:
Ex. Use pet;
Comando que seleciona uma Base para ser usada.
SHOW TABLES;
Mostra todas as tabelas existentes na base selecionada.
CREATE TABLE;Ex.:
CREATE TABLE PET (nome VARCHAR(20), owner VARCHAR(20),species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
ex2. :
mysql> CREATE TABLE CLIENTE(-> id_cli INT NOT NULL AUTO_INCREMENT,
-> nome_cli VARCHAR(100) NOT NULL,-> tel_cli VARCHAR(14) NOT NULL,-> dtnasc_cli DATE,-> PRIMARY KEY ( tutorial_id )-> );
Comando de criação de uma tabela. A criação da tabela acompanha a discriminação dos
qual tipo de dado trabalhar valor monetário mysqlcampos tipos características;
Informações úteis:
NOT NULL: Não permitirá a inserção de um registro com o campo associado em
branco
AUTO_INCREMENT : Recurso do banco de dados que gera uma auto-numeração nocampo associado.
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 2/7
PRIMARY KEY : Define o campo associado como sendo o campo-chave da tabela.
DESCRIBE TABLE;
Mostra uma descrição completa da tabela escolhida;
DROP TABLE;Exclui a tabela selecionada e todos seus registros; Cuidado com esse comando.
ALTER TABLE;
mysql> ALTER TABLE Product
-> ADD UNIQUE (ID, ModelID);
mysql> ALTER TABLE Books
-> DROP PRIMARY KEY,
-> DROP COLUMN Format;
mysql> ALTER TABLE news MODIFY article TEXT NOT NULL;
mysql> ALTER TABLE TEAMS
-> ADD TYPE CHAR(1);
mysql> ALTER TABLE TEAMS
-> DROP TYPE;
INSERT INTO
Insere um registro. A ordem dos campos deve ser mantida nos valores.
INSERT INTO pet (nome, owner, species, sex, birth, death)-> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
Exercício
Inserir 3 registros nas seguintes tabelas: PET e SERVICOS
LOAD DATA LOCAL INFLIE ~
Insere n registros a partir de uma lista de dados.
EX:LOAD DATA INFILE 'data.txt' INTO TABLE nome_tabela;
Disposição do arquivo texto:1,"a string",100.20
2,"a string containing a , comma",102.20
3,"a string containing a " quote",102.20
4,"a string containing a ", quote and comma",102.20
Exercício
Inserir os seguintes arquivos designados, nas tabelas: PET e SERVICOS
SELECT FROM WHERE
Faz a recuperação dos dados de uma ou n tabelas.
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 3/7
SELECT o_que_mostrarFROM de_qual_tabela WHERE condições_para_satisfazer;
Ex.: select * from pet
BUSCAR UM REGISTRO ESPECÍFICO:Especificar no where um valor a ser procurado.
Ex.: select * from pet WHERE ID = 1
BUSCA POR NOME:Quando o valor for alfanumérico – varchar, char, etc... -, este deve ser colocado entre
aspas
Ex2: SELECT * FROM pet WHERE species = "snake”;
BUSCAR UM REGISTRO POR CAMPO DATA:
Inverter a data para o formato abaixoSELECT * FROM pet WHERE birth >= "1998-1-1";
OR e AND
Quando estamos especificando, através da cláusura WHERE, um ou alguns registros
seletos, podemos discriminar mais que um valor do mesmo campo ou de campos
diferentes:
SELECT * FROM pet WHERE species = "snake"OR species = "bird";
SELECT * FROM pet WHERE species = "dog" AND sex = "f";
OR: Designa a interjeição OU. Queremos gatos ou rãmsters. (dar mais exemplos).
AND: Acrescenta mais especificações (E). Queremos gatos e fêmeas.(dar mais
exemplos).
Exemplo mais complexo:
Queremos apenas os gatos (E) machos OU cachorros (E) Fêmeas:SELECT * FROM pet WHERE (species = "cat" AND sex = "m")
OR (species = "dog" AND sex = "f");
SELECT
Retorna o índice do dia das semana para data (0 = Segunda, 1 = Terça, ...6= Domingo): ex.:SELECT WEEKDAY('1997-11-05');
Retorna o dia do mês para data, na faixa de 1 até 31:
ex.:SELECT DAYOFMONTH('1998-02-03');
Retorna o dia do ano para data, na faixa de 1 até 366:
ex.: SELECT DAYOFYEAR('1998-02-03');
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 4/7
Retorna o mês para data, na faixa de 1 até 12:
ex.: SELECT MONTH('1998-02-03');
Extrai o ano da dataex.: SELECT EXTRACT(YEAR FROM "1999-07-02");
Exemplosmysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> 'Saturday October 1997'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j');
-> '4th 97 Sat 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00','%H %k %I %r %T %S %w');
-> '22 22 10 10:23:00 PM 22:23:00 00 6'
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 5/7
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
-> '1998 52'
INNER JOIN
Quando precisamos selecionar os dados de duas tabelas distintas, usamos o recursoJOIN.
Existem três tipo: INNER JOIN, LEFT JOIN E RIGHT JOIN;
No INNER JOIN é feito uma junção completa das tabelas, sendo necessário apenas
indicar os campo Chave Primária → Chave Extrangeira.
ex.:
Tabelas
Notem que a tabela CLIENTE possui, no local do estado, a chave extrangeira
“ID_ESTADO”. Ou seja, se fizrmos um select da tabela cliente aparecerá no campo
id_estado um número e não o nome ou a sigla, que se encontram em outra
tabela(estado).
Quando fazemos um inner join entre as duas tabelas, usamos o campo ID_ESTADO da
tabela CLIENTE para “juntar” com o campo ID_ESTADO da tabela ESTADO.
Fica assim:
SELECT * FROM cliente c INNER JOIN estado e ON c.ID_ESTADO =
e.ID_ESTADO;
Estrutura do comando select:
SELECT - Seleciona as colunas da consulta
FROM - Seleciona a(s) tabela(s)
WHERE - Permite criar condições para filtrar os dados retornados na consulta
GROUP BY Agrupa dados na consulta.
HAVING Limita o resulta em uma condição estabelecida.
ORDER BY Especifica a coluna ou as colunas que serão ordenadas na consulta
ESTADO
id_estado
estado
uf
CLIENTE
id_estado
Id_cli(PK)
Nome_cli
tel_clidtnasc_climunicipio
cep
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 6/7
Exemplo de concatenação em SQL Server ou Access
CONCATENADO:
SELECT concat(nome_cli, ' mora em ', municipio) FROM cliente;
SELECT nome_cli, CONCAT(municipio, ‘-’ ,uf) as “Endereço”
FROM cliente c INNER JOIN estado e on c.id_estado = e.id_estado;
Selecionando valores distintos
Para eliminar linhas duplicadas, usamos a palavra-chave DISTINCT na cláusula
SELECT.
SELECT distinct cidade
FROM empregados
Trazer uma lista de serviços já contratados na tabela OSXSERV;
select distinct(id_estado) from cliente;
No exemplo acima, usamos a palavra-chave distinct na coluna cidade, mas é possível
relacionar mais de uma coluna, por exemplo, cidade e estado. Neste caso a combinação
das duas colunas deve ser distinta.
Limitando o nº de linhas em uma consulta
Limitar o número de linhas é usado quando não queremos listar todas as linhas de uma
tabela, seja pelo volume de linhas ou por não haver necessidade. O Mysql trata esta
questão de forma diferente do SQL Server e do Access.
Em SQL Server e Access use o Top para indicar o limite de linhas desejado na consulta.
SELECT top 7 *
FROM empregados
Em Mysql use o Limit para indicar o limite de linhas desejado na consulta.
SELECT *
FROM empregados LIMIT 0,7
O resultado será o mesmo, porém a leitura pode ser um pouco diferente, já que o top vai
pegar as sete primeiras linhas e o limit vai pegar a partir de 0 até 7.
Order by: ordenação da tabela
select * from cliente order by nome_cli desc
Count: Contador de registros (de acordo com o campo)
select count(id_cli) from cliente;
5/11/2018 Primeiros Comandos MySQL - slidepdf.com
http://slidepdf.com/reader/full/primeiros-comandos-mysql 7/7
Group By
SELECT Tipo, COUNT (NumAp)FROM APARELHOS GROUP BY Tiposelect * from cadastro GROUP BY cidade;
Select count(id_cli), nome_cli from cliente group by id_estado;
Select count(id_cli), id_estado from cliente group by id_estado;
Select count(id_cli), uf
from cliente
inner join estado e on c.id_estado=e.id_estado
group by id_estado;
Mostrar, através da sigla do estado, a quantidade de clientes registrados para cada
estado.
select 2 + 2;
select 2 * 2;
select 2 - 5;
select 10 / 2;
Mostrar quanto é 7% de 35;
Efetuar a operação para trazer o valor final dos serviços da tabela osxserv.