[MySQL] 5 minutos para aprender operações básicas de banco de dados (1)

(O texto completo tem cerca de 5.500 palavras e o tempo de leitura previsto é de 5 minutos)


1. O que é SQL?

linguagem de consulta estruturada: linguagem de consulta estruturada

classificação:

1) A linguagem de definição de dados DDL (Data Definition Language) é
usada para definir objetos de banco de dados: bancos de dados, tabelas, colunas, etc. Palavras-chave: criar, eliminar, alterar, etc.
2) A linguagem de manipulação de dados DML (Data Manipulation Language) é
usada para adicionar, excluir e modificar dados nas tabelas do banco de dados. Palavras-chave: inserir, excluir, atualizar, etc.

3) A linguagem de consulta de dados DQL (Data Query Language) é
usada para consultar os registros (dados) da tabela no banco de dados. Palavras-chave: selecionar, onde, etc.
4) A linguagem de controle de dados DCL (Data Control Language) (compreender) é
usada para definir direitos de acesso ao banco de dados e níveis de segurança, e criar usuários. Palavras-chave: GRANT, REVOKE, etc.

2. Sobre as operações CRUD do banco de dados

#Create
create database hzyc;
create database if not exists hzyc98 character set gbk;
#Retrieve
show databases;
show create database hzyc98;
#Update
alter database hzyc98 character set gbk;
#Delete
drop database hzyc98;
drop database if exists hzyc98; 
#查看当前使用的数据库
select database();
show tables;
use hzyc98

1. Lista de operação:

O nome / cabeçalho da tabela é: zoomlist

#查
show tables; -- show tables_in_hzyc98
desc zoomlist;

#增
create table zoomlist (
	Name  varchar(30),
	Age	  int,
	ID	  int,
	Height double(5,1)
)

#删
drop table if exists zoomlist;

#改
alter table zoomlist rename to newzoomlist;
alter table zoomlist character set gbk;
alter table zoomlist add Name varchar(20);#加列
alter table zoomlist change Age newAge int;
alter table zoomlist modify Age char(8);
alter table zoomlist drop Name;

/*设置类型:*/
 - intdouble(5,1)varchar(20) 
 - date 	#yyyy-MM-dd
 - datetime #yyyy-MM-dd HH:mm:ss 
 - timestamp#时间戳 yyyy-MM-dd HH:mm:ss

2. Operar os dados da tabela:

#除了数字,其他都需要引号来赋值
insert into zoomlist (Name, Age, ID, Height) value('美洲豹',5,'20201207',3.2);
insert into zoomlist ('美洲豹',5,'20201207',3.2);

#删除
delete from zoomlist where [条件];
delete from zoomlist;
TRUNCATE TABLE zoomlist;

#修改
update zoomlist set Name = '大笨象' Age = 12 where address = '深圳';
update zoomlist set address = '深圳';

uma consulta

#查询
#尽量不要用 * 先desc一下表里面有啥,然后在决定展示什么东西。
SELECT * FROM zoomlist; 
SELECT Name,Age FROM zoomlist;	 --只显示某个列,方便查看!
SELECT DISTINCT Name FROM zoomlist; --去除结果中[完全重复]的

SELECT Name,score1,score2,scroe1+scroe2 FROM zoomlist;--as:自定义名字展示,也可以不写as
SELECT Name,scroe1+IFNULL(scroe2,0) 总分 FROM zoomlist; --ifnull遇到没有值的直接给赋值为0
SELECT Name,score1,score2,scroe1+IFNULL(scroe2,0) AS 总分 --显示表头
FROM zoomlist,peoplelist; --从zoomlist、peoplelist里面获取

b. condições locais:

* ><<=>==!=<>--不等号
* andornot --关键字比&&、||、!好用推荐
* BETWEEN...AND --范围内都符合就行
* IN( 集合) --特定值的范围
* LIKE:模糊查询(1)_:单个任意字符;(2%:多个任意字符
* IS NULL

例子:
select Name, Age from Student where age between 12 and 20;
select Name, Age from Student where age in (12,14,16,18);
select Name, Age from Student where name like '%牛%'; --查名字里面包含了牛的学生
select Name, Age from Student where name is not null; -- 查询学生:名字空的不查

Três, consulta

1. Classificar consulta

select * from employee order by age;
select * from employee order by age asc; --升序
select * from employee order by age desc; --降序
select * from employee order by age desc height desc; --第一个一样的时候,才会用第二个方法排序(age降序,身高降序)

2. Funções agregadas (cálculo de colunas)

Excluindo dados nulos, e dados nulos não participarão do cálculo, nenhum erro será relatado!

  1. contar: contar o número
  2. min, max, sum, avg: avaliação
select count(*) from student;
select count(ifnull(age,20)) from student; 
select count(age) from student;--如果没有就不记录
select count(id) from student; --我们一般选用主键来统计个数

select max(age) from student;
select min(age) from student;
select sum(age) from student;
select avg(age) from student;

3. Consulta de grupo

Depois de agrupar por dois grupos diferentes, eles não podem mais ver um indivíduo independente.

  • Campos a serem consultados após o agrupamento: campos de agrupamento, funções de agregação.
  • A diferença entre onde e ter?
    • Onde é definido antes do agrupamento e tendo é definido após o agrupamento;
    • Onde não reúna as condições não participe do agrupamento, se não reúna as condições não será exibido;
    • Apenas o ter pode ser seguido pelo julgamento da função agregada.
select sex,count(name) from employee group by sex having count(name)<6;

select sex,count(name) from employee where name = '张四' group by sex ;

4. Classificar consulta

limit é um dialeto do MySQL, usado para paginação

SELECT * FROM student LIMIT 0,5; -- 第1页,从0索引开始,读5个数据

SELECT * FROM student LIMIT 7,10; -- 第2页,从7索引开始(第8个数据),读10个数据

Quatro, restrições

  • restrição:
    1. Restrição de chave primária: chave primária
    2. Restrição não vazia: não nula
    3. A única restrição: única
    4. Restrição de chave estrangeira: chave estrangeira

1. Restrição não vazia: não nula

-- 建表时添加非空约束:
 create table employee(
 	name char(30),
 	sex char(8) not null
 )
 alter table employee modify sex char(8) not null; --添加非空约束
 alter table employee modify sex char(8); --破除非空约束
 

Instância de restrição não vazia

2. Restrição única

Só pode haver um valor nulo, não mais;
excluir restrições só pode usar o índice de soltar para excluir restrições exclusivas

-- 建表时添加唯一约束:
 create table employee(
 	name char(30),
 	sex char(8),
 	score int unique --分数要唯一
 )
 
--添加唯一约束
alter table employee modify name char(8) unique;
 
--破除唯一约束
-- alter table employee modify sex char(8); 不可用
--破除name身上的unique约束用drop index除去索引
alter table employee drop index name; 

Operação de exemplo:

A restrição única não pode ser modificada diretamente
drop exclui a restrição única com sucesso

3. Restrição de chave primária: chave primária

Uma tabela possui apenas uma chave primária, que não é vazia e é única
como a identificação única de registros, equivalente ao índice

-- 建表时添加主键约束:
 create table employee(
 	id int  primary key, --给id加上主键约束
 	name char(30),
 )
 
--添加唯一约束
alter table employee modify id int primary key;
 
--破除唯一约束
-- alter table employee modify id int; 不可用!
--破除id身上的primary key约束只能用drop primary key
alter table employee drop primary key; 

4. Crescimento automático: auto_increment

Útil apenas para valores e geralmente pode ser colocado na chave primária para crescimento automático

-- 建表时添加auto_increment:
 create table employee(
 	id int auto_increment, --给id加上auto_increment
 	name char(30),
 )
 
--添加auto_increment,自动从1开始
alter table employee modify id int auto_increment;
--设置初值
alter table employee auto_increment = 100;
 
--破除auto_increment
alter table employee modify id int; 

Cinco, resumo

Aprendemos o que é SQL, fizemos uma introdução simples e também listamos algumas operações básicas do MySQL, bem como consultas e restrições.

Mas acabei de conhecer o MySQL, portanto, os operadores básicos são relativamente novos e preciso aprender mais e praticar mais para obter o verdadeiro conhecimento.

No futuro, também aprenderemos sobre os múltiplos relacionamentos do MySQL, consultas de múltiplas tabelas, transações (não tenho certeza do que são), instruções JDBC, druid de pool de conexão de banco de dados, JDBCTemplate ... Ainda há muitas coisas para aprender, mas a tarefa ainda é Está em resolver as coisas básicas e consolidar a base é a última palavra! ! !

Exemplo de erro:

Se você não escrever nomes de coluna ao adicionar dados, você deve fornecer todos os valores de coluna, caso contrário, um erro será relatado!
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43801418/article/details/110820203
Recomendado
Clasificación