MySQL
O comando SELECT

Escola Secundária
D. Afonso Sanches
Vila do Conde

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Introdução:
A linguagem SQL
As sublinguagens do MySQL ( DML, DDL, DCL)
O comando SELECT
Seleccionar todos os registos
Seleccionar todas as colunas
Projecção
Restrição
Operadores relacionais
Operadores lógicos
Outros operadores

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
A linguagem SQL
Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de
pesquisa declarativa para bases de dados relacionais.

O facto de ser declarativa apresenta a vantagem de permitir expressar aquilo que se pretende sem
ter que entrar em grandes detalhes sobre a localização física e forma como os dados se encontram
armazenados.
Possui um formato Open Source designado por MySQL(http://www.mysql.com)
A linguagem SQL é constituída por três sublinguagens:

DML – Data Manipulation Language ( SELECT, INSERT, UPDATE, DELETE, …)
DDL – Data Definition Language (CREATE, ALTER, DROP, …)
DCL – Data Control Language (GRANT, REVOKE, ...)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
O comando SELECT
A interrogação de qualquer base de dados relacional faz-se sempre utilizando o comando
SELECT que é, sem sombra de dúvidas, o comando mais utilizado e importante da linguagem.
A sintaxe do comando SELECT é a seguinte:
SELECT campo1, campo2, campo3, ..., campon, *
FROM tabela1, tabela2, … tabelak
[WHERE condição]
[GROUP BY …]
[HAVING …]
[ORDER BY ...]

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Tabela que vamos utilizar como exemplo:
#criar a tabela
CREATE TABLE Produto
(
codigo INT NULL PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(15) NOT NULL,
preco DECIMAL(4,2) NOT NULL,
stock SMALLINT NOT NULL
) TYPE=InnoDB;
#inserir dados de teste
INSERT INTO Produto (nome, preco, stock) VALUES
('batata', 32.30, 40),
('cenoura', 12, 45),
('laranja', 11.3, 100),
mysql> describe Produto;
('alho', 1, 12),
+--------+--------------+------+-----+---------+----------------+
('cebola', 1332.50, 5),
| Field | Type
| Null | Key | Default | Extra
|
('couve', 13.00, 100);
+--------+--------------+------+-----+---------+----------------+
| codigo | int(11)
| NO
| PRI | NULL
| auto_increment |
| nome
| varchar(15) | NO
|
| NULL
|
|
| preco | decimal(4,2) | NO
|
| NULL
|
|
| stock | smallint(6) | NO
|
| NULL
|
|
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
mysql> select * from Produto;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+
6 rows in set (0.00 sec)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Seleccionar todos os registos (linhas)
Na sua forma mais simples, basta indicar quais as colunas que queremos exibir, seguidas do
nome da tabela.
mysql> select codigo, nome, preco, stock from Produto;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+

mysql> select nome from Produto;
+---------+
| nome
|
+---------+
| batata |
| cenoura |
| laranja |
| alho
|
| cebola |
| couve
|
+---------+

mysql> select preco, codigo, nome, stock from Produto;
+-------+--------+---------+-------+
| preco | codigo | nome
| stock |
+-------+--------+---------+-------+
| 32.30 |
1 | batata |
40 |
| 12.00 |
2 | cenoura |
45 |
| 11.30 |
3 | laranja |
100 |
| 1.00 |
4 | alho
|
12 |
| 99.99 |
5 | cebola |
5 |
| 13.00 |
6 | couve
|
100 |
+-------+--------+---------+-------+

mysql> select codigo, stock
from Produto;
+--------+-------+
| codigo | stock |
+--------+-------+
|
1 |
40 |
|
2 |
45 |
|
3 |
100 |
|
4 |
12 |
|
5 |
5 |
|
6 |
100 |
+--------+-------+

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Seleccionar todas as colunas
Quando pretendemos mostrar todas as colunas de uma tabela, em vez de escrever os nomes de
todas elas, podemos utilizar o caracter *(asterisco).
mysql> select * from Produto;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+

É equivalente a ...
mysql> select codigo, nome, preco, stock from Produto;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Projecção
É a operação que permite obter um subconjunto das colunas que formam a tabela.
mysql> select nome from Produto;
+---------+
| nome
|
+---------+
| batata |
| cenoura |
| laranja |
| alho
|
| cebola |
| couve
|
+---------+

mysql> select codigo, stock from Produto;
+--------+-------+
| codigo | stock |
+--------+-------+
|
1 |
40 |
|
2 |
45 |
|
3 |
100 |
|
4 |
12 |
|
5 |
5 |
|
6 |
100 |
+--------+-------+

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Restrição ( WHERE)
A operação de restrição permite restringir o número de linhas a exibir, mediante a avaliação de uma
condição fornecida.
mysql> select * from Produto where stock > 40;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+

A sintaxe do comando SELECT utilizando a cláusula WHERE é a seguinte:
SELECT *
FROM tabela
WHERE condição;

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Restrição ( WHERE)

continuação...

Da mesma forma que na operação de projecção o * significa todas as colunas, uma condição que
seja satisfeita por todas as linhas faz com que todas sejam exibidas.
mysql> select * from Produto where 1 = 1;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+

1=1

VERDADEIRO

Ou
mysql> select * from Produto where codigo = codigo;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Restrição ( WHERE)

continuação...

No caso da condição ter um valor lógico falso, nenhuma linha é exibida.

mysql> select * from Produto where 1 <> 1;
Empty set (0.00 sec)

1 <> 1

FALSO

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Operadores relacionais
O resultado de uma operação lógica é sempre verdadeiro ou falso.
Estes podem ser utilizados com o cláusula WHERE de forma a obter as linhas pretendidas.
Os operadores relacionais são os seguintes:

Operador

Descrição

Exemplo

Resultado

=

Igual a

7=5

FALSO

>

Maior que

7>5

VERDADEIRO

<

Menor que

7<5

FALSO

>=

Maior ou igual que

7 >= 5

VERDADEIRO

<=

Menos ou igual que

7 <= 5

FALSO

<>

diferente

7 <> 5

VERDADEIRO

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Operadores lógicos
Os operadores lógicos funciona, sempre com operandos lógicos ou com expressões que devolvam
valores lógicos.
Operador

Exemplo

AND

Condição 1 AND Condição2

OR

Condição 1 OR Condição2

NOT

NOT Condição2

mysql> select * from Produto where stock > 10 AND stock < 50;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
4 | alho
| 1.00 |
12 |
+--------+---------+-------+-------+
3 rows in set (0.00 sec)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Operadore BETWEEN
Este operador permite especificar intervalos de valores.
A sintaxe é a seguinte:
SELECT ...
FROM ...
WHERE valor [NOT] BETWEEN valor 1 AND valor2
mysql> select * from Produto where stock between 40 AND 45;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
+--------+---------+-------+-------+
2 rows in set (0.00 sec)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Operador IN
Este operador permite verificar se algo faz ou não parte de um conjunto de valores especificado entre
parêntesis.
A sintaxe é a seguinte:
SELECT ...
FROM ...
WHERE valor [NOT] IN (valor1, valor2, valor3)
mysql> select * from Produto where stock in (0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
3 | laranja | 11.30 |
100 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+
3 rows in set (0.00 sec)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Operador IS
Este operador permite realizar comparações de valores com NULL.
O valor NULL representa a ausência de valor.
A sintaxe é a seguinte:
SELECT ...
FROM ...
WHERE campo IS [NOT] NULL

mysql> select * from Produto where preco is null;
Empty set (0.01 sec)
mysql> select * from Produto where preco is not null;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
1 | batata | 32.30 |
40 |
|
2 | cenoura | 12.00 |
45 |
|
3 | laranja | 11.30 |
100 |
|
4 | alho
| 1.00 |
12 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+
6 rows in set (0.00 sec)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Operador LIKE (comparação de strings)
O operador LIKE permite realizar comparações entre strings.
Uma string é uma cadeia de caracteres que funciona como um todo.
O operador LIKE torna-se articularmente útil se utilizado conjuntamente com os caracteres genéricos
(WildCards).
WildCard

Significado

%

Qualquer conjunto de zero ou mais
caracteres

_ (underscore)

Um caracter qualquer

mysql> select * from Produto where nome like 'c%';
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
2 | cenoura | 12.00 |
45 |
|
5 | cebola | 99.99 |
5 |
|
6 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+
3 rows in set (0.00 sec)

Graciano Torrão
( http://gracianotorrao.com )

Programação e Sistemas de Informação
Dúvidas?

Escola Secundária
D. Afonso Sanches
Vila do Conde

Graciano Torrão

18

( graciano.torrao@gmail.com )
( http://gracianotorrao.com )

Programação e Sistemas de Informação

MySQL - O Comando SELECT

  • 1.
    MySQL O comando SELECT EscolaSecundária D. Afonso Sanches Vila do Conde Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 2.
    Introdução: A linguagem SQL Assublinguagens do MySQL ( DML, DDL, DCL) O comando SELECT Seleccionar todos os registos Seleccionar todas as colunas Projecção Restrição Operadores relacionais Operadores lógicos Outros operadores Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 3.
    A linguagem SQL StructuredQuery Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para bases de dados relacionais. O facto de ser declarativa apresenta a vantagem de permitir expressar aquilo que se pretende sem ter que entrar em grandes detalhes sobre a localização física e forma como os dados se encontram armazenados. Possui um formato Open Source designado por MySQL(http://www.mysql.com) A linguagem SQL é constituída por três sublinguagens: DML – Data Manipulation Language ( SELECT, INSERT, UPDATE, DELETE, …) DDL – Data Definition Language (CREATE, ALTER, DROP, …) DCL – Data Control Language (GRANT, REVOKE, ...) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 4.
    O comando SELECT Ainterrogação de qualquer base de dados relacional faz-se sempre utilizando o comando SELECT que é, sem sombra de dúvidas, o comando mais utilizado e importante da linguagem. A sintaxe do comando SELECT é a seguinte: SELECT campo1, campo2, campo3, ..., campon, * FROM tabela1, tabela2, … tabelak [WHERE condição] [GROUP BY …] [HAVING …] [ORDER BY ...] Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 5.
    Tabela que vamosutilizar como exemplo: #criar a tabela CREATE TABLE Produto ( codigo INT NULL PRIMARY KEY AUTO_INCREMENT, nome VARCHAR(15) NOT NULL, preco DECIMAL(4,2) NOT NULL, stock SMALLINT NOT NULL ) TYPE=InnoDB; #inserir dados de teste INSERT INTO Produto (nome, preco, stock) VALUES ('batata', 32.30, 40), ('cenoura', 12, 45), ('laranja', 11.3, 100), mysql> describe Produto; ('alho', 1, 12), +--------+--------------+------+-----+---------+----------------+ ('cebola', 1332.50, 5), | Field | Type | Null | Key | Default | Extra | ('couve', 13.00, 100); +--------+--------------+------+-----+---------+----------------+ | codigo | int(11) | NO | PRI | NULL | auto_increment | | nome | varchar(15) | NO | | NULL | | | preco | decimal(4,2) | NO | | NULL | | | stock | smallint(6) | NO | | NULL | | +--------+--------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) mysql> select * from Produto; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ 6 rows in set (0.00 sec) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 6.
    Seleccionar todos osregistos (linhas) Na sua forma mais simples, basta indicar quais as colunas que queremos exibir, seguidas do nome da tabela. mysql> select codigo, nome, preco, stock from Produto; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ mysql> select nome from Produto; +---------+ | nome | +---------+ | batata | | cenoura | | laranja | | alho | | cebola | | couve | +---------+ mysql> select preco, codigo, nome, stock from Produto; +-------+--------+---------+-------+ | preco | codigo | nome | stock | +-------+--------+---------+-------+ | 32.30 | 1 | batata | 40 | | 12.00 | 2 | cenoura | 45 | | 11.30 | 3 | laranja | 100 | | 1.00 | 4 | alho | 12 | | 99.99 | 5 | cebola | 5 | | 13.00 | 6 | couve | 100 | +-------+--------+---------+-------+ mysql> select codigo, stock from Produto; +--------+-------+ | codigo | stock | +--------+-------+ | 1 | 40 | | 2 | 45 | | 3 | 100 | | 4 | 12 | | 5 | 5 | | 6 | 100 | +--------+-------+ Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 7.
    Seleccionar todas ascolunas Quando pretendemos mostrar todas as colunas de uma tabela, em vez de escrever os nomes de todas elas, podemos utilizar o caracter *(asterisco). mysql> select * from Produto; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ É equivalente a ... mysql> select codigo, nome, preco, stock from Produto; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 8.
    Projecção É a operaçãoque permite obter um subconjunto das colunas que formam a tabela. mysql> select nome from Produto; +---------+ | nome | +---------+ | batata | | cenoura | | laranja | | alho | | cebola | | couve | +---------+ mysql> select codigo, stock from Produto; +--------+-------+ | codigo | stock | +--------+-------+ | 1 | 40 | | 2 | 45 | | 3 | 100 | | 4 | 12 | | 5 | 5 | | 6 | 100 | +--------+-------+ Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 9.
    Restrição ( WHERE) Aoperação de restrição permite restringir o número de linhas a exibir, mediante a avaliação de uma condição fornecida. mysql> select * from Produto where stock > 40; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ A sintaxe do comando SELECT utilizando a cláusula WHERE é a seguinte: SELECT * FROM tabela WHERE condição; Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 10.
    Restrição ( WHERE) continuação... Damesma forma que na operação de projecção o * significa todas as colunas, uma condição que seja satisfeita por todas as linhas faz com que todas sejam exibidas. mysql> select * from Produto where 1 = 1; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ 1=1 VERDADEIRO Ou mysql> select * from Produto where codigo = codigo; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 11.
    Restrição ( WHERE) continuação... Nocaso da condição ter um valor lógico falso, nenhuma linha é exibida. mysql> select * from Produto where 1 <> 1; Empty set (0.00 sec) 1 <> 1 FALSO Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 12.
    Operadores relacionais O resultadode uma operação lógica é sempre verdadeiro ou falso. Estes podem ser utilizados com o cláusula WHERE de forma a obter as linhas pretendidas. Os operadores relacionais são os seguintes: Operador Descrição Exemplo Resultado = Igual a 7=5 FALSO > Maior que 7>5 VERDADEIRO < Menor que 7<5 FALSO >= Maior ou igual que 7 >= 5 VERDADEIRO <= Menos ou igual que 7 <= 5 FALSO <> diferente 7 <> 5 VERDADEIRO Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 13.
    Operadores lógicos Os operadoreslógicos funciona, sempre com operandos lógicos ou com expressões que devolvam valores lógicos. Operador Exemplo AND Condição 1 AND Condição2 OR Condição 1 OR Condição2 NOT NOT Condição2 mysql> select * from Produto where stock > 10 AND stock < 50; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 4 | alho | 1.00 | 12 | +--------+---------+-------+-------+ 3 rows in set (0.00 sec) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 14.
    Operadore BETWEEN Este operadorpermite especificar intervalos de valores. A sintaxe é a seguinte: SELECT ... FROM ... WHERE valor [NOT] BETWEEN valor 1 AND valor2 mysql> select * from Produto where stock between 40 AND 45; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | +--------+---------+-------+-------+ 2 rows in set (0.00 sec) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 15.
    Operador IN Este operadorpermite verificar se algo faz ou não parte de um conjunto de valores especificado entre parêntesis. A sintaxe é a seguinte: SELECT ... FROM ... WHERE valor [NOT] IN (valor1, valor2, valor3) mysql> select * from Produto where stock in (0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100); +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 3 | laranja | 11.30 | 100 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ 3 rows in set (0.00 sec) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 16.
    Operador IS Este operadorpermite realizar comparações de valores com NULL. O valor NULL representa a ausência de valor. A sintaxe é a seguinte: SELECT ... FROM ... WHERE campo IS [NOT] NULL mysql> select * from Produto where preco is null; Empty set (0.01 sec) mysql> select * from Produto where preco is not null; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 1 | batata | 32.30 | 40 | | 2 | cenoura | 12.00 | 45 | | 3 | laranja | 11.30 | 100 | | 4 | alho | 1.00 | 12 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ 6 rows in set (0.00 sec) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 17.
    Operador LIKE (comparaçãode strings) O operador LIKE permite realizar comparações entre strings. Uma string é uma cadeia de caracteres que funciona como um todo. O operador LIKE torna-se articularmente útil se utilizado conjuntamente com os caracteres genéricos (WildCards). WildCard Significado % Qualquer conjunto de zero ou mais caracteres _ (underscore) Um caracter qualquer mysql> select * from Produto where nome like 'c%'; +--------+---------+-------+-------+ | codigo | nome | preco | stock | +--------+---------+-------+-------+ | 2 | cenoura | 12.00 | 45 | | 5 | cebola | 99.99 | 5 | | 6 | couve | 13.00 | 100 | +--------+---------+-------+-------+ 3 rows in set (0.00 sec) Graciano Torrão ( http://gracianotorrao.com ) Programação e Sistemas de Informação
  • 18.
    Dúvidas? Escola Secundária D. AfonsoSanches Vila do Conde Graciano Torrão 18 ( graciano.torrao@gmail.com ) ( http://gracianotorrao.com ) Programação e Sistemas de Informação