Você está na página 1de 7

Primeiros Comandos MySQL

Select Now(); Mostrar a data e hora atual; Show Databases; Mostra os bases criadas. SELECT VERSION( ); Mostra a verso instalada do MySql. Current_date; Mostra a data corrente. CREATE DATABASE; Cria uma Base (subdiretrio sobre o diretrio 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 criao de uma tabela. A criao da tabela acompanha a discriminao dos qual tipo de dado trabalhar valor monetrio mysqlcampos tipos caractersticas; Informaes teis: NOT NULL: No permitir a insero de um registro com o campo associado em branco AUTO_INCREMENT: Recurso do banco de dados que gera uma auto-numerao no campo associado.

PRIMARY KEY: Define o campo associado como sendo o campo-chave da tabela. DESCRIBE TABLE; Mostra uma descrio 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 -> ADD mysql> ALTER -> DROP TABLE TEAMS TYPE CHAR(1); TABLE TEAMS 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);

Exerccio 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; Disposio 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

Exerccio Inserir os seguintes arquivos designados, nas tabelas: PET e SERVICOS SELECT FROM WHERE Faz a recuperao dos dados de uma ou n tabelas.

SELECT o_que_mostrar FROM de_qual_tabela WHERE condies_para_satisfazer;

Ex.: select * from pet BUSCAR UM REGISTRO ESPECFICO: Especificar no where um valor a ser procurado. Ex.: select * from pet WHERE ID = 1 BUSCA POR NOME: Quando o valor for alfanumrico 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 abaixo
SELECT * FROM pet WHERE birth >= "1998-1-1";

OR e AND Quando estamos especificando, atravs da clusura 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 interjeio OU. Queremos gatos ou rmsters. (dar mais exemplos). AND: Acrescenta mais especificaes (E). Queremos gatos e fmeas.(dar mais exemplos). Exemplo mais complexo: Queremos apenas os gatos (E) machos OU cachorros (E) Fmeas:
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 = Tera, ...6= Domingo):
ex.:SELECT WEEKDAY('1997-11-05');

Retorna o dia do ms 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');

Retorna o ms para data, na faixa de 1 at 12:


ex.: SELECT MONTH('1998-02-03');

Extrai o ano da data

ex.: SELECT EXTRACT(YEAR FROM "1999-07-02");

Exemplos
mysql> 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'

mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V'); -> '1998 52' INNER JOIN

Quando precisamos selecionar os dados de duas tabelas distintas, usamos o recurso JOIN. Existem trs tipo: INNER JOIN, LEFT JOIN E RIGHT JOIN; No INNER JOIN feito uma juno completa das tabelas, sendo necessrio apenas indicar os campo Chave Primria Chave Extrangeira. ex.: Tabelas
ESTADO
CLIENTE

id_estado estado uf

Id_cli(PK) Nom e_cli tel_cli dtnasc_cli m unicipio cep id_estado

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 nmero e no 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 condies para filtrar os dados retornados na consulta GROUP BY Agrupa dados na consulta. HAVING Limita o resulta em uma condio estabelecida. ORDER BY Especifica a coluna ou as colunas que sero ordenadas na consulta

Exemplo de concatenao em SQL Server ou Access CONCATENADO: SELECT concat(nome_cli, ' mora em ', municipio) FROM cliente;

SELECT nome_cli, CONCAT(municipio, - ,uf) as Endereo 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 clusula SELECT.
SELECT distinct cidade FROM empregados

Trazer uma lista de servios j contratados na tabela OSXSERV; select distinct(id_estado) from cliente; No exemplo acima, usamos a palavra-chave distinct na coluna cidade, mas possvel relacionar mais de uma coluna, por exemplo, cidade e estado. Neste caso a combinao das duas colunas deve ser distinta.

Limitando o n de linhas em uma consulta


Limitar o nmero de linhas usado quando no queremos listar todas as linhas de uma tabela, seja pelo volume de linhas ou por no haver necessidade. O Mysql trata esta questo 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, porm 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: ordenao 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;

Group By SELECT Tipo, COUNT (NumAp)FROM APARELHOS GROUP BY Tipo select * 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, atravs 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 operao para trazer o valor final dos servios da tabela osxserv.