Índice
2.1 Operações de banco de dados
2.2 Operações de tabela de dados
3.SQL-DML (adição, exclusão e modificação)
4.3 Consulta de função de agregação
4.6 Consulta de paginação (MySql)
Registre notas de estudo no banco de dados SQL
1. Classificação SQL
As categorias básicas são as seguintes:
Classificação | nome completo | ilustrar |
---|---|---|
DDL | Linguagem de definição de dados | Linguagem de definição de dados, usada para definir objetos de banco de dados (banco de dados, tabelas, campos) |
DML | Linguagem de manipulação de dados | Linguagem de manipulação de dados, usada para adicionar, excluir e modificar dados no banco de dados |
DQL | Linguagem de consulta de dados | Linguagem de consulta de dados, usada para consultar registros em tabelas em bancos de dados |
DCL | Linguagem de controle de dados | Linguagem de controle de dados, usada para criar usuários de banco de dados e controlar permissões de acesso ao banco de dados |
2.SQL-DDL
2.1 Operações de banco de dados
Investigar
Consultar todos os bancos de dados
show databases;
criar
Criar banco de dados
create database cat;
Isso significa que a criação foi bem-sucedida
drop database if exists cat;
Você também pode criar um banco de dados como este
Detecte se o banco de dados existe, crie-o se existir, caso contrário, não o crie e nenhum erro será relatado
create database if not exists cat;
excluir
Excluir banco de dados
drop database cat;
Para não reportar erro, você pode fazer isso ao excluir um banco de dados que não existe.
drop database if exists cat;
usar um banco de dados
use cat;
Consultar o banco de dados em uso
select database();
2.2 Operações de tabela de dados
Criar a tabela
create table tb_user(
id int comment '标号',
name varchar(50),
age int,
gender varchar(1)
) comment '用户表';
comentário comentário é opcional ou não
tabela de pesquisa
Consultar todas as tabelas do banco de dados
show tables;
Consultar estrutura de tabela específica
desc tb_user;
Consulte a instrução específica de criação de tabela para ver os comentários claramente
show create table tb_user;
Modificar tabela
Adicionar campo
alter table tb_user add password varchar(50) comment '密码';
Modificar nomes e tipos de campos
alter table tb_user 旧字段名 新字段名 varchar(255);
Excluir campo
alter table tb_user drop username;
Modificar nome da tabela
alter table 旧表名 rename to 新表名;
Excluir tabela
drop table if exists 表名;
Exclua a tabela e recrie a tabela (todos os campos são excluídos e precisam ser recriados)
truncate table 表名;
3.SQL-DML (adição, exclusão e modificação)
3.1 Inserir
Inserir dados (inserir com base nos campos)
insert into tb_user (id, name, age, gender) values (1,'张三',10,'男');
Para inserir tudo, todos os campos devem ser incluídos e em ordem
insert into tb_user values (2,'李四',10,'男');
3.2 Modificação
A palavra "onde" representa a condição (se não houver condição, afetará todos os dados)
update tb_user set name = '王五' where id = 1;
3.3 Excluir
delete from tb_user where id = 1;
4.SQL-DQL (verificar)
4.1 Consulta básica
Consultar todos os campos
select * from 表名;
Consultar campos especificados
select name,id,gender from 表名;
Consulte o campo especificado e crie um alias
select workaddress as '工作地址' from 表名;
Consulte o campo especificado e execute o processamento de desduplicação
select distinct workaddress as '工作地址' from 表名;
4.2 Consulta condicional
Condições para transportar
símbolo do operador de comparação | Função |
---|---|
> | mais do que o |
>= | maior ou igual a |
< | menor que |
<= | menos que ou igual a |
= | igual |
<> ou! = | não é igual a |
ENTRE E ... | Dentro de um determinado intervalo (incluindo valores mínimos e máximos) |
EM(...) | O valor na lista após em, selecione um entre mais de um |
Espaço reservado para LINK | Correspondência difusa ('_' corresponde a um único caractere, '%' corresponde a qualquer número de caracteres) |
É NULO | Um campo que é NULL |
Operadores lógicos | Função |
---|---|
E 或 && | E (várias condições são verdadeiras ao mesmo tempo) |
OU 或 || | Ou (uma das múltiplas condições arbitrárias é verdadeira) |
NÃO ou! | Não |
Todos os dados com idade inferior a 20 anos
select * from emp where age < 20;
Consultar dados que não carregam um determinado campo
select * from emp where idcard is null;
Use com não
select * from emp where idcard is not null;
Uso de entre e (consultar dados entre 15 e 30 anos)
select * from emp where age between 15 and 30;
O uso de in (os dois comandos a seguir têm o mesmo efeito)
select * from emp where age=18 or age=20 or age=90;
select * from emp where age in(18,20,90);
Correspondência difusa (os dados cujo nome é consultado têm 3 caracteres)
select * from emp where name like '___';
4.3 Consulta de função de agregação
Funções agregadas comuns
Nome da função | Função |
---|---|
contar | número total |
máx. | valor máximo |
min | valor mínimo |
média | valor médio |
soma | Soma |
gramática:
select 聚合函数(字段列表) from 表名;
Consultar a soma de todos os dados com idade<30
select count(*) from emp where age < 30;
Consultar idade média
select avg(age) from emp;
4.4 Consulta de grupo
gramática
select 字段列表 from 表名 where 条件 group by 分组字段名 having 分组后过滤条件;
A diferença entre onde e ter:
O tempo de execução é diferente : onde está filtrando antes do agrupamento, se a condição where não for atendida, o agrupamento não será participado; enquanto está filtrando os resultados após o agrupamento.
As condições de julgamento são diferentes : onde não se pode julgar a função agregada, mas quem pode.
De acordo com o agrupamento por gênero, conte o número de funcionários do sexo masculino e do sexo feminino
select gender,count(*) from emp group by gender ;
De acordo com o agrupamento por gênero, calcule a idade média dos funcionários do sexo masculino e das funcionárias
select gender, avg(age) from emp group by gender;
Consultar funcionários com idade inferior a 45 anos, agrupá-los de acordo com seus endereços de trabalho e obter os endereços de trabalho onde o número de funcionários é maior ou igual a 3
address_count é o alias obtido contando o número
select workaddress,count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;
4.5 Consulta de classificação
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
Padrão de classificação ascendente (asc)
Classifique por idade em ordem crescente
select * from emp order by age;
Classificar em ordem decrescente
select * from emp order by age desc;
4.6 Consulta de paginação (MySql)
Bancos de dados diferentes podem ter campos diferentes
select 字段列表 from 表名 limit 起始索引,查询记录数;
Consulte os primeiros dez dados
select * from emp limit 0,10;
4.7.Sequência de execução DQL
①:de
②:onde
③:agrupar por, tendo
④: selecione
⑤:encomendar por
⑥:limite
5.SQL-DCL
A tabela de usuários do banco de dados mysql está na tabela de usuários no banco de dados mysql.
5.1 Gerenciamento de usuários
Criar usuário
O usuário recém-criado não tem nenhuma permissão
Só pode ser acessado em localhost
create user 'itcast'@'localhost' identified by '123456';
Configure qualquer acesso de host
create user 'itcast'@'%' identified by '123456';
alterar a senha
alter user 'itcast'@'localhost' identified with mysql_native_password by '123';
excluir usuários
drop user 'itcast'@'localhost';
5.2 Direitos do usuário
Permissões de consulta
show grants for 'root'@'localhost';
Permissão concedida
Conceda a um usuário todas as permissões em um banco de dados específico:
Isso concederá ao usuário todas as permissões no banco de dados especificado, incluindo SELECT, INSERT, UPDATE, DELETE, etc.
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Conceda permissões específicas a um usuário em uma tabela específica:
Isso concederá apenas ao usuário permissões SELECT e INSERT na tabela especificada.
GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';
Conceda ao usuário determinadas permissões em todos os bancos de dados:
Isso concederá ao usuário permissão para realizar operações como CREATE, DROP e ALTER em todos os bancos de dados.
GRANT CREATE, DROP, ALTER ON *.* TO 'username'@'localhost';
Conceda ao usuário todas as permissões em todos os bancos de dados:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
revogar permissão
Revogar todas as permissões de um usuário em um banco de dados específico:
Isto revogará todas as permissões do usuário no banco de dados especificado.
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';
Revogar as permissões específicas de um usuário em uma tabela específica:
Isso revogará as permissões SELECT e INSERT do usuário na tabela especificada.
REVOKE SELECT, INSERT ON database_name.table_name FROM 'username'@'localhost';
Revogue todas as permissões de usuário em todos os bancos de dados:
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';