Base de datos MySQL: resumen de conceptos básicos (descripción general, SQL, funciones, restricciones, consultas de varias tablas, transacciones)

Tabla de contenido

Descripción general

concepto

MySQL iniciando y deteniéndose

conexión de cliente

Base de datos relacional (RDBMS)

SQL

tipo de datos

DDL

DML 

DQL

DCL 

función

Funciones de cadena

función numérica

función de fecha

función de proceso

restricción

Consulta de varias tablas

Relación de varias tablas

Producto cartesiano

unir internamente

unión externa

autoconexión 

consulta sindical

subconsulta

asuntos


Descripción general

concepto

  1. Base de datos (DB): un almacén donde se almacenan los datos.
  2. Sistema de gestión de bases de datos (DBMS): software de gran tamaño que manipula y gestiona bases de datos
  3. Sistema de base de datos (DBS): es un sistema que consta de una base de datos y su software de gestión.
  4. SQL: un lenguaje de programación para operar bases de datos relacionales, un conjunto de estándares

MySQL iniciando y deteniéndose

puesta en marcha

inicio neto mysql80

detener

parada neta mysql80

conexión de cliente

comando cmd

mysql [-h 127.0.0.1] [-P 3306] -u raíz -p

Base de datos relacional (RDBMS)

Una base de datos basada en un modelo relacional y compuesta por múltiples tablas bidimensionales interconectadas.

Características:

  1. Utilice tablas para almacenar datos en un formato unificado para facilitar el mantenimiento.
  2. Utilizando operación en lenguaje SQL, estándares unificados y fácil de usar. 

SQL

tipo de datos

Tipos numéricos: principalmente números enteros de diferentes tamaños.

Tipo de cadena: aclara principalmente la diferencia entre char (cadena de longitud fija) y varchar (cadena de longitud variable).

Tipo de fecha: FECHA de uso común. Tenga en cuenta que la fecha debe escribirse entre comillas simples:

tipo describir tamaño Formato alcance
FECHA valor de fecha 3 AAAA-MM-DD 1000-01-01 a 9999-12-31

DDL

Lenguaje de definición de datos Lenguaje de definición de datos, utilizado para definir objetos de datos (bases de datos, tablas, campos)

Operaciones de base de datos

1. Consultar todas las bases de datos: MOSTRAR BASES DE DATOS
2. Consultar la base de datos actual: SELECCIONAR BASE DE DATOS()
3. Crear: CREAR BASE DE DATOS SI NO EXISTE nombre de la base de datos DEFAULT CHARSET juego de caracteres COLLATE intercalación;

4. Eliminar: DROP DATABASE IF EXISTS nombre de la base de datos;

5. Uso: USE el nombre de la base de datos;

Operaciones de tabla

1. Consultar todas las tablas de la base de datos actual.

SHOW TABLES;

2. Estructura de la tabla de consultas

DESC 表名;

3. Consultar la declaración de creación de tabla de la tabla especificada.

SHOW CREATE TABLE 表名;

4.Crear tabla

CREATE TABLE 表名(
    字段1 字段1类型[COMMENT 字段1注释],
    字段2 字段2类型[COMMENT 字段2注释],
    字段3 字段3类型[COMMENT 字段3注释],
    ......
    字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];

5. Agregar campos

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释];

6. Modificar el tipo de datos

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

7. Modificar nombres de campos y tipos de campos.

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释];

8. Eliminar campos

ALTER TABLE 表名 DROP 字段名;

9. Modificar el nombre de la tabla

ALTER TABLE 表名 RENAME TO 新表名;

10. Eliminar tabla

DROP TABLE [IF EXISTS] 表名;

11. Elimine la tabla especificada y vuelva a crear la tabla.

TRUNCATE TABLE 表名;

DML 

El nombre completo en inglés de DML es Lenguaje de manipulación de datos (lenguaje de manipulación de datos), que se utiliza para agregar, eliminar y modificar registros de datos en tablas de la base de datos.

1. Agregue datos al campo especificado:

INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...);

2. Agregue datos a todos los campos:

INSERT INTO 表名 VALUES(值1,值2,...);

3. Agregue datos en lotes:

INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2,...),
                                           (值1,值2,...),
                                           (值1,值2,...),...;
INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),...;

4. Modificar datos:

UPDATE 表名 SET 字段名1=值1,字段名2=值2,... [WHERE 条件];

5. Eliminar datos:

DELETE FROM 表名 [WHERE 条件];

DQL

El nombre completo en inglés de DQL es Data Query Language, que es un lenguaje de consulta de datos que se utiliza para consultar registros en tablas en bases de datos.

  • consulta básica
  • Consulta condicional (DONDE)
  • Funciones de agregación (recuento, máximo, mínimo, promedio, suma)
  • Consulta de grupo (GROUP BY)
  • Ordenar consulta (ORDENAR POR)
  • Consulta de paginación (LÍMITE)

Mencione brevemente algunos puntos de conocimiento que son fáciles de olvidar: 

1. Palabra clave para eliminar registros duplicados: distinta

SELECT DISTINCT 字段列表 FROM 表名;

 2. La diferencia entre dónde y tener (palabra clave de consulta grupal)

  • El tiempo de ejecución es diferente: donde se filtra antes de agrupar, si no se cumple la condición donde, no se participará en la agrupación; mientras que se filtra los resultados después de la agrupación.
  • Las condiciones de juicio son diferentes: dónde no se puede juzgar la función agregada, pero si se puede.

Orden de ejecución: donde > función agregada > tener

3. En la consulta de clasificación: si se trata de una clasificación de varios campos, cuando el valor del primer campo sea el mismo, se ordenará el segundo campo.

4.Consulta de paginación:

SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;

El índice inicial comienza desde 0, índice inicial = (número de página de consulta-1) * número de registros mostrados en cada página. La consulta de paginación
es un dialecto de la base de datos. Diferentes bases de datos tienen diferentes implementaciones. En MySQL, es LIMIT
si el primero Se consulta la página de datos. , el índice inicial se puede omitir, abreviado directamente como límite 10

5. Orden de escritura y orden de ejecución de declaraciones de consulta:

Orden de escritura:

SELECCIONE
    la lista de campos
DE
    la lista de nombres de tabla
DONDE
    la lista de condiciones
GRUPO POR
    lista de campos de agrupación
TENER
    lista de condiciones posteriores a la agrupación
ORDENAR POR
    lista de campos de clasificación
LIMITAR
    parámetros de paginación

-------------------------------------------------- ------------

Orden de ejecución:

DESDE
    la lista de nombres de tabla
DONDE
    lista de condiciones
GRUPO POR
    lista de campos de agrupación
TENER
    lista de condiciones posteriores a la agrupación
SELECCIONAR
    lista de campos
ORDENAR POR
    lista de campos de clasificación
LIMITAR
    parámetros de paginación

DCL 

El nombre completo en inglés de DCL es Data Control Language, que se utiliza para administrar los usuarios de la base de datos y controlar los permisos de acceso a la base de datos.

1. Consultar usuarios

USE mysql;
SELECT * FROM user;

2.Crear usuario

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

3. Modificar la contraseña del usuario

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

4. Eliminar usuario

DROP USER '用户名'@'主机名';

Aviso:

  • El nombre de host puede utilizar el carácter comodín '%'.
  • Este tipo de desarrollador de SQL rara vez lo utiliza y lo utiliza principalmente el DBA (Administrador de bases de datos). para una breve comprensión

5. Permisos de consulta

SHOW GRANTS FOR '用户名'@'主机名';

6. Conceder permisos

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

7. Revocar permisos

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

Aviso:

  • Utilice comas para separar varios permisos.
  • Al autorizar, el nombre de la base de datos y el nombre de la tabla pueden tener un comodín *, que representa todos

función

Funciones de cadena

función Función
CONCAT(S1,S2,...Sn) Concatenación de cadenas, concatenar S1, S2,...Sn en una cadena
INFERIOR(cadena) Convertir todas las cadenas str a minúsculas
SUPERIOR(cadena) Convertir todas las cadenas str a mayúsculas
LPAD(cadena,n,pad) Relleno izquierdo, use el pad de cuerda para rellenar el lado izquierdo de str para alcanzar n longitudes de cuerda

RPAD(cadena,n,pad)

Relleno derecho, llene el lado derecho de str con pad de cuerda para alcanzar n longitud de cuerda
RECORTAR(cadena) Eliminar los espacios iniciales y finales de la cadena
SUBCADE(cadena,inicio,len) Devuelve una cadena de longitud len desde la posición inicial de la cadena str

función numérica

función Función
TECHO(x) Redondeado
PISO(x) Redondear a la baja
MOD(x,y) Devuelve el módulo de x/y
CORRIÓ() Devuelve un número aleatorio entre 0 y 1, con decimales aleatorios y excluyendo 0 y 1.
REDONDO(x,y) Encuentre el valor redondeado del parámetro x, conservando y los decimales

función de fecha

función Función
FECHA ACTUAL() Volver fecha actual
TIEMPO CORTE() Volver la hora actual
AHORA() Devuelve la fecha y hora actuales
AÑO(fecha) Obtener el año de la fecha especificada
MES(fecha) Obtener el mes de la fecha especificada
DÍA(fecha) Obtener la fecha de la fecha especificada
DATE_ADD(fecha, tipo de expresión INTERVALO) Devuelve un valor de fecha/hora más un valor de hora expr.
DADODIFF(fecha1,fecha2) Devuelve el número de días entre la hora de inicio fecha1 y la hora de finalización fecha2

función de proceso

Funciones similares al operador ternario en lenguaje C

función Función
SI(valor,t,f) Si el valor es verdadero, devuelve t; de lo contrario, devuelve f
IFNULL(valor1,valor2) Si el valor no está vacío, devuelve el valor1; de lo contrario, devuelve el valor2
CASO CUANDO [val1] ENTONCES [res1] ... ELSE [predeterminado] FINAL Si val1 es verdadero, devuelve res1,... de lo contrario, devuelve el valor predeterminado
CASO [expr] CUANDO [val1] ENTONCES [res1] ... ELSE [predeterminado] FINAL Si el valor de expr es igual a val1, devuelve res1,...de lo contrario, devuelve el valor predeterminado

restricción

  1. Concepto: Las restricciones son reglas que actúan sobre los campos de una tabla para limitar los datos almacenados en la tabla.
  2. Finalidad: Garantizar la exactitud, validez e integridad de los datos de la base de datos.
  3. Clasificación:
restricción describir Palabras clave
restricción no nula Los datos de este campo no pueden ser NULL NO NULO
restricción única Asegúrese de que todos los datos en este campo sean únicos y no duplicados. ÚNICO
restricciones de clave primaria La clave principal es la identificación única de una fila de datos y debe ser única y no vacía. CLAVE PRIMARIA
Restricciones predeterminadas Al guardar datos, si no se especifica el valor de este campo, se utiliza el valor predeterminado POR DEFECTO
Verificar restricciones (después de la versión 8.0.16) Guardar valores de campo que cumplan una determinada condición CONTROLAR
restricciones de clave externa Se utiliza para establecer una conexión entre los datos de las dos tablas para garantizar la coherencia e integridad de los datos. CLAVE EXTERNA

Para restricciones generales, podemos entender su uso mirando los ejemplos anteriores:

  •  Complete la creación del formulario según sea necesario:
Nombre del campo Significado del campo Tipo de campo Restricciones palabra clave de restricción
identificación ID de identificación única En t Clave primaria y crece automáticamente. CLAVE PRIMARIA,AUTO_INCREMENT
nombre Nombre varchar(10) No vacío y único NO NULO, ÚNICO
edad edad En t Mayor que 0 y menor o igual a 120 CONTROLAR
estado estado carácter(1) Si no se especifica este valor, el valor predeterminado es 1 POR DEFECTO
género género carácter(1) ninguno
create table user(
    id int primary key auto_increment comment '主键',
    name varchar(10) not null unique comment '姓名',
    age int check(age > 0 and age <= 120) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
) comment '用户表';

Centrarse en el uso de claves externas:

Agregar clave externa

CREATE TABLE 表名(
    字段名 数据类型,
    ...
    [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主列表名)
);

-- 或
ALTER TABLE 表名 
    ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCE 主表 (主列表名);

Eliminar clave externa

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

Comportamiento de eliminación/actualización de clave externa

Comportamiento ilustrar
SIN ACCIÓN 当在父表中删除/更新对应记录时,首先检查记录是否有对应外键,如果有则不允许删除/更新。(与RESTRICT一致)
RESTRICT 当在父表中删除/更新对应记录时,首先检查记录是否有对应外键,如果有则不允许删除/更新。(与NO ACTION一致)
CASCADE 当在父表中删除/更新对应记录时,首先检查记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。
SET NULL 当在父表中删除对应记录时,首先检查记录是否有对应外键,如果有则设置子表中该外键值为null(要求该外键允许取null)
SET DEFAULT 父表有变更时,子表将外键列设置成一个默认的值(Innodb不支持)
ALTER TABLE 表名 
    ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCE 主表 (主列表名)
        ON UPDATE CASCADE ON DELETE CASCADE;

多表查询

多表关系

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:

  • 一对多(多对一)
  • 多对多
  • 一对一

 

笛卡尔积

笛卡尔积是指在数学中,两个集合A和集合B的所有的组合情况。

例如A、B 和1、2、3、4组合,不同的组合情况就有八种:

  • A 1
  • A 2
  • A 3
  • A 4
  • B 1
  • B 2
  • B 3
  • B 4

所以,在多表查询时,需要消除无效的笛卡尔积。

内连接

 隐式内连接

SELECT 字段列表 FROM 表1,表2 WHERE 条件...;

显式内连接

SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件 ...;

外连接

左外连接

SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件 ...;

相当于查询表1(左表)的所有数据,包含表1和表2交集部分的数据

右外连接

SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件...;

相当于查询表2(右表)的所有数据,包含表1和表2交集部分的数据

自连接 

SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...;

自连接查询,可以是内连接查询,也可以是外连接查询。

联合查询

查询语法

SELECT 字段列表 FROM 表A ...
UNION [ALL]
SELECT 字段列表 FROM 表B ...;

对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。

union all会将全部的数据直接合并在一起,union会对合并之后的数据去重。

子查询

SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。

SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

 子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT 的任何一个。

根据子查询的结果不同,分为:

  • 标量子查询(子查询结果为单个值)
  • 列子查询(子查询结果为一列)
  • 行子查询(子查询结果为一行)
  • Subconsulta de tabla (los resultados de la subconsulta son varias filas y columnas)

Según la posición de la subconsulta, se divide en: después de DÓNDE, después de DESDE y después de SELECCIONAR.

asuntos

Una transacción es un conjunto de operaciones, que es una unidad de trabajo indivisible. Una transacción enviará o revocará solicitudes de operación al sistema en su conjunto, es decir, estas operaciones tendrán éxito al mismo tiempo o fallarán al mismo tiempo.

 1. Operaciones de transacción 

START TRANSACTION; -- 开启事务
COMMIT / ROLLBACK; -- 提交/回滚事务

2. Cuatro características de los asuntos

Atomicidad, consistencia, aislamiento, durabilidad

 

Atomicidad

  • Una transacción es una unidad de operación más pequeña e indivisible que tiene éxito en su totalidad o fracasa en su totalidad.

Cuando se ejecuta una transacción, ejecutará un conjunto de declaraciones SQL en el mismo lote. Si se produce un error en una declaración SQL, se cancelarán todas las declaraciones SQL del lote.

Consistencia

  • Cuando se completa la transacción, todos los datos deben estar en un estado consistente.

Por ejemplo, una transferencia bancaria se puede dividir en dos acciones: deducir una cantidad de fondos X de la cuenta A y luego agregar una cantidad de fondos X a la cuenta B. Si se produce un error durante este proceso, toda la operación debe revertirse al estado inicial. Asegúrese de que los saldos de cuentas combinados de A y B sean consistentes con el estado inicial.

Aislamiento

  • El mecanismo de aislamiento proporcionado por el sistema de base de datos garantiza que las transacciones se ejecuten en un entorno independiente que no se vea afectado por operaciones concurrentes externas.

Por ejemplo, una transacción está modificando un determinado elemento de datos y en este momento otra transacción también quiere modificar ese elemento de datos, sin embargo, debido a la existencia de aislamiento, la segunda transacción esperará a que la primera transacción complete la modificación antes de realizar modificaciones.

Durabilidad

  • Una vez que una transacción se confirma o revierte, sus cambios en los datos de la base de datos son permanentes.

Una vez que se confirma una transacción, sus cambios en la base de datos deben ser permanentes (el envío de datos se guarda en el disco duro) y otras operaciones o fallas posteriores no deberían tener ningún impacto en las modificaciones de esta transacción.

3. Problemas de transacciones concurrentes

(1) Lectura sucia

Una transacción lee datos que otra transacción aún no ha confirmado.

(2) Lectura no repetible

Una transacción lee el mismo registro sucesivamente, pero los datos leídos dos veces son diferentes, lo que se denomina lectura no repetible.

(3) Lectura fantasma

Cuando una transacción consulta datos según las condiciones, no hay una fila de datos correspondiente, pero al insertar datos, se descubre que esta fila de datos ya existe, como si hubiera aparecido un "fantasma".

 

4. Nivel de aislamiento de transacciones 

READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE(串行化)

 


FIN


Supongo que te gusta

Origin blog.csdn.net/li13437542099/article/details/132651303
Recomendado
Clasificación