SlideShare una empresa de Scribd logo
1 de 18
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

Más contenido relacionado

Destacado

Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
elliando dias
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
MongoDB
 
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
dmc digital media center GmbH
 
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & ShipmanDominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
jonesshipman
 

Destacado (20)

O comando SELECT (JOIN)
O comando SELECT (JOIN)O comando SELECT (JOIN)
O comando SELECT (JOIN)
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
 
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung IICampus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
Campus M21 | Medienpraxis III: Online / Social Media - Vorlesung II
 
Presentació assamblea
Presentació assamblea Presentació assamblea
Presentació assamblea
 
Einführung in SCRUM
Einführung in SCRUMEinführung in SCRUM
Einführung in SCRUM
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
Tutorialphpmyadmin
TutorialphpmyadminTutorialphpmyadmin
Tutorialphpmyadmin
 
NotORM
NotORMNotORM
NotORM
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01-rev.
 
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
Campus M21 | Medienpraxis II: Online - Vorlesung I vom 31.01.2013
 
Què ha fet ICV-EUiA amb el meu vot?
Què ha fet ICV-EUiA amb el meu vot?Què ha fet ICV-EUiA amb el meu vot?
Què ha fet ICV-EUiA amb el meu vot?
 
Otimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - TchelinuxOtimizando aplicações Zend Framework - Tchelinux
Otimizando aplicações Zend Framework - Tchelinux
 
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
ECM-Webinar: Alfresco Migration Bestandsdaten Teil 2
 
02.10.2011 SC B.A.T II
02.10.2011   SC B.A.T II02.10.2011   SC B.A.T II
02.10.2011 SC B.A.T II
 
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & ShipmanDominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
Dominator: Rectifieuse plane de profils à CN et avance lente de Jones & Shipman
 
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
SQL Server 2008 'Best Practices' - Stéphane Haby, dbi services - Mövenpick La...
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Digitale Mentalität II
Digitale Mentalität IIDigitale Mentalität II
Digitale Mentalität II
 

Similar a MySQL - O Comando SELECT

Similar a MySQL - O Comando SELECT (20)

Funções Administrativas no PostgreSQL
Funções Administrativas no PostgreSQLFunções Administrativas no PostgreSQL
Funções Administrativas no PostgreSQL
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Curso de Certificação Linux LPI - Terminal Root
Curso de Certificação Linux LPI - Terminal RootCurso de Certificação Linux LPI - Terminal Root
Curso de Certificação Linux LPI - Terminal Root
 
Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017 Mini Curso PHP Twig - PHP Conference 2017
Mini Curso PHP Twig - PHP Conference 2017
 
Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com Openstack
 
Uso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sqlUso de estatísticas pelo postgre sql
Uso de estatísticas pelo postgre sql
 
Angular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & DesktopAngular >= 2 - One Framework Mobile & Desktop
Angular >= 2 - One Framework Mobile & Desktop
 
(2013-05-03) AudioLazy - Slides
(2013-05-03) AudioLazy - Slides(2013-05-03) AudioLazy - Slides
(2013-05-03) AudioLazy - Slides
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)
 
Resumo comandos cisco
Resumo comandos ciscoResumo comandos cisco
Resumo comandos cisco
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Python 04
Python 04Python 04
Python 04
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6UNIFAL - MySQL Stored Routines - 5.0/5.6
UNIFAL - MySQL Stored Routines - 5.0/5.6
 
Inside SQL Server: Como funciona um banco de dados?
Inside SQL Server: Como funciona um banco de dados?Inside SQL Server: Como funciona um banco de dados?
Inside SQL Server: Como funciona um banco de dados?
 
Resumão BB Direção Concursos.pdf banco do brasil
Resumão BB Direção Concursos.pdf banco do brasilResumão BB Direção Concursos.pdf banco do brasil
Resumão BB Direção Concursos.pdf banco do brasil
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Introducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-ptIntroducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-pt
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 

Último

apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
rosenilrucks
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
LeloIurk1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
edelon1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 

Último (20)

Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 

MySQL - O Comando SELECT

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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