Notas de conocimientos básicos de MySQL 2 - [Gramática básica]

Contenido de hoy

  1. DQL: declaración de consulta

    1. Ordenar consulta
    2. Función agregada
    3. Consulta de grupo
    4. Consulta de paginación
  2. restricción

  3. Relación entre varias tablas

  4. Paradigma

  5. Copia de seguridad y restauración de la base de datos

DQL: declaración de consulta

Ordenar consulta

Sintaxis: ordenar por cláusula

  • ordenar por campo de clasificación 1 método de clasificación 1, campo de clasificación 2 método de clasificación 2 ...

Ordenar por:

  • ASC: orden ascendente, el predeterminado.
  • DESC: orden descendente.

Nota:

Si hay varias condiciones de clasificación, la segunda condición se juzgará cuando el valor de la condición del lado actual sea el mismo.

Función agregada: tome una columna de datos como un todo y realice cálculos verticales.

contar: cuenta el número

  1. Generalmente, seleccione columnas no vacías: clave primaria
  2. contar(*)

max: calcula el valor máximo

min: calcula el valor mínimo

suma: calcula la suma

avg: calcula el promedio

Nota: El cálculo de funciones agregadas excluye valores nulos.
solución:

  1. Elija no incluir columnas no vacías para el cálculo
    2. Función IFNULL

Consulta de grupo:

Sintaxis: grupo por campo de grupo;

Nota:

  1. Campos a consultar después de la agrupación: campos de agrupación, funciones agregadas
  2. ¿La diferencia entre dónde y tener?
    1. Donde se define antes de agrupar, si no se cumplen las condiciones no participará en la agrupación. Habiendo limitado después de agrupar, si el resultado no está satisfecho, no se consultará
    2. Las funciones agregadas no se pueden seguir después de dónde, y se puede juzgar que tienen funciones agregadas.
-- 按照性别分组。分别查询男、女同学的平均分

SELECT sex , AVG(math) FROM student GROUP BY sex;

-- 按照性别分组。分别查询男、女同学的平均分,人数

SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;

--  按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;

--  按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
SELECT sex , AVG(math),COUNT(id) 人数 FROM student WHERE math > 70 GROUP BY sex HAVING 人数 > 2;

Consulta de paginación

gramática

Índice a partir del límite, el número de consultas por página;

oficial

Índice inicial = (número de página actual-1) * el número de elementos mostrados por página

-- 每页显示3条记录 
SELECT * FROM student LIMIT 0,3; -- 第1页
SELECT * FROM student LIMIT 3,3; -- 第2页
SELECT * FROM student LIMIT 6,3; -- 第3页

el límite es un "dialecto" de MySQL, exclusivo de MySQL

restricción

concepto

Limite los datos de la tabla para garantizar la exactitud, validez e integridad de los datos.

clasificación

  1. Restricción de clave principal: clave principal
  2. Restricción no vacía: no nula
  3. La única restricción: única
  4. Restricción de clave externa: clave externa

Restricción no nula: no nulo, el valor de una columna no puede ser nulo

  1. Agregar restricciones al crear una tabla
    CREATE TABLE stu (
    id INT,
    NAME VARCHAR (20) NOT NULL - el nombre no está vacío
    );

  2. Después de crear la tabla, agregue una restricción no vacía
    ALTER TABLE stu MODIFY NAME VARCHAR (20) NOT NULL;

  3. Elimina la restricción no vacía del nombre
    ALTER TABLE stu MODIFY NAME VARCHAR (20);

La única restricción:

único, el valor de una columna no se puede repetir

Nota:

  • La restricción única puede tener un valor NULL, pero solo un registro puede ser nulo y el valor de la columna limitada por la restricción única puede tener varios valores nulos

Al crear una tabla, agregue una restricción única

CREATE TABLE stu(
	id INT,
	phone_number VARCHAR(20) UNIQUE -- 手机号
);

Eliminar restricción única

ALTER TABLE stu DROP INDEX phone_number;

Una vez creada la tabla, agregue una restricción única

ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;

Restricción de clave principal: clave principal

Nota

  1. Significado: no vacío y único
  2. Una tabla solo puede tener un campo como clave principal
  3. La clave principal es la identificación única de los registros en la tabla.

Al crear una tabla, agregue una restricción de clave principal

create table stu(
	id int primary key,-- 给id添加主键约束
	name varchar(20)
);

Eliminar clave primaria

-- 错误 alter table stu modify id int ;
ALTER TABLE stu DROP PRIMARY KEY;

Después de crear la tabla, agregue la clave principal

ALTER TABLE stu MODIFY id INT PRIMARY KEY;

Crecimiento automático

Concepto: si una columna es de tipo numérico, use auto_increment para completar el valor del crecimiento automático

Al crear una tabla, agregue restricciones de clave primaria y complete el crecimiento propio de clave primaria

create table stu(
id int primary key auto_increment,-- 给id添加主键约束
name varchar(20)
);--自动增长的值只跟上一条记录有关系

Eliminar el crecimiento automático

ALTER TABLE stu MODIFY id INT;

Agregar crecimiento automático

ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

Restricción de clave externa: clave externa

Deje que la tabla y la tabla tengan una relación para garantizar la exactitud de los datos.

Al crear una tabla, puede agregar claves externas

gramática:

create table 表名(
	....
	外键列
	constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);

Eliminar clave externa

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

Después de crear la tabla, agregue la clave externa

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

Operación en cascada

  1. Agregar operación en cascada

    语法:
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 
    FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE  ;
    
  2. clasificación:

    1. Actualización en cascada:ON UPDATE CASCADE
    2. Eliminación en cascada:ON DELETE CASCADE

Diseño de base de datos

Relación entre varias tablas

clasificación:

Uno a uno (comprensión):

  • Tales como: persona y tarjeta de identificación
  • Análisis: una persona tiene solo una identificación y una identificación solo puede corresponder a una persona

Uno a muchos (muchos a uno):

  • Tales como: departamentos y empleados
  • Análisis: hay varios empleados en un departamento y un empleado solo puede corresponder a un departamento

Muchos a muchos:

  • Tales como: estudiantes y cursos
  • Análisis: un estudiante puede elegir muchos cursos y muchos estudiantes pueden elegir un curso

Relación de realización:

Uno a muchos (muchos a uno):

  • Tales como: departamentos y empleados
  • Realización: cree una clave externa en el lado más y apunte a la clave principal en un lado.

Muchos a muchos:

  • Tales como: estudiantes y cursos
  • Método de implementación: La realización de la relación de muchos a muchos requiere la ayuda de la tercera tabla intermedia. La tabla intermedia contiene al menos dos campos, estos dos campos se utilizan como la clave externa de la tercera tabla, apuntando a las claves primarias de las dos tablas respectivamente

Uno a uno (comprensión):

  • Tales como: persona y tarjeta de identificación
  • Implementación: se logra una relación uno a uno y se puede agregar una clave externa única en cualquier lado para apuntar a la clave principal del otro lado.

Caso

-- 创建旅游线路分类表 tab_category
-- cid 旅游线路分类主键,自动增长
-- cname 旅游线路分类名称非空,唯一,字符串 100
CREATE TABLE tab_category (
	cid INT PRIMARY KEY AUTO_INCREMENT,
	cname VARCHAR(100) NOT NULL UNIQUE
);

-- 创建旅游线路表 tab_route
/*
rid 旅游线路主键,自动增长
rname 旅游线路名称非空,唯一,字符串 100
price 价格
rdate 上架时间,日期类型
cid 外键,所属分类
*/
CREATE TABLE tab_route(
	rid INT PRIMARY KEY AUTO_INCREMENT,
	rname VARCHAR(100) NOT NULL UNIQUE,
	price DOUBLE,
	rdate DATE,
	cid INT,
	FOREIGN KEY (cid) REFERENCES tab_category(cid)
);

/*创建用户表 tab_user
uid 用户主键,自增长
username 用户名长度 100,唯一,非空
password 密码长度 30,非空
name 真实姓名长度 100
birthday 生日
sex 性别,定长字符串 1
telephone 手机号,字符串 11
email 邮箱,字符串长度 100
*/
CREATE TABLE tab_user (
	uid INT PRIMARY KEY AUTO_INCREMENT,
	username VARCHAR(100) UNIQUE NOT NULL,
	PASSWORD VARCHAR(30) NOT NULL,
	NAME VARCHAR(100),
	birthday DATE,
	sex CHAR(1) DEFAULT '男',
	telephone VARCHAR(11),
	email VARCHAR(100)
);

/*
创建收藏表 tab_favorite
rid 旅游线路 id,外键
date 收藏时间
uid 用户 id,外键
rid 和 uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次
*/
CREATE TABLE tab_favorite (
	rid INT, -- 线路id
	DATE DATETIME,
	uid INT, -- 用户id
	-- 创建复合主键
	PRIMARY KEY(rid,uid), -- 联合主键
	FOREIGN KEY (rid) REFERENCES tab_route(rid),
	FOREIGN KEY(uid) REFERENCES tab_user(uid)
);

El paradigma del diseño de bases de datos

concepto

Al diseñar una base de datos, se deben seguir algunas especificaciones. Para seguir los requisitos del último paradigma, primero debe seguir todos los requisitos del paradigma anterior. Al
diseñar una base de datos relacional, siga diferentes especificaciones y diseñe una base de datos relacional razonable. Estas diferentes especificaciones se denominan diferentes paradigmas y varios paradigmas. Subespecificación, cuanto mayor es el paradigma, menor es la redundancia de la base de datos.
Actualmente existen seis paradigmas para las bases de datos relacionales: Primera forma normal (1NF), Segunda forma normal (2NF), Tercera forma normal (3NF), Forma normal de cordón de baño (BCNF), Cuarta forma normal (4NF) y Quinta forma normal (5NF, también conocido como el paradigma perfecto).

clasificación

Primera forma normal (1NF): cada columna es un elemento de datos atómicos indivisible

Segunda forma normal (2NF): sobre la base de 1NF, los atributos que no son de código deben ser completamente dependientes del código (sobre la base de 1NF, se elimina la dependencia funcional parcial de los atributos no primarios en el código principal)

  1. Dependencia de la función: A-> B, si se utiliza el valor del atributo A (grupo de atributos), se puede determinar el valor del atributo B único. Se dice que B depende de A,
    por ejemplo: ID de estudiante -> nombre. (Número de estudiante, nombre del curso) -> puntuación

  2. Dependencia funcional completa: A-> B. Si A es un grupo de atributos, la determinación del valor de atributo de B debe depender de todos los valores de atributo en el grupo de atributos A.
    Por ejemplo: (ID de estudiante, nombre del curso) -> puntuación

  3. Dependencia funcional parcial: A–> B. Si A es un grupo de atributos, la determinación del valor de atributo de B solo necesita depender de algunos valores en el grupo de atributos A.
    Por ejemplo: (ID de estudiante, nombre del curso) -> nombre

  4. La función de transferencia depende de: A–> B, B -> C. Si se utiliza el valor del atributo A (grupo de atributos), se puede determinar el valor del atributo B único, y el valor del atributo C único se puede determinar mediante el valor del atributo B (grupo de atributos) , Se dice que la función de transferencia de C depende de A.
    Por ejemplo: número de estudiante -> nombre del departamento, nombre del departamento -> jefe del departamento

  5. Código: Si un atributo o grupo de atributos depende completamente de todos los demás atributos de una tabla, este atributo (grupo de atributos) se denomina código de la tabla.
    Por ejemplo: el código de la tabla es: (ID de estudiante, nombre del curso)

    • Atributo principal: todos los atributos del grupo de atributos de código

    • Atributos no primarios: los atributos del grupo de atributos codificados.

Tercera forma normal (3NF): sobre la base de 2NF, cualquier atributo no primario no depende de otros atributos no primarios (eliminando la dependencia transitiva sobre la base de 2NF)

Copia de seguridad y restauración de la base de datos

Línea de comando:

Apoyo:

mysqldump -u nombre de usuario -p contraseña nombre de la base de datos> ruta guardada

reducción:

  1. Iniciar sesión en la base de datos
  2. Crear base de datos
  3. Usar base de datos
  4. Archivo ejecutable. ruta del archivo de origen.

Supongo que te gusta

Origin blog.csdn.net/weixin_43215322/article/details/109084442
Recomendado
Clasificación