Un artículo para comprender los conceptos básicos de la base de datos MySQL y la adición, eliminación y modificación de tablas MySQL (primario)

contenido

1. Funcionamiento de la base de datos

1.1 Mostrar la base de datos actual

1.2 Crear una base de datos

1.3 Uso de la base de datos

1.4 Eliminar la base de datos

2. Tipos de datos comunes

2.1 Tipos numéricos

2.2 Tipo de cadena

2.3 Tipo de fecha

3. Operaciones de mesa

3.1 Ver la estructura de la tabla 

3.2 Crear una tabla 

3.3 borrar tabla

4. Agregar, eliminar, buscar y modificar (CRUD) de la tabla MySQL

4.1 Nuevo (crear)

4.2 Consulta (recuperar) 

4.3 Alias

4.4 Deduplicación (distinta)

4.5 ORDEN POR

4.6 Consulta condicional (dónde)

4.7 Consulta de paginación (LIMIT) 

4.8 Modificar (actualizar)

4.9 Borrar (eliminar) 


1. Funcionamiento de la base de datos

1.1 Mostrar la base de datos actual

SHOW DATABASES;

1.2 Crear una base de datos

gramática:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification]...]

create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

ilustrar:

· Capitalizar palabras clave

· [ ] es opcional

JUEGO DE CARACTERES: especifica el juego de caracteres utilizado por la base de datos

COLLATE: especifica las reglas de validación para el  conjunto de caracteres de la base de datos

Ejemplo:

Cree una base de datos llamada db_name1

create database db_name1;

Nota: cuando creamos una base de datos sin especificar el juego de caracteres y las reglas de verificación, el sistema usa el juego de caracteres predeterminado: utf8, y las reglas de verificación son: utf8_general_ci

· Si no hay una base de datos de db_name2 en el sistema, cree una base de datos llamada db_name2, si la hay, no se creará

create database if not exists db_name2;

· Si no hay una base de datos de db_name3 en el sistema, cree una base de datos de db_name3 con el juego de caracteres utf8mb4, si lo hay, no se creará

create database if not exists db_name3 character set utf8mb4;

Nota: la codificación utf8 de MySQL no es utf8 real, no contiene algunos caracteres chinos complejos, la codificación utf8 real de MySQL es para usar utf8mb4, se recomienda usar utf8mb4 

1.3 Uso de la base de datos

usar el nombre de la base de datos; 

Ejemplo:

use db_name3;

1.4 Eliminar la base de datos

gramática:

DROP DATABASE [IF EXISTS] db_name;

Ejemplo:

drop database if exists db_name1;
drop database if exists db_name2;

Nota: Después de eliminar la base de datos, la base de datos correspondiente no se puede ver en el interior y todas las tablas y datos que contiene se eliminan. 

2. Tipos de datos comunes

2.1 Tipos numéricos

          Entero y flotante:

tipo de datos Talla ilustrar Tipo de Java correspondiente
PUNTO[(M)] M especifica el número de dígitos, el valor predeterminado es 1 Números binarios, M varía de 1 a 64 y valores almacenados de 0 a 2^M-1 El booleano de uso común corresponde a BIT. En este momento, el valor predeterminado es 1 bit, y solo se pueden almacenar 0 y 1.
TINYINT 1 byte Byte
SMALINT 2 bytes Pequeño
EN T 4 bytes Entero
EMPEZANDO 8 bytes Largo
FLOTANTE(M,D) 4 bytes Precisión simple, M especifica la longitud, D especifica el número de lugares decimales, se producirá pérdida de precisión Flotador
DOBLE(M,D) 8 bytes Doble
DECIMAL(M,D) M/D máx +2 Doble precisión, M especifica la longitud, D representa el número de lugares decimales, el valor exacto BigDecimal
NUMÉRICO(M,D) M/D máx +2 igual que DECIMAL BigDecimal

2.2 Tipo de cadena

tipo de datos Talla ilustrar Tipo de Java correspondiente
VARCHAR(TAMAÑO) 0-65535 bytes cadena de longitud variable Cuerda
TEXTO 0-65535 bytes datos de texto largo Cuerda
TEXTO MEDIO 0-16777215 bytes datos de texto de longitud media Cuerda
GOTA 0-65535 bytes datos de texto largo en forma binaria byte[]

2.3 Tipo de fecha

tipo de datos Talla ilustrar Tipo de Java correspondiente
TIEMPO DE DATOS 8 bytes El rango es de 1000 a 9999, no se realizará ninguna recuperación ni conversión de zona horaria

java.util.Data

java.sql.Timestamp

MARCA DE TIEMPO 4 bytes Rango de 1970 a 2038, recuperar automáticamente la zona horaria actual y convertir

java.util.Data

java.sql.Timestamp

3. Operaciones de mesa

Cuando necesite manipular las tablas en la base de datos, primero debe usar la base de datos :

use db_name;

3.1 Ver la estructura de la tabla 

nombre de la tabla de descripción; 

Ejemplo:   

3.2 Crear una tabla 

gramática:

create table table_name(
    field1 datatype,
    field2 datatype,
    field3 datatype
);

Puede usar comentarios para agregar descripciones de campo

Ejemplo:

create table student (
    id int,
    name varchar(10) comment '姓名',
    age int comment '年龄',
    sex varchar(1)
);

3.3 borrar tabla

Formato de sintaxis:

DROP [TEMPORAL] TABLE [SI EXISTE] tab_name; 

Ejemplo:

-- 删除tab_name1表
drop table tab_name1;
-- 如果tab_name2表存在,则删除
drop table if exists tab_name2;

4. Agregar, eliminar, buscar y modificar (CRUD) de la tabla MySQL

Comentario: puede usar " --espacio + descripción " para hacer comentarios en SQL

CRUD es: agregar (crear), consultar (recuperar), actualizar (updata), eliminar (eliminar)

4.1 Nuevo (crear)

gramática: 

INSERT
    [INTO] table_name [(column [, column]...
) ]
VALUES
    (value_list) [, (value_list)]...value_list: value,
    [, value]...

Tabla de casos:

create table student (
    id int,
    name varchar(10) comment '姓名',
    age int comment '年龄',
    sex varchar(1) comment '性别'
);

Datos de una sola fila + inserción de columna completa:

-- value_list数量必须和表的列的数量和顺序一致
insert into student values (1,'小张',20,'男');
insert into student values (2,'小红',21,'女');   

Datos de varias filas + inserción de columna especificada:

insert into
    student (id, name, age)
values
    (3, '小花', 22),
    (4, '小赵', 25);

4.2 Consulta (recuperar) 

gramática:

SELECCIONE

 [DISTINTO] {* | {columna [, columna] ...}

 [DESDE table_name]

 [DONDE ...]

 [ORDENAR POR columna [ASC | DESC], ...]

 LÍMITE ...

Tabla de casos:

-- 创建成绩表
create table student_score (
    id int,
    name varchar(10),
    chinese decimal(3, 1),
    math decimal(3, 1),
    english decimal(3, 1)
);

-- 往成绩表中插入数据
insert into
    student_score (id, name, chinese, math, english)
values
    (1, '小张', 60.5, 70, 85),
    (2, '小花', 85.5, 95, 96),
    (3, '小赵', 76, 88, 92),
    (4, '小王', 85, 64, 73);

Consulta de columna completa:

-- *代表全部列
select * from student_score;

resultado:

Especificar consulta de columna:

select
    id,
    name,
    chinese
from
    student_score;

resultado:

El campo de consulta es una expresión:

expresión contiene un campo

-- 表达式包含一个字段
select
    id,
    name,
    chinese + 10,
    math -10,
    english -5
from
    student_score;

resultado:

La expresión no contiene campos 

-- 表达式不包含字段
select id,name,10 from student_score;

resultado:

La expresión contiene múltiples campos 

-- 表达式含多个字段
select
    id,
    name,
    chinese + math + english
from
    student_score;

resultado:

4.3 Alias

Crea un alias para la columna especificada en el resultado de la consulta, lo que indica que en el conjunto de resultados devuelto, el alias se usa como el nombre de la columna.

SELECCIONE la columna [AS] alias_name [...] FROM table_name; 

La palabra clave es: como, pero como se puede omitir

Ejemplo:

-- 别名作为列名返回
select
    id,
    name,
    chinese + math + english sum
from
    student_score;

resultado:

4.4 Deduplicación (distinta)

Use la palabra clave DISTINCT para deduplicar una columna de datos

-- 85 puntos en chino se repiten    

seleccione chino de student_score;

-- resultado de la deduplicación

seleccione chino distinto de student_score;

4.5 ORDEN POR

gramática:

-- ASC está en orden ascendente (de menor a mayor)

-- DESC para orden descendente (de mayor a menor)

-- el valor predeterminado es ASC

SELECCIONE... DESDE table_name [DONDE...]

ORDENAR POR columna [ASC|DESC], [...];

1. El orden devuelto por una consulta sin una cláusula order by no está definido

2. Los datos nulos se ordenan, se consideran más pequeños que cualquier valor, ascendiendo en la parte superior, descendiendo en la parte inferior

Ejemplo: Ordenar por grados de idioma en orden ascendente :

select
    *
from
    student_score
order by
    chinese;

resultado:

3. Ordenar de forma descendente usando expresiones y alias

select
    id,
    name,
    chinese + math + english sum
from
    student_score
order by
    sum desc;

resultado:

4. Se pueden ordenar varios campos y la prioridad de clasificación sigue el orden de escritura

select
    *
from
    student_score
order by
    chinese,
    math,
    english desc;

resultado:

4.6 Consulta condicional (dónde)

Operador de comparación:

operador ilustrar
>,>=,<,<= mayor que, mayor o igual que, menor que, menor o igual que
= Igual, NULL no es seguro, el resultado de NULL=NULL es NULL
<=>

Igual, NULL seguro, NULL<=>NULL da como resultado VERDADERO

!=,<> no igual a
ENTRE a0 Y a1 coincidencia de rango, [a0,a1]
EN(opción1......) Devuelve verdadero si es alguna de las opciones.
ES NULO es nulo
NO ES NULO no nulo
ME GUSTA Coincidencia aproximada, % significa cualquier número de caracteres arbitrarios; _ significa cualquier carácter

Operadores logicos:

operador ilustrar
Y Múltiples condiciones deben ser verdaderas para que el resultado sea verdadero
O Cualquiera de las condiciones es verdadera, el resultado es verdadero
NO la condición es verdadera, el resultado es falso

Aviso:

1. Donde las condiciones pueden usar expresiones, pero no pueden usar alias

2. Y tiene prioridad sobre O 

Ejemplo:

· Consulta básica:

-- 查询语文成绩小于70分的同学
select id,name,chinese from student_score where chinese<70;
--查询语文成绩比英语成绩低的同学
select
    id,
    name,
    chinese,
    english
from
    student_score
where
    chinese < english;
-- 查询总分低于250分的同学
select
    id,
    name,
    chinese + math + english
from
    student_score
where
    chinese + math + english < 250;

resultado:

· Y 与 O:

-- 查询语文和英语成绩都大于80分的同学
select
    *
from
    student_score
where
    chinese > 80
    and english > 80;
-- 查询数学成绩大于80或者英语成绩小于80的同学
select
    *
from
    student_score
where
    math > 80
    or english < 80;

· Consulta de rango:

-- 查询语文成绩在70到90分之间的学生
select
    *
from
    student_score
where
    chinese between 70
    and 90;

· Consulta difusa: LIKE

-- 查询名字为 小... 同学的成绩
select
    *
from
    student_score
where
    name like '小%';

4.7 Consulta de paginación (LIMIT) 

gramática:

-- el índice de inicio es 0

-- a partir de 0, filtrar n resultados

SELECCIONE... DESDE nombre_tabla [DONDE...] [ORDENAR POR...] LÍMITE n;

-- a partir de s, filtrar n resultados

SELECCIONE... DESDE nombre_tabla [DONDE...] [ORDENAR POR...] LÍMITE s, n;

-- A partir de s, filtrar n resultados, que es más claro que el segundo uso, se recomienda usar

SELECCIONE... DESDE nombre_tabla [DONDE...] [ORDENAR POR...] LÍMITE n DESPLAZAMIENTO s;

Ejemplo: consulta los resultados de la puntuación china en segundo lugar :

select
    id,
    name,
    chinese
from
    student_score
order by
    chinese desc limit 1,1;

resultado:

4.8 Modificar (actualizar)

gramática:

ACTUALIZAR table_name SET columna = expr [, columna = expr ...]

  [DONDE...] [ORDENAR POR...] [LIMITAR...]

Ejemplo:

Modifique el puntaje de idioma de Xiaohua a 80:

update student_score set chinese=80 where name='小花';

resultado:

  

4.9 Borrar (eliminar) 

gramática:

ELIMINAR DESDE nombre_tabla [DONDE...] [ORDENAR POR...] [LIMITAR...]

Ejemplo:

Eliminar las calificaciones de Xiaohua:

delete from
    student_score
where
    name = '小花';

resultado:

Eliminar los datos de toda la tabla:

delete from student_score;

resultado:

Supongo que te gusta

Origin blog.csdn.net/qq_58710208/article/details/122172316
Recomendado
Clasificación