O documento discute o comando SELECT no MySQL, incluindo ordenação de resultados por coluna única ou múltiplas colunas, ordenação por expressões, tratamento de valores nulos e remoção de repetições usando a cláusula DISTINCT. Ele fornece exemplos usando duas tabelas, Produto e t1.
O documento descreve o comando SELECT na linguagem SQL para interrogação de bases de dados. Explica que o SELECT permite selecionar registos e colunas de uma tabela usando diferentes cláusulas e operadores. Descreve operações como selecionar todos os registos, usar restrições WHERE, projetar colunas, e usar operadores lógicos e de comparação.
Sobre programas e funções: pensando em abstraçãoArthur Xavier
O documento discute como a programação funcional pode ser uma ferramenta poderosa para lidar com a complexidade de programas. Apresenta abstrações funcionais como monóides e mônadas que permitem dividir programas em partes menores e compô-los de forma previsível, levando à corretude por construção. Também discute como essas abstrações matemáticas promovem maior abstração no desenvolvimento de software.
Este documento resume as principais informações sobre o PostgreSQL 8.4 apresentadas por Fernando Ike de Oliveira no FISL 10. Ele discute novas funcionalidades como visibilidade maps, privilégios por coluna, bancos de dados com localizações diferentes, autenticação por certificado, funções com parâmetros padrão, tabela de estatísticas por função e auto explain. Ele também apresenta exemplos de WITH recursivo, limit na subconsulta, busca parcial e full text search.
um breve treinamento sobre SQL e suas funcionalidadesWilliam Costa
Este documento fornece um resumo sobre SQL e suas funcionalidades. Ele introduz o que é SQL, seus principais subconjuntos e comandos como SELECT, WHERE, GROUP BY e ORDER BY. Também explica conceitos como junções, agregações, conversão de dados e operadores lógicos e matemáticos.
O documento apresenta o uso do SQLAlchemy para mapear objetos Python a tabelas de um banco de dados. É criada uma engine para conexão com o banco SQLite e uma classe Contato é mapeada à tabela "agenda". Um programa permite adicionar, listar e sair de contatos de forma interativa na sessão.
InterCon 2017 - Programação funcional no desenvolvimento de aplicações: pensa...iMasters
O documento discute como a programação funcional pode ser uma ferramenta útil para controlar a complexidade de programas. Apresenta abstrações funcionais como monóides e mônadas que permitem expressar programas de forma mais concisa e abstrata, facilitando a composição e raciocínio sobre corretude.
Este documento discute funções da linguagem SQL para seleção e filtragem de dados em bancos de dados. Ele explica o uso das cláusulas LIMIT, OFFSET, DISTINCT e ORDER BY para limitar, ignorar, eliminar duplicatas e ordenar resultados de consultas SQL respectivamente. Também apresenta operadores e expressões para filtrar dados com base em condições, intervalos, listas, valores nulos e padrões de string.
Este documento resume os principais conceitos de bancos de dados relacionais utilizando PostgreSQL. Inclui exemplos de criação de tabelas, tipos de busca como sequencial scan e index scan, diferentes tipos de junções como nested loop, merge join e hash join, e agregações com grupo.
O documento descreve o comando SELECT na linguagem SQL para interrogação de bases de dados. Explica que o SELECT permite selecionar registos e colunas de uma tabela usando diferentes cláusulas e operadores. Descreve operações como selecionar todos os registos, usar restrições WHERE, projetar colunas, e usar operadores lógicos e de comparação.
Sobre programas e funções: pensando em abstraçãoArthur Xavier
O documento discute como a programação funcional pode ser uma ferramenta poderosa para lidar com a complexidade de programas. Apresenta abstrações funcionais como monóides e mônadas que permitem dividir programas em partes menores e compô-los de forma previsível, levando à corretude por construção. Também discute como essas abstrações matemáticas promovem maior abstração no desenvolvimento de software.
Este documento resume as principais informações sobre o PostgreSQL 8.4 apresentadas por Fernando Ike de Oliveira no FISL 10. Ele discute novas funcionalidades como visibilidade maps, privilégios por coluna, bancos de dados com localizações diferentes, autenticação por certificado, funções com parâmetros padrão, tabela de estatísticas por função e auto explain. Ele também apresenta exemplos de WITH recursivo, limit na subconsulta, busca parcial e full text search.
um breve treinamento sobre SQL e suas funcionalidadesWilliam Costa
Este documento fornece um resumo sobre SQL e suas funcionalidades. Ele introduz o que é SQL, seus principais subconjuntos e comandos como SELECT, WHERE, GROUP BY e ORDER BY. Também explica conceitos como junções, agregações, conversão de dados e operadores lógicos e matemáticos.
O documento apresenta o uso do SQLAlchemy para mapear objetos Python a tabelas de um banco de dados. É criada uma engine para conexão com o banco SQLite e uma classe Contato é mapeada à tabela "agenda". Um programa permite adicionar, listar e sair de contatos de forma interativa na sessão.
InterCon 2017 - Programação funcional no desenvolvimento de aplicações: pensa...iMasters
O documento discute como a programação funcional pode ser uma ferramenta útil para controlar a complexidade de programas. Apresenta abstrações funcionais como monóides e mônadas que permitem expressar programas de forma mais concisa e abstrata, facilitando a composição e raciocínio sobre corretude.
Este documento discute funções da linguagem SQL para seleção e filtragem de dados em bancos de dados. Ele explica o uso das cláusulas LIMIT, OFFSET, DISTINCT e ORDER BY para limitar, ignorar, eliminar duplicatas e ordenar resultados de consultas SQL respectivamente. Também apresenta operadores e expressões para filtrar dados com base em condições, intervalos, listas, valores nulos e padrões de string.
Este documento resume os principais conceitos de bancos de dados relacionais utilizando PostgreSQL. Inclui exemplos de criação de tabelas, tipos de busca como sequencial scan e index scan, diferentes tipos de junções como nested loop, merge join e hash join, e agregações com grupo.
O documento explica os diferentes tipos de JOIN no SQL, incluindo INNER JOIN, OUTER JOIN e SELF JOIN. Discute como o JOIN permite obter informações de várias tabelas usando uma única instrução SELECT, ligando as tabelas através de chaves primárias e estrangeiras. Também explica o que é um produto cartesiano e como o WHERE clause pode ser usado para especificar condições de JOIN.
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
O documento fornece informações sobre um curso de formação web. Ele discute tópicos como PHP, HTML, variáveis, estruturas de controle, funções PHP, formulários, banco de dados MySQL e criação de um sistema simples de blog. O instrutor também apresenta etapas para a criação de um blog simples utilizando PHP e MySQL.
O documento descreve o processo de conexão entre um navegador web, servidor web e banco de dados MySQL para recuperar e formatar dados da web. Ele também explica como configurar sessões no PHP para autenticar usuários em um sistema.
O documento discute PHP e MySQL, explicando que aplicações precisam salvar informações em bancos de dados e que PHP oferece suporte nativo ao MySQL. Ele também fornece instruções sobre como configurar o PHP para usar MySQL, criar bancos de dados no MySQL usando PHPMyAdmin e realizar operações básicas como inserção, consulta, atualização e remoção de dados usando funções PHP.
O documento discute o banco de dados MySQL, comparando os motores de armazenamento MyISAM e InnoDB, e descrevendo recursos como replicação, otimização do sistema e versões do MySQL.
O documento descreve a história e características do MySQL, um banco de dados open source. Começou a ser desenvolvido na década de 1990 e hoje é mantido por cerca de 400 profissionais. O MySQL se tornou uma alternativa popular por ser rápido, flexível e ter licença gratuita ou comercial.
Este documento descreve os produtos da Oracle relacionados ao MySQL, incluindo o MySQL Community Edition licenciado sob GPL e o MySQL Enterprise Edition. Ele também lista 10 compromissos da Oracle com o MySQL e sua comunidade para manter o desenvolvimento do produto e suporte aos clientes.
Dentro do ciclo de desenvolvimento de um produto há várias atividades que vão desde a seleção da melhor tecnologia até boas práticas de manutenção em ambiente produtivo. Nesta apresentação mostramos algumas novidades do MySQL que ajudarão nestas tarefas associadas ao desenvolvimento de um excelente produto.
Trabalho apresentado ao Prof. Alexandre Ribeiro Afonso, da Faculdade de Informação e Comunicação da Universidade Federal de Goiás, Como requisito parcial para obtenção de nota na disciplina de Tópicos Especiais em GI 1. Tema do trabalho (BANCO DE DADOS RELACIONAIS)
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
Este documento fornece instruções passo-a-passo para criar um banco de dados no MySQL Workbench. Ele explica como criar uma nova conexão, abrir a conexão, criar um novo esquema (banco de dados), e então criar tabelas e campos nesse banco de dados. O tutorial tem o objetivo de auxiliar iniciantes no processo de configuração básica de um banco de dados no MySQL Workbench.
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
Uma breve abordagem sobre o conceito de banco de dados não relacionais, tendo como ponto de origem os bancos relacionais atuais. Apresento de forma sucinta as vantagens e desvantagens dos dois.
Foi apresentado no Campus Universitário da UAN do Camama.
O documento apresenta os principais conceitos e comandos do sistema de gerenciamento de banco de dados MySQL. Ele explica o que é SQL, como instalar o MySQL e os principais grupos de comandos - DML, DDL e DCL. Além disso, demonstra comandos básicos como criar e manipular bancos de dados e tabelas, inserir, consultar e alterar dados.
O documento discute os principais modelos de bancos de dados, incluindo o modelo hierárquico, modelo de rede, modelo relacional, modelo orientado a objetos e modelo dedutivo. Explica as características-chave de cada modelo e como representam e armazenam dados.
O documento explica os diferentes tipos de JOIN no SQL, incluindo INNER JOIN, OUTER JOIN e SELF JOIN. Discute como o JOIN permite obter informações de várias tabelas usando uma única instrução SELECT, ligando as tabelas através de chaves primárias e estrangeiras. Também explica o que é um produto cartesiano e como o WHERE clause pode ser usado para especificar condições de JOIN.
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
O documento fornece informações sobre um curso de formação web. Ele discute tópicos como PHP, HTML, variáveis, estruturas de controle, funções PHP, formulários, banco de dados MySQL e criação de um sistema simples de blog. O instrutor também apresenta etapas para a criação de um blog simples utilizando PHP e MySQL.
O documento descreve o processo de conexão entre um navegador web, servidor web e banco de dados MySQL para recuperar e formatar dados da web. Ele também explica como configurar sessões no PHP para autenticar usuários em um sistema.
O documento discute PHP e MySQL, explicando que aplicações precisam salvar informações em bancos de dados e que PHP oferece suporte nativo ao MySQL. Ele também fornece instruções sobre como configurar o PHP para usar MySQL, criar bancos de dados no MySQL usando PHPMyAdmin e realizar operações básicas como inserção, consulta, atualização e remoção de dados usando funções PHP.
O documento discute o banco de dados MySQL, comparando os motores de armazenamento MyISAM e InnoDB, e descrevendo recursos como replicação, otimização do sistema e versões do MySQL.
O documento descreve a história e características do MySQL, um banco de dados open source. Começou a ser desenvolvido na década de 1990 e hoje é mantido por cerca de 400 profissionais. O MySQL se tornou uma alternativa popular por ser rápido, flexível e ter licença gratuita ou comercial.
Este documento descreve os produtos da Oracle relacionados ao MySQL, incluindo o MySQL Community Edition licenciado sob GPL e o MySQL Enterprise Edition. Ele também lista 10 compromissos da Oracle com o MySQL e sua comunidade para manter o desenvolvimento do produto e suporte aos clientes.
Dentro do ciclo de desenvolvimento de um produto há várias atividades que vão desde a seleção da melhor tecnologia até boas práticas de manutenção em ambiente produtivo. Nesta apresentação mostramos algumas novidades do MySQL que ajudarão nestas tarefas associadas ao desenvolvimento de um excelente produto.
Trabalho apresentado ao Prof. Alexandre Ribeiro Afonso, da Faculdade de Informação e Comunicação da Universidade Federal de Goiás, Como requisito parcial para obtenção de nota na disciplina de Tópicos Especiais em GI 1. Tema do trabalho (BANCO DE DADOS RELACIONAIS)
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
Este documento fornece instruções passo-a-passo para criar um banco de dados no MySQL Workbench. Ele explica como criar uma nova conexão, abrir a conexão, criar um novo esquema (banco de dados), e então criar tabelas e campos nesse banco de dados. O tutorial tem o objetivo de auxiliar iniciantes no processo de configuração básica de um banco de dados no MySQL Workbench.
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
Uma breve abordagem sobre o conceito de banco de dados não relacionais, tendo como ponto de origem os bancos relacionais atuais. Apresento de forma sucinta as vantagens e desvantagens dos dois.
Foi apresentado no Campus Universitário da UAN do Camama.
O documento apresenta os principais conceitos e comandos do sistema de gerenciamento de banco de dados MySQL. Ele explica o que é SQL, como instalar o MySQL e os principais grupos de comandos - DML, DDL e DCL. Além disso, demonstra comandos básicos como criar e manipular bancos de dados e tabelas, inserir, consultar e alterar dados.
O documento discute os principais modelos de bancos de dados, incluindo o modelo hierárquico, modelo de rede, modelo relacional, modelo orientado a objetos e modelo dedutivo. Explica as características-chave de cada modelo e como representam e armazenam dados.
1. MySQL
O comando SELECT
ordenação
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:
Ordenação por uma coluna
Ordenação por várias colunas
Selecção de expressões
Ordenação por posição
Ordenação e NULL
Eliminação de repetições
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
3. Tabelas 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),
('alho', 1, 12),
('cebola', 1332.50, 5),
('couve', 13.00, 100);
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)
#criar a tabela
CREATE TABLE t1
(
c1 INT PRIMARY KEY,
c2 VARCHAR(15) NOT NULL,
c3 DECIMAL(4,2) NULL,
c4 INT NULL
) TYPE=InnoDB;
#inserir dados de teste
INSERT INTO t1 VALUES
(3, "joana", 3, 1),
(1, "carla", 3, NULL),
(2, "ana", 4.8, 7),
(6, "maria", 3, NULL),
(4, "catarina", 3, 2),
(5, "margarida", 67.4, NULL),
(7, "isabel", 3.2, 0);
mysql> select * from t1;
+----+-----------+-------+------+
| c1 | c2
| c3
| c4
|
+----+-----------+-------+------+
| 1 | carla
| 3.00 | NULL |
| 2 | ana
| 4.80 |
7 |
| 3 | joana
| 3.00 |
1 |
| 4 | catarina | 3.00 |
2 |
| 5 | margarida | 67.40 | NULL |
| 6 | maria
| 3.00 | NULL |
| 7 | isabel
| 3.20 |
0 |
+----+-----------+-------+------+
7 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
4. Ordenação
Quando estamos a utilizar o comando SELECT e pretendemos obter os resultados organizados
de uma determinada forma, devemos recorrer à cláusula ORDER BY.
A sintaxe do comando SELECT é a seguinte:
SELECT campo1, campo2, campo3, ..., campon, *
FROM tabela1, tabela2, … tabelak
…
[ORDER BY campo [ASC|DESC], campo [ASC|DESC], ...]
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
5. Ordenação por uma coluna
Basta indicar na cláusula ORDER BY qual o nome da coluna pela qual pretendemos ordenar os
resultados.
mysql> select * from Produto order by stock;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
17 | cebola | 99.99 |
5 |
|
16 | alho
| 1.00 |
12 |
|
13 | batata | 32.30 |
40 |
|
14 | cenoura | 12.00 |
45 |
|
15 | laranja | 11.30 |
100 |
|
18 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+
6 rows in set (0.00 sec)
mysql> select nome from Produto order by nome asc;
+---------+
| nome
|
+---------+
| alho
|
| batata |
| cebola |
| cenoura |
| couve
|
| laranja |
+---------+
6 rows in set (0.00 sec)
mysql> select * from Produto order by stock;
+--------+---------+-------+-------+
| codigo | nome
| preco | stock |
+--------+---------+-------+-------+
|
17 | cebola | 99.99 |
5 |
|
16 | alho
| 1.00 |
12 |
|
13 | batata | 32.30 |
40 |
|
14 | cenoura | 12.00 |
45 |
|
15 | laranja | 11.30 |
100 |
|
18 | couve
| 13.00 |
100 |
+--------+---------+-------+-------+
6 rows in set (0.00 sec)
mysql> select nome from Produto order by nome desc;
+---------+
| nome
|
+---------+
| laranja |
| couve
|
| cenoura |
| cebola |
| batata |
| alho
|
+---------+
6 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
6. Ordenação por uma coluna
continuação
Exemplos com a tabela t1.
mysql> select * from t1 order by c3 asc;
+----+-----------+-------+------+
| c1 | c2
| c3
| c4
|
+----+-----------+-------+------+
| 1 | carla
| 3.00 | NULL |
| 3 | joana
| 3.00 |
1 |
| 4 | catarina | 3.00 |
2 |
| 6 | maria
| 3.00 | NULL |
| 7 | isabel
| 3.20 |
0 |
| 2 | ana
| 4.80 |
7 |
| 5 | margarida | 67.40 | NULL |
+----+-----------+-------+------+
7 rows in set (0.00 sec)
mysql> select c2 from t1 order by c2;
+-----------+
| c2
|
+-----------+
| ana
|
| carla
|
| catarina |
| isabel
|
| joana
|
| margarida |
| maria
|
+-----------+
7 rows in set (0.00 sec)
mysql> select * from t1 order by c3 desc;
+----+-----------+-------+------+
| c1 | c2
| c3
| c4
|
+----+-----------+-------+------+
| 5 | margarida | 67.40 | NULL |
| 2 | ana
| 4.80 |
7 |
| 7 | isabel
| 3.20 |
0 |
| 1 | carla
| 3.00 | NULL |
| 3 | joana
| 3.00 |
1 |
| 4 | catarina | 3.00 |
2 |
| 6 | maria
| 3.00 | NULL |
+----+-----------+-------+------+
7 rows in set (0.00 sec)
mysql> select c2 from t1 order by c2 desc;
+-----------+
| c2
|
+-----------+
| maria
|
| margarida |
| joana
|
| isabel
|
| catarina |
| carla
|
| ana
|
+-----------+
7 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
7. Ordenação por várias colunas
Quando a ordenação se pretende por mais do que uma coluna, basta ir acrescentanto à cláusula
ORDER BY os nomes das colunas pelos quais se irão fazer as várias subordenações.
mysql> select stock, nome from Produto order by stock, nome;
+-------+---------+
| stock | nome
|
+-------+---------+
|
5 | cebola |
|
12 | alho
|
|
40 | batata |
|
45 | cenoura |
|
100 | couve
|
|
100 | laranja |
+-------+---------+
6 rows in set (0.00 sec)
mysql> select stock, nome from Produto order by stock, nome desc;
+-------+---------+
| stock | nome
|
+-------+---------+
|
5 | cebola |
|
12 | alho
|
|
40 | batata |
|
45 | cenoura |
|
100 | laranja |
|
100 | couve
|
+-------+---------+
6 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
8. Ordenação por várias colunas
continuação
Exemplos com a tabela t1
mysql> select c3, c2 from t1 order by c3, c2;
+-------+-----------+
| c3
| c2
|
+-------+-----------+
| 3.00 | carla
|
| 3.00 | catarina |
| 3.00 | joana
|
| 3.00 | maria
|
| 3.20 | isabel
|
| 4.80 | ana
|
| 67.40 | margarida |
+-------+-----------+
7 rows in set (0.00 sec)
mysql> select c3, c2 from t1 order by c3, c2 desc;
+-------+-----------+
| c3
| c2
|
+-------+-----------+
| 3.00 | maria
|
| 3.00 | joana
|
| 3.00 | catarina |
| 3.00 | carla
|
| 3.20 | isabel
|
| 4.80 | ana
|
| 67.40 | margarida |
+-------+-----------+
7 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
9. Ordenação por expressões
Nem sempre desejamos obter os resultados ordenados a partir de uma coluna existente mas de um
qualquer cálculo que realizamos (expressão).
Nesse caso a ordenação será feita pela coluna resultante da expressão avaliada.
mysql> select nome, stock - codigo from Produto;
+---------+----------------+
| nome
| stock - codigo |
+---------+----------------+
| batata |
27 |
| cenoura |
31 |
mysql> select nome, stock - codigo as expr1 from Produto;
| laranja |
85 |
+---------+-------+
| alho
|
-4 |
| expr1 |
| cebola | nome
|
-12 |
+---------+-------+
| couve
|
82 |
| batata |
27 |
+---------+----------------+
6 rows in | cenoura |
set (0.00 sec) 31 |
select nome, stock - codigo as expr1 from Produto order by expr1;
| laranja mysql>85 |
|
+---------+-------+
| alho
|
-4 |
| cebola || nome
-12 | | expr1 |
| couve +---------+-------+
|
82 |
| cebola
-12 |
+---------+-------+ |
|set (0.00 |sec) -4 |
alho
6 rows in
| batata |
27 |
| cenoura |
31 |
| couve
|
82 |
| laranja |
85 |
+---------+-------+
6 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
10. Ordenação por expressões
continuação
Exemplos com a tabela t1.
mysql> select c3, 2 * c3 as dobro from t1 order by dobro;
+-------+--------+
| c3
| dobro |
+-------+--------+
| 3.00 |
6.00 |
| 3.00 |
6.00 |
| 3.00 |
6.00 |
| 3.00 |
6.00 |
| 3.20 |
6.40 |
| 4.80 |
9.60 |
| 67.40 | 134.80 |
+-------+--------+
7 rows in set (0.00 sec)
mysql> select c1, c2 from t1 order by c1 - c3;
+----+-----------+
| c1 | c2
|
+----+-----------+
| 5 | margarida |
| 2 | ana
|
| 1 | carla
|
| 3 | joana
|
| 4 | catarina |
| 6 | maria
|
| 7 | isabel
|
+----+-----------+
7 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
11. Ordenação e NULL
O tratamento que é dado ao valor NULL varia de sistema para sistema.
Neste caso acontece o seguinte:
mysql> select * from t1;
+----+-----------+-------+------+
| c1 | c2
| c3
| c4
|
+----+-----------+-------+------+
| 1 | carla
| 3.00 | NULL |
| 2 | ana
| 4.80 |
7 |
| 3 | joana
| 3.00 |
1 |
| 4 | catarina | 3.00 |
2 |
| 5 | margarida | 67.40 | NULL |
| 6 | maria
| 3.00 | NULL |
| 7 | isabel
| 3.20 |
0 |
+----+-----------+-------+------+
7 rows in set (0.00 sec)
mysql> select * from t1 order by c4 asc;
+----+-----------+-------+------+
| c1 | c2
| c3
| c4
|
+----+-----------+-------+------+
| 1 | carla
| 3.00 | NULL |
| 5 | margarida | 67.40 | NULL |
| 6 | maria
| 3.00 | NULL |
| 7 | isabel
| 3.20 |
0 |
| 3 | joana
| 3.00 |
1 |
| 4 | catarina | 3.00 |
2 |
| 2 | ana
| 4.80 |
7 |
+----+-----------+-------+------+
7 rows in set (0.00 sec)
mysql> select * from t1 order by c4 desc;
+----+-----------+-------+------+
| c1 | c2
| c3
| c4
|
+----+-----------+-------+------+
| 2 | ana
| 4.80 |
7 |
| 4 | catarina | 3.00 |
2 |
| 3 | joana
| 3.00 |
1 |
| 7 | isabel
| 3.20 |
0 |
| 1 | carla
| 3.00 | NULL |
| 5 | margarida | 67.40 | NULL |
| 6 | maria
| 3.00 | NULL |
+----+-----------+-------+------+
7 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
12. Eliminação de repetições
Por vezes torna-se necessário eliminar as linhas repetidas. Nesses casos recorremos à cláusula
DISTINCT.
mysql> select * from Postal;
+--------+---------------+
| codigo | localidade
|
+--------+---------------+
|
1000 | LISBOA
|
|
1100 | LISBOA
|
|
1200 | LISBOA
|
|
1500 | LISBOA
|
|
2000 | SANTAREM
|
|
2300 | TOMAR
|
|
3000 | COIMBRA
|
|
4000 | PORTO
|
|
4100 | PORTO
|
|
4200 | PORTO
|
|
4480 | VILA DO CONDE |
|
9000 | FUNCHAL
|
+--------+---------------+
12 rows in set (0.01 sec)
mysql> select all localidade
from Postal;
+---------------+
| localidade
|
+---------------+
| LISBOA
|
| LISBOA
|
| LISBOA
|
| LISBOA
|
| SANTAREM
|
| TOMAR
|
| COIMBRA
|
| PORTO
|
| PORTO
|
| PORTO
|
| VILA DO CONDE |
| FUNCHAL
|
+---------------+
12 rows in set (0.00 sec)
mysql> select distinct
localidade from Postal;
+---------------+
| localidade
|
+---------------+
| LISBOA
|
| SANTAREM
|
| TOMAR
|
| COIMBRA
|
| PORTO
|
| VILA DO CONDE |
| FUNCHAL
|
+---------------+
7 rows in set (0.00 sec)
Graciano Torrão
( http://gracianotorrao.com )
Programação e Sistemas de Informação
13. Dúvidas?
Escola Secundária
D. Afonso Sanches
Vila do Conde
Graciano Torrão
13
( graciano.torrao@gmail.com )
( http://gracianotorrao.com )
Programação e Sistemas de Informação