Sintaxes simplificadas

Linguagem de definição de dados - DDL

Tipos de campos suportados pelo MySQL

Strings (Cadeia de caracteres):

char(n)

char(n) BINARY (Case sensitive)

varchar(n)

varchar(n) BINARY (Case sensitive)

TINYTEXT (Pequeno texto, um memo)

TEXT (texto, um memo)

MEDIUMTEXT (texto meio longo, um memo)

LONGTEXT (texto longo, um memo)

Numéricos:

int

smallint

numeric(p,d)

decimal(p,d)

double precision

float(n)

Data e hora:

date

time

datetime

year

timestamp

Criar uma tabela

Para criar um tabela:

sintaxe: CREATE TABLE

<tabela>

(

<CAMPO1> tipo [NOT NULL [UNIQUE]]

<CAMPO2> tipo [NOT NULL [UNIQUE]]

. . .

PRIMARY KEY ( <CAMPO1> [,<CAMPO2 ...>])

)

Exemplo 3-1. Primeira tabela

CFP_CLIENTE, não vazio e único, com 11 caracteres,

NOME_CLIENTE com 20 caracteres,

RUA_CLIENTE com 30 caracteres,

CIDADE_CLIENTE com 30 caracteres

e torne o campo CPF_CLIENTE a chave primária.

							 
			CREATE TABLE CLIENTE   
			  (
			     CFP_CLIENTE  CHAR(11) NOT NULL PRIMARY KEY,
			     NOME_CLIENTE CHAR(20) NOT NULL,
			     RUA_CLIENTE  CHAR(30),
			     CIDADE_CLIENTE CHAR(30)
			  )	

Exemplo 3-2. Segunda tabela

COD_PRODUTO não vazio,único e do tipo numérico,

DESCRICAO_PRODUTO com 15 caracteres,

VLR_UNITARIO do tipo ponto flutuante,

e torne o campo COD_PRODUTO a chave primária.

 							 
			CREATE TABLE produto   
			  (
			     COD_PRODUTO   INT  NOT NULL PRIMARY KEY,
			     DESCRICAO_PRODUTO CHAR(15) NOT NULL,
			     VLR_UNITARIO DECIMAL(8,2),
			  ) 

Apagar um elemento (tabela/índice)

Para apagar uma tabela, índice ou visão.

sintaxe: DROP <TABLE | INDEX> <elemento>

Exemplo 3-3. Apagar a tabela cliente

 
	          DROP TABLE cliente 

Exemplo 3-4. Apagar um índice de cliente

	          DROP INDEX Idxcliente_nome 			  

Alterar tabela

Para alterar a estrutura (quantidade, tipo e tamanho de campos) da tabela.

Exemplo 3-5. Alteração da tabela

	          ALTER TABLE  <nome_tabela>
	               (
				      ADD <nome_campo> <tipo_campo> [;
					  DROP <nome_campo>; ]
					  ...				   
				   )	 

Exemplo 3-6. Adicionando mais um campo à tabela

 
              ALTER TABLE  cliente ADD data_nasc date; 
				   	

Exemplo 3-7. Deletando um campo da tabela

 
              ALTER TABLE  cliente DROP data_nasc date; 
				   	

Exemplo 3-8. Renomeando uma tabela

 
              ALTER TABLE  cliente DROP data_nasc date; 
				   	

Exemplo 3-9. Alterando o tipo do campo da tabela


              ALTER TABLE cliente CHANGE nome nome VARCHAR(60);

Exemplo 3-10. Alterando o nome do campo

              ALTER TABLE cliente CHANGE nome nome_cliente VARCHAR(60);

Linguagem de Consulta de dados - DQL

Criando um consulta (query) com base em tabela(s).

sintaxe: SELECT <CAMPO1> [, <CAMPO2> ...]

FROM <tabela1>

WHERE <condição>

Exemplo 3-11. Consultando registros na tabela

Listar todos os campos da tabela produto que o código do produto seja 100.

	       SELECT * FROM produtos WHERE cod_produto = 100 

Exemplo 3-12. Consulta ordenada

Selecione e apresente todos os dados de todos os produto ordenado pelo descrição do produto.

		   	 
	       SELECT * FROM produtos 
		       ORDER BY descricao_produto;	          

Cláusulas da Sentença SELECT

ORDER BY

Descrição: Especifica a ordenação do resultado retornado por uma sentença SELECT;

Exemplo 3-13. Utilizando a sentença ORDER BY

Selecione e apresente todos os dados de todos os produto ordenado pelo descrição do produto.

 			  					  
			  SELECT * FROM produtos 
			  ORDER BY descricao_produto;	         				   

GROUP BY

Descrição: Especifica um campo/coluna/atributo do resultado retornado para formação de um grupo;

Exemplo 3-14. Utilizando a sentença GROUP BY

Exibir maior pedido de qualquer cliente em cada código postal:

			  
			  SELECT COD_POSTAL, MAX(TOTCOMPRA)
			  FROM CLIENTE a, COMPRA b
			  WHERE  a.NUM_CLIENTE = b.NUM_CLIENTE
			  GROUP BY COD_POSTAL        		               

Linguagem de manutenção de dados - DML

Deleção de registros

Quando houver de apagar linhas (tuplas/"registros").

sintaxe: DELETE FROM <tabela> WHERE <condição>

Exemplo 3-15. Deleção de registros

Apagar o produto de código 100.

 	      
		    DELETE FROM produtos WHERE cod_produto = 100 

Inserção

Quando queremos incluir mais uma linha (tupla) na tabela (relação).

sintaxe: INSERT INTO <tabela> (<campo1> [, <campo2> ...]) VALUES (<valor1> [, <valor2>...])

Exemplo 3-16. Examplo de inserção

Incluir um cliente masculino de nome João Pedro

 	
 	         INSERT INTO cliente (NOME, SEXO) VALUES ('JOÃO PEDRO', 'M') 

Atualização

Para alterar os campos (atributos) de uma tabela (relação).

sintaxe: UPDATE <tabela> SET <campo1> = <expressão/valor1> WHERE <condição>

Exemplo 3-17. Atualização de campos

Acrescentar 6% ao saldo de todas as contas que tenham o saldo maior que 1000.

 	
	        UPDATE CONTA SET SALDO = SALDO*1.06   WHERE SALDO SALDO > 1000 

Operações em Strings

Tabela 3-1. Os caracteres curingas em operações com strings

% (caracter de porcentagem) mais de um caracter
_ (caracter underscore)apenas um caracter

Exemplo 3-18. Uso de caracteres curingas

"Empr%" corresponde a qualquer string que possua no início os caracteres : E, m, p, r. O restante não importa. Então: "Empresa" e "Empreendedor" são válidos.

"_u_" corresponde a qualquer string de três caracteres apenas, sendo a segunda letra "u".

Exemplo 3-19. Uso de caracteres curingas em queries SQL

Apresente todas os clientes que possuam no nome completo o sobrenome "Correia".

 
			 
			 SELECT * 
			 FROM CLIENTES
			 WHERE NOME_CLIENTE LIKE "%Correia%"

Selecione e exiba todos os Clientes que no nome a primeira letra seja "K".

 
			 SELECT * 
			 FROM CLIENTES  	 WHERE NOME_CLIENTE LIKE "K%"	 		 

Funções Agregadas

Retornando um valor simples as funções tomam como entrada um conjunto ou subconjunto de valores. São cinco funções agregadas: AVG (média), MIN (mínimo), MAX (máximo), SUM (soma) e COUNT (contagem).

Exemplo 3-20. Uso de funções agregadas

Apresentar a média do saldo de todas as agências do país de código 55.

 		   
	       select AVG(saldo)
		   from conta
		   where cod_pais_agencia = 55     

Exemplo 3-21. Outro exemplo de funções agregadas

Listar o nome de cada agência e a média do saldo encontrada em cada uma.

            
		  
		  select nome_agencia, AVG(saldo)
		  from conta
		  GROUP BY nome_agencia                                 

Exemplo 3-22. Mais um exemplo de funções agregadas

Exiba a quantidade de linhas (tuplas/"registros") em na tabela cliente.

           
		  
		  select COUNT(*)
		  from cliente                 

Exemplo 3-23. Outro exemplo de funções agregadas

Liste o saldo médio para cada cliente que mora em Recife e tenha ao menos três contas.

           
 
		  
		  select  de.nome_cliente, AVG(co.saldo)
		  from
		          depositante AS de, conta AS co, cliente AS cl
		  where
		          de.num_conta, = co.num_conta
				  AND
				  de.cod_cliente = cl.cod_cliente
				  AND
				  cl.cidade_cliente = "Recife"
		  GROUP BY 
		          de.cod_cliente
		  having  
		          COUNT(distinct de.num_conta)  >=  3