O que é a consulta SELECT no MySQL?
SELECT QUERY é usado para buscar os dados do banco de dados MySQL. Bancos de dados armazenam dados para recuperação posterior. O objetivo do MySQL Select é retornar das tabelas do banco de dados, uma ou mais linhas que correspondem a um determinado critério. A consulta selecionada pode ser usada em linguagem de script como PHP, Ruby ou você pode executá-la por meio do prompt de comando.
Sintaxe da instrução SQL SELECT
É o comando SQL usado com mais frequência e tem a seguinte sintaxe geral
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)AQUI
- SELECT é a palavra-chave SQL que permite ao banco de dados saber que você deseja recuperar os dados.
- [DISTINTO | ALL] são palavras-chave opcionais que podem ser usadas para ajustar os resultados retornados da instrução SQL SELECT. Se nada for especificado, ALL será considerado o padrão.
- {* | [fieldExpression [AS newName]} pelo menos uma parte deve ser especificada, "*" selecionou todos os campos do nome da tabela especificada, fieldExpression executa alguns cálculos nos campos especificados, como adicionar números ou juntar dois campos de string em um.
- FROM tableName é obrigatório e deve conter pelo menos uma tabela, várias tabelas devem ser separadas por vírgulas ou unidas usando a palavra-chave JOIN.
- A condição WHERE é opcional e pode ser usada para especificar critérios no conjunto de resultados retornado da consulta.
- GROUP BY é usado para reunir registros que possuem os mesmos valores de campo.
- A condição HAVING é usada para especificar critérios ao trabalhar com a palavra-chave GROUP BY.
- ORDER BY é usado para especificar a ordem de classificação do conjunto de resultados.
*
O símbolo Star é usado para selecionar todas as colunas da tabela. Um exemplo de uma instrução SELECT simples se parece com o mostrado abaixo.
SELECT * FROM `members`;
A instrução acima seleciona todos os campos da tabela de membros. O ponto e vírgula é uma terminação de instrução. Não é obrigatório, mas é considerado uma boa prática terminar suas declarações assim.
Exemplos práticos
Clique para baixar o banco de dados myflix usado para exemplos práticos.
Você pode aprender a importar o arquivo .sql para o MySQL WorkBench
Os exemplos são executados nas duas tabelas a seguir
Tabela 1: tabela de membros
número de membro | nomes completos | Gênero sexual | data de nascimento | endereço físico | endereço postal | contct_ number | o email |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Fêmea | 21-07-1980 | Terreno da primeira rua nº 4 | Mala Privada | 0759 253 542 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
2 | Janet Smith Jones | Fêmea | 23-06-1980 | Melrose 123 | NULO | NULO | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
3 | Robert Phil | Masculino | 07/12/1989 | 3rd Street 34 | NULO | 12345 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
4 | Gloria Williams | Fêmea | 14-02-1984 | 2nd Street 23 | NULO | NULO | NULO |
Tabela 2: tabela de filmes
movie_id | título | diretor | year_released | Categoria ID |
---|---|---|---|---|
1 | Piratas do Caribe 4 | Rob Marshall | 2011 | 1 |
2 | Esquecendo Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Men | NULO | 2008 | NULO |
4 | Codinome Preto | Edgar Jimz | 2010 | NULO |
5 | Garotinhas do papai | NULO | 2007 | 8 |
6 | Anjos e Demonios | NULO | 2007 | 6 |
7 | Código da Vinci | NULO | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% culpado | NULO | 2012 | NULO |
Obtendo lista de membros
Vamos supor que desejamos obter uma lista de todos os membros registrados da biblioteca de nosso banco de dados, usaríamos o script mostrado abaixo para fazer isso.
SELECT * FROM `members`;
Executar o script acima no ambiente de trabalho MySQL produz os seguintes resultados.
número de membro | nomes completos | Gênero sexual | data de nascimento | endereço físico | endereço postal | contct_ number | o email |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Fêmea | 21-07-1980 | Terreno da primeira rua nº 4 | Mala Privada | 0759 253 542 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
2 | Janet Smith Jones | Fêmea | 23-06-1980 | Melrose 123 | NULO | NULO | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
3 | Robert Phil | Masculino | 07/12/1989 | 3rd Street 34 | NULO | 12345 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
4 | Gloria Williams | Fêmea | 14-02-1984 | 2nd Street 23 | NULO | NULO | NULO |
Nossa consulta acima retornou todas as linhas e colunas da tabela de membros.
Digamos que estejamos interessados apenas em obter apenas os campos full_names, gender, physical_address e email. O script a seguir nos ajudaria a conseguir isso.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Executar o script acima no ambiente de trabalho MySQL produz os seguintes resultados.
nomes completos | Gênero sexual | endereço físico | o email |
---|---|---|---|
Janet Jones | Fêmea | Terreno da primeira rua nº 4 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
Janet Smith Jones | Fêmea | Melrose 123 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
Robert Phil | Masculino | 3rd Street 34 | Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo. |
Gloria Williams | Fêmea | 2nd Street 23 | NULO |
Obtendo lista de filmes
Lembre-se de que, em nossa discussão acima, mencionamos as expressões usadas em instruções SELECT. Digamos que desejamos obter uma lista de filmes de nosso banco de dados. Queremos ter o título do filme e o nome do diretor do filme em um campo. O nome do diretor do filme deve estar entre colchetes. Também queremos saber o ano em que o filme foi lançado. O script a seguir nos ajuda a fazer isso.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
AQUI
- A função Concat () MySQL é usada para juntar os valores das colunas.
- A linha "Concat (` title`, '(', `director`, ')') obtém o título, adiciona um colchete de abertura seguido pelo nome do diretor e então adiciona o colchete de fechamento.
As partes da string são separadas por vírgulas na função Concat ().
Executar o script acima no ambiente de trabalho MySQL produz o seguinte conjunto de resultados.
Concatar (`título`, '(',` diretor`, ')') | year_released |
---|---|
Piratas do Caribe 4 (Rob Marshall) | 2011 |
Esquecendo Sarah Marshal (Nicholas Stoller) | 2008 |
NULO | 2008 |
Codinome Preto (Edgar Jimz) | 2010 |
NULO | 2007 |
NULO | 2007 |
NULO | 2007 |
Honey mooners (John Schultz) | 2005 |
NULO | 2012 |
Nomes de campo de alias
O exemplo acima retornou o código de Concatenação como o nome do campo para nossos resultados. Suponha que queremos usar um nome de campo mais descritivo em nosso conjunto de resultados. Usaríamos o nome do alias da coluna para fazer isso. A seguir está a sintaxe básica para o nome do alias da coluna
SELECT `column_name|value|expression` [AS] `alias_name`;
AQUI
- "SELECT` column_name | value | expression `" é a instrução SELECT regular que pode ser um nome de coluna, valor ou expressão.
- "[AS]" é a palavra-chave opcional antes do nome do alias que denota a expressão, o valor ou o nome do campo será retornado como.
- "` alias_name` " é o nome do alias que desejamos retornar em nosso conjunto de resultados como o nome do campo.
A consulta acima com um nome de coluna mais significativo
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Nós obtemos o seguinte resultado
Concat | year_released |
---|---|
Piratas do Caribe 4 (Rob Marshall) | 2011 |
Esquecendo Sarah Marshal (Nicholas Stoller) | 2008 |
NULO | 2008 |
Codinome Preto (Edgar Jimz) | 2010 |
NULO | 2007 |
NULO | 2007 |
NULO | 2007 |
Honey mooners (John Schultz) | 2005 |
NULO | 2012 |
Obter lista de membros mostrando o ano de nascimento
Suponha que desejamos obter uma lista de todos os membros mostrando o número de membro, nomes completos e ano de nascimento, podemos usar a função string LEFT para extrair o ano de nascimento do campo de data de nascimento. O script mostrado abaixo nos ajuda a fazer isso.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
AQUI
- "LEFT (` date_of_birth`, 4) " a função string LEFT aceita a data de nascimento como parâmetro e retorna apenas 4 caracteres da esquerda.
- "AS` year_of_birth` " é o nome alternativo da coluna que será retornado em nossos resultados. Observe que a palavra-chave AS é opcional , você pode deixá-la de fora e a consulta ainda funcionará.
Executar a consulta acima no ambiente de trabalho MySQL no myflixdb nos dá os resultados mostrados abaixo.
número de membro | nomes completos | ano de nascimento |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL usando MySQL Workbench
Agora vamos usar o ambiente de trabalho MySQL para gerar o script que exibirá todos os nomes de campo de nossa tabela de categorias.
1. Clique com o botão direito na Tabela de categorias. Clique em "Selecionar Linhas - Limite 1000"
2. O ambiente de trabalho MySQL criará automaticamente uma consulta SQL e colará no editor.
3. Os resultados da consulta serão mostrados
Observe que não escrevemos a instrução SELECT. O ambiente de trabalho MySQL o gerou para nós.
Por que usar o comando SELECT SQL quando temos o MySQL Workbench?
Agora, você pode estar pensando por que aprender o comando SQL SELECT para consultar dados do banco de dados quando você pode simplesmente usar uma ferramenta como o ambiente de trabalho do MySQL para obter os mesmos resultados sem conhecimento da linguagem SQL. Claro que isso é possível, mas aprender a usar o comando SELECT oferece mais flexibilidade e controle sobre suas instruções SQL SELECT .
O ambiente de trabalho MySQL se enquadra na categoria de ferramentas QBE " Consulta por Exemplo " Destina-se a ajudar a gerar instruções SQL mais rapidamente para aumentar a produtividade do usuário.
Aprender o comando SQL SELECT pode permitir que você crie consultas complexas que não podem ser facilmente geradas usando os utilitários Query by Example, como o MySQL workbench.
Para melhorar a produtividade, você pode gerar o código usando o ambiente de trabalho MySQL e personalizá- lo para atender aos seus requisitos . Isso só pode acontecer se você entender como as instruções SQL funcionam!
Resumo
- A palavra-chave SQL SELECT é usada para consultar dados do banco de dados e é o comando mais comumente usado.
- A forma mais simples possui a sintaxe "SELECT * FROM tableName;"
- Expressões também podem ser usadas na instrução select. Exemplo "SELECIONE quantidade + preço DE Vendas"
- O comando SQL SELECT também pode ter outros parâmetros opcionais, como WHERE, GROUP BY, HAVING, ORDER BY. Eles serão discutidos mais tarde.
- O ambiente de trabalho MySQL pode ajudar a desenvolver instruções SQL, executá-las e produzir o resultado de saída na mesma janela.