Instrução SELECT básica - "banco de dados MySQL"

Olá colegas usuários da CSDN, faz muito tempo que não atualizo a coluna do banco de dados MySQL de Xiaoyalan. No próximo período, Xiaoyalan atualizará o conhecimento do banco de dados MySQL. Agora, vamos entrar no tópico de hoje – a instrução SELECT básica. ! ! !


Visão geral do SQL

Regras e especificações da linguagem SQL

Instrução SELECT básica

Mostrar estrutura da tabela

Filtrar dados


Visão geral do SQL

Conhecimento prévio de SQL

Em 1946 nasceu o primeiro computador do mundo. Hoje, a Internet desenvolvida através deste computador tornou-se um mundo próprio. Nas últimas décadas, inúmeras tecnologias e indústrias tiveram altos e baixos nesta área, algumas ainda estão em ascensão e algumas viram a sua ascensão e queda. Mas nesta vasta flutuação, existe uma tecnologia que nunca desapareceu e que está ainda mais forte com o tempo: o SQL.

Há 45 anos, em 1974, pesquisadores da IBM publicaram um artigo "SEQUEL: A Structured English Query Language" que revelou a tecnologia de banco de dados. Até hoje, essa linguagem de consulta estruturada não mudou muito. Em comparação com outras linguagens, a meia-vida do SQL pode pode-se dizer que é muito longo.

Quer sejam engenheiros front-end ou engenheiros de algoritmos back-end, eles certamente lidarão com dados e todos precisam saber como extrair os dados que desejam com rapidez e precisão. Sem falar nos analistas de dados, cuja função é trabalhar com os dados e compilar diversos relatórios para orientar as decisões de negócios.

SQL (Structured Query Language) é uma linguagem de aplicação de banco de dados que utiliza um modelo relacional e lida diretamente com os dados. Foi desenvolvida pela IBM na década de 1970. Mais tarde, o American National Standards Institute (ANSI) começou a formular padrões SQL, incluindo SQL-86, SQL-89, SQL-92, SQL-99 e outros padrões.

SQL tem dois padrões importantes, nomeadamente SQL92 e SQL99, que representam os padrões SQL promulgados respectivamente em 1992 e 1999. A linguagem SQL que usamos hoje ainda segue esses padrões.

Diferentes fabricantes de bancos de dados oferecem suporte a instruções SQL, mas cada um tem seu próprio conteúdo exclusivo.

Classificações de linguagem SQL

Desde que o SQL se juntou ao ranking de linguagens de programação TIOBE, ele permaneceu no Top 10.

Classificação SQL

A linguagem SQL é dividida principalmente em três categorias em termos de funções:

  • DDL (Data Definition Languages, Data Definition Language), essas instruções definem diferentes objetos de banco de dados, como bancos de dados, tabelas, visualizações, índices, etc., e também podem ser usadas para criar, excluir e modificar a estrutura de bancos de dados e tabelas de dados. As palavras-chave da instrução principal incluem CREATE, DROP, ALTER, etc.
  • DML (Data Manipulation Language), usado para adicionar, excluir, atualizar e consultar registros de banco de dados e verificar a integridade dos dados. As palavras-chave da instrução principal incluem INSERT, DELETE, UPDATE, SELECT, etc. SELECT é a base da linguagem SQL e a mais importante.
  • DCL (Data Control Language) é usado para definir direitos de acesso e níveis de segurança de bancos de dados, tabelas, campos e usuários. As palavras-chave da instrução principal incluem GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT, etc.

Como as instruções de consulta são usadas com muita frequência, muitas pessoas separam as instruções de consulta em uma única categoria: DQL (Data Query Language).

Existem também COMMIT e ROLLBACK separados chamados TCL (Transaction Control Language, linguagem de controle de transação).  


Regras e especificações da linguagem SQL

Princípios básicos

SQL pode ser escrito em uma linha ou em várias linhas.

Para melhorar a legibilidade, cada cláusula é escrita em linhas separadas e o recuo é usado quando necessário. Cada comando termina com; ou \g ou \G

Palavras-chave não podem ser abreviadas ou divididas em linhas

Sobre pontuação

        Deve-se garantir que todas (), aspas simples e aspas duplas terminem em pares

        Você deve usar o método de entrada de meia largura em inglês.

        Os dados do tipo string e data e hora podem ser expressos usando aspas simples (' ')

        Para aliases de colunas, tente usar aspas duplas (" "), e não é recomendado omitir as.

Especificações de caso SQL (recomendado seguir)

MySQL não diferencia maiúsculas de minúsculas no ambiente Windows

MySQL diferencia maiúsculas de minúsculas no ambiente Linux

        Nomes de bancos de dados, nomes de tabelas, aliases de tabelas e nomes de variáveis ​​diferenciam estritamente maiúsculas de minúsculas.

        Palavras-chave, nomes de funções, nomes de colunas (ou nomes de campos), aliases de colunas (aliases de campos) não diferenciam maiúsculas de minúsculas.

Recomenda-se adotar padrões de redação unificados:

        Nomes de bancos de dados, nomes de tabelas, aliases de tabelas, nomes de campos, aliases de campos, etc. estão todos em letras minúsculas

        Palavras-chave SQL, nomes de funções, variáveis ​​de ligação, etc. são todos capitalizados

Comente

Estruturas de anotação no seguinte formato podem ser usadas

Comentários de linha única: #comment text (método específico do MySQL)

Comentários de linha única: -- Texto do comentário (-- deve conter um espaço depois dele.)

Comentários de várias linhas: /* texto do comentário*/

 Regras de nomenclatura

  • Os nomes de bancos de dados e tabelas não devem exceder 30 caracteres e os nomes de variáveis ​​são limitados a 29 caracteres.
  • Deve conter apenas A–Z, a–z, 0–9, _63 caracteres no total
  • Não inclua espaços em nomes de objetos, como nomes de bancos de dados, nomes de tabelas, nomes de campos, etc.
  • No mesmo software MySQL, o banco de dados não pode ter o mesmo nome; na mesma biblioteca, a tabela não pode ter o mesmo nome; na mesma tabela, os campos não podem ter o mesmo nome.
  • Você deve garantir que seus campos não entrem em conflito com palavras reservadas, sistemas de banco de dados ou métodos comuns. Se você insistir em usá-lo, use ` (destaque) na instrução SQL.
  • Mantenha os nomes e tipos de campos consistentes. Certifique-se de garantir consistência ao nomear campos e atribuir tipos de dados a eles. Se o tipo de dados for inteiro em uma tabela, não o altere para caractere em outra tabela.

Exemplo:

#以下两句是一样的,不区分大小写
show databases;
SHOW DATABASES;

#创建表格
#create table student info(...); #表名错误,因为表名有空格
create table student_info(...); 
#其中order使用``飘号,因为order和系统关键字或系统函数名等预定义标识符重名了
CREATE TABLE `order`();
select id as "编号", `name` as "姓名" from t_stu; #起别名时,as都可以省略
select id as 编号, `name` as 姓名 from t_stu; #如果字段别名中没有空格,那么可以省略""
select id as 编 号, `name` as 姓 名 from t_stu; #错误,如果字段别名中有空格,那么不能省略""

Instruções de importação de dados

Faça login no mysql no cliente de linha de comando e use o comando source para importar

mysql> fonte d:\mysqldb.sql

mysql>desc funcionários;

+----------------+------------+------+-----+----- ----+-------+

| Campo | Tipo | Nulo | Chave | Padrão | Extras |

+----------------+------------+------+-----+----- ----+-------+

| ID_do_funcionário | int(6) | NÃO | PRI | 0 | |

| primeiro_nome | varchar(20) | SIM | | NULO | |

| sobrenome_nome | varchar(25) | NÃO | | NULO | |

| e-mail | varchar(25) | NÃO | UNI | NULO | |

| número_telefone | varchar(20) | SIM | | NULO | |

| data_contratação | data | NÃO | | NULO | |

| id_trabalho | varchar(10) | NÃO | MUL | NULO | |

| salário | duplo(8,2) | SIM | | NULO | |

| comissão_pct | duplo(2,2) | SIM | | NULO | |

| gerente_id | int(6) | SIM | MUL | NULO | |

| departamento_id | int(4) | SIM | MUL | NULO | |

+----------------+------------+------+-----+----- ----+-------+

11 linhas em conjunto (0,00 seg)


Instrução SELECT básica

SELECIONE...

SELECT 1; #没有任何子句
SELECT 9/2; #没有任何子句

SELECIONE DE

gramática:

SELECT identifica quais colunas selecionar

FROM identifica qual tabela selecionar

Selecione todas as colunas:

SELECIONE *

DE departamentos;

 

De modo geral, é melhor não usar o caractere curinga '*', a menos que você precise usar todos os dados de campo da tabela. Embora o uso de curingas possa economizar tempo na digitação de instruções de consulta, a obtenção de dados de coluna desnecessários geralmente reduz a eficiência da consulta e do aplicativo usado. A vantagem dos curingas é que eles podem ser usados ​​para obter as colunas necessárias quando seus nomes não são conhecidos.

Em um ambiente de produção, não é recomendado usar SELECT * diretamente para consultar.  

Selecione colunas específicas:

SELECIONE departamento_id, local_id

DE departamentos;

 

As instruções SQL no MySQL não diferenciam maiúsculas de minúsculas, portanto, as funções de SELECT e select são as mesmas. No entanto, muitos desenvolvedores estão acostumados a colocar palavras-chave em letras maiúsculas e colunas de dados e nomes de tabelas em letras minúsculas. Os leitores também devem desenvolver um bom hábito de programação. , o código escrito desta forma é mais fácil de ler e manter.  

Alias ​​de coluna

Renomear uma coluna

Fácil de calcular

Após o nome da coluna, você também pode adicionar a palavra-chave AS entre o nome da coluna e o alias. Use aspas duplas para o alias para que o alias contenha espaços ou caracteres especiais e faça distinção entre maiúsculas e minúsculas.

AS pode ser omitido

Recomenda-se que o alias seja curto e compreenda o significado do nome.

Exemplo

SELECIONE sobrenome AS nome, comissão_pct comm

DE funcionários;

 

SELECIONE sobrenome "Nome", salário*12 "Salário Anual"

DE funcionários;

 

 

Remover linhas duplicadas

Por padrão, a consulta retorna todas as linhas, incluindo linhas duplicadas.

SELECIONE departamento_id

DE funcionários;

 

Use a palavra-chave DISTINCT na instrução SELECT para remover linhas duplicadas

SELECIONE DISTINCT departamento_id

DE funcionários;

 

Direcionado para:

SELECIONE DISTINCT departamento_id,salário

DE funcionários;

DISTINCT na verdade desduplica todas as combinações de nomes de colunas subsequentes. Você pode ver que o resultado final são 74 entradas, porque esses 74 IDs de departamento são diferentes e todos têm o valor do atributo salário. Se você quiser ver os diferentes departamentos (department_id), você só precisa escrever DISTINCT Department_id, e não há necessidade de adicionar outros nomes de colunas posteriormente.

Valores nulos participam de operações

 Quando qualquer valor de operador ou coluna encontra um valor nulo, o resultado da operação é nulo.

SELECT employee_id,salary,commission_pct,
12 * salary * (1 + commission_pct) "annual_sal"
FROM employees;

Você deve observar aqui que no MySQL, um valor nulo não é igual a uma string vazia. Uma string vazia tem comprimento 0, enquanto um valor nulo tem comprimento zero. Além disso, no MySQL, os valores nulos ocupam espaço.

Ênfase

Incorreta

mysql> SELECT * FROM ORDER;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 'ORDER' at 
line 1

correto

mysql> SELECT * FROM `ORDER`;
+----------+------------+
| order_id | order_name |
+----------+------------+
|        1 | shkstart   |
|        2 | tomcat     |
|        3 | dubbo     |
+----------+------------+

3 rows in set (0.00 sec)
mysql> SELECT * FROM `order`;
+----------+------------+
| order_id | order_name |
+----------+------------+
|        1 | shkstart   |
|        2 | tomcat     |
|        3 | dubbo     |
+----------+------------+

3 rows in set (0.00 sec)

para concluir

Precisamos garantir que os campos, nomes de tabelas, etc. na tabela não entrem em conflito com palavras reservadas, sistemas de banco de dados ou métodos comuns. Se eles forem realmente iguais, use um par de `` (grifos) na instrução SQL.

Constante de consulta

Consultas SELECT também podem consultar constantes. Isso mesmo, significa adicionar uma coluna constante fixa aos resultados da consulta SELECT. O valor desta coluna é especificado por nós, em vez de ser retirado dinamicamente da tabela de dados.

Você pode perguntar por que ainda precisamos consultar constantes?

A sintaxe SELECT em SQL fornece esta função. De modo geral, consultamos apenas dados de uma tabela. Normalmente não há necessidade de adicionar uma coluna constante fixa, mas se quisermos integrar diferentes fontes de dados, use uma coluna constante como a tabela Mark, você precisa consultar a constante.

Por exemplo, queremos consultar os nomes dos funcionários na tabela de dados dos funcionários e, ao mesmo tempo, adicionar um campo de coluna corporação. O valor fixo deste campo é "Vale do Silício". Pode ser escrito assim:

SELECIONE 'Silicon Valley' como corporação, sobrenome FROM funcionários;


Mostrar estrutura da tabela

Utilize o comando DESCRIBE ou DESC para indicar a estrutura da tabela.

DESCRIBE employees;

或

DESC employees;
mysql> desc employees;
+----------------+-------------+------+-----+---------+-------+
| Field         | Type       | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| employee_id   | int(6)     | NO   | PRI | 0       |       |
| first_name     | varchar(20) | YES |     | NULL   |       |
| last_name     | varchar(25) | NO   |     | NULL   |       |
| email         | varchar(25) | NO   | UNI | NULL   |       |
| phone_number   | varchar(20) | YES |     | NULL   |       |
| hire_date     | date       | NO   |     | NULL   |       |
| job_id         | varchar(10) | NO   | MUL | NULL   |       |
| salary         | double(8,2) | YES |     | NULL   |       |
| commission_pct | double(2,2) | YES |     | NULL   |       |
| manager_id     | int(6)     | YES | MUL | NULL   |       |
| department_id | int(4)     | YES | MUL | NULL   |       |
+----------------+-------------+------+-----+---------+-------+

11 rows in set (0.00 sec)

Dentre eles, o significado de cada campo é explicado a seguir:

  • Campo: Indica o nome do campo.
  • Tipo: Indica o tipo de campo, aqui código de barras e nome da mercadoria são do tipo texto e o preço é do tipo inteiro.
  • Nulo: Indica se a coluna pode armazenar valores NULL.
  • Chave: Indica se a coluna está indexada. PRI significa que a coluna faz parte da chave primária da tabela; UNI significa que a coluna faz parte do índice UNIQUE; MUL significa que um determinado valor pode aparecer múltiplas vezes na coluna.
  • Padrão: Indica se a coluna possui um valor padrão e, em caso afirmativo, qual é o valor.
  • Extra: Indica informações adicionais relacionadas a uma determinada coluna que podem ser obtidas, como AUTO_INCREMENT, etc.

Filtrar dados

gramática:

SELECT 字段1,字段2

FROM 表名

WHERE 过滤条件

Use a cláusula WHERE para filtrar linhas que não atendem às condições

A cláusula WHERE segue a cláusula FROM

Exemplo

SELECT employee_id, last_name, job_id, department_id

FROM   employees

WHERE department_id = 90 ;


 vamos! ! !

Acho que você gosta

Origin blog.csdn.net/weixin_74957752/article/details/132867620
Recomendado
Clasificación