restricción javaweb-MySQL-022

1.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 ...

* 排序方式:
	* ASC:升序,默认的。
	* DESC:降序。

* 注意:
	* 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。
  1. Función agregada: tome una columna de datos como un todo y realice cálculos verticales.

    1. contar: cuenta el número
      1. Generalmente, seleccione columnas no vacías: clave primaria
      2. contar(*)
    2. max: calcula el valor máximo
    3. min: calcula el valor mínimo
    4. suma: calcula la suma
    5. 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
  2. Consulta de grupo:

    1. Sintaxis: grupo por campo de grupo;

    2. 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.

      -Grupo por género. Consultar las puntuaciones medias de alumnos y alumnas por separado

      SELECCIONE sexo, PROMEDIO (matemáticas) DEL GRUPO DE estudiantes POR sexo;

      -Grupo por género. Consultar la puntuación media y el número de alumnos y alumnas por separado

      SELECCIONE sexo, PROMEDIO (matemáticas), CUENTA (ID) DEL GRUPO DE estudiantes POR sexo;

      -Grupo por género. Consultar las puntuaciones medias de compañeros y compañeras por separado, el número de requisitos: personas con puntuaciones inferiores a 70, no participan en la agrupación
      SELECT sex, AVG (matemáticas), COUNT (id) FROM student WHERE math> 70 GROUP BY sex;

      -Grupo por género. Consultar las puntuaciones medias de los compañeros y compañeras por separado Requisitos numéricos: no participarán en la agrupación aquellos con una puntuación inferior a 70. Después de la agrupación. El número de personas debe ser mayor que 2 personas
      SELECCIONE sexo, PROMEDIO (matemáticas), RECUENTO (id) DEL estudiante DONDE matemáticas> 70 GRUPO POR sexo TENIENDO RECUENTO (id)> 2;

      SELECCIONE sexo, PROMEDIO (matemáticas), CONTAR (id) 人数 DEL estudiante DONDE matemáticas> 70 GRUPO POR sexo TENIENDO 人数> 2;

  3. Consulta de paginación

    1. Sintaxis: índice que comienza con límite, el número de consultas por página;

    2. Fórmula: índice inicial = (número de página actual-1) * número de
      elementos mostrados por página-3 registros mostrados por página

      SELECCIONAR * DEL LÍMITE de estudiantes 0,3; - Página 1

      SELECCIONAR * DEL LÍMITE de estudiantes 3,3; - Página 2

      SELECCIONAR * DEL LÍMITE de estudiantes 6,3; - Página 3

    3. el límite es un "dialecto" de MySQL

2. Limitaciones

  • 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);

    • Restricción única: única, el valor de una columna no se puede repetir

      1. Nota:
        • La restricción única puede tener un valor NULL, pero solo un registro puede ser nulo
      2. Al crear la tabla, agregue la restricción única
        CREATE TABLE stu (
        id INT,
        phone_number VARCHAR (20) UNIQUE-phone number
        );
      3. Eliminar la restricción única
        ALTER TABLE stu DROP INDEX phone_number;
      4. Después de crear la tabla, agregue la restricción única
        ALTER TABLE stu MODIFY phone_number VARCHAR (20) UNIQUE;
    • Restricción de clave primaria: clave primaria.

      1. 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.
      2. Al crear una tabla, agregue una restricción de clave primaria
        create table stu (
        id int clave primaria, - agregue un
        nombre de restricción de clave primaria varchar (20)
        ) a id ;

      3. Eliminar clave primaria
        -error alterar tabla stu modificar id int;
        ALTERAR TABLA stu DROP PRIMARY KEY;

      4. Después de crear la tabla, agregue la clave primaria
        ALTER TABLE stu MODIFY id INT PRIMARY KEY;

      5. Crecimiento automático:

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

        2. Al crear una tabla, agregue una restricción de clave primaria y complete el crecimiento propio de la clave primaria.
          Crear tabla stu (
          id int clave primaria auto_increment, - agregar el
          nombre de restricción de clave primaria varchar (20)
          ) a id ;

        3. Eliminar el crecimiento automático
          ALTER TABLE stu MODIFY id INT;

        4. Agregar crecimiento automático
          ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

    • Restricción de clave externa: clave externa, deje que la tabla tenga una relación con la tabla, para garantizar la exactitud de los datos.

      1. Al crear una tabla, puede agregar claves externas

        • Sintaxis:
          Crear tabla de tabla (
          ... restricción de
          columna de clave
          externa nombre de restricción de clave externa de la clave externa (necesita conectarse al nombre de columna de la clave externa de esta tabla) Referencias (externo) nombre de la tabla primaria (los nombres de columna de la tabla primaria)
          ); a
          partir de entonces, si el aumento no es No se permiten columnas existentes, eliminar columnas, por lo que las restricciones mutuas entre tablas
      2. Eliminar la clave externa
        ALTER TABLE nombre de la tabla DROP FOREIGN KEY nombre de la clave externa;

      3. Después de crear la tabla, agregue la clave externa
        ALTER TABLE nombre de la tabla ADD CONSTRAINT nombre de la clave externa FOREIGN KEY (nombre del campo de clave externa) REFERENCIAS nombre de la tabla principal (nombre de la columna de la tabla principal); ¿
        ya que se niega a modificar? Entonces, ¿cómo modificar?
        Primero se puede modificar a NULL, puede estar vacío, pero no puede ser inexistente. Luego, puede modificar la tabla principal y luego modificar el NULL de la tabla después de modificar la tabla principal. La modificación formal es la siguiente, operación en cascada. Arrastre la tabla al diseñador de arquitectura y dibuje si hay una cascada. De esta manera, cuando se cambia la tabla maestra, la tabla esclava se actualizará automáticamente y la columna de información de vinculación se eliminará automáticamente.
        Pero la eliminación debe ser cautelosa, ya que hay muchas tablas de datos involucradas, la información no tiene precio e ineficiente.

      4. Operación en cascada

        1. Agregar operaciones en cascada
          Sintaxis: ALTER TABLE nombre de tabla ADD CONSTRAINT nombre de clave externa
          FOREIGN KEY (nombre de campo de clave externa) REFERENCIAS nombre de tabla principal (nombre de columna de tabla principal) 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

13_Introducción a las relaciones de múltiples tablas

Inserte la descripción de la imagen aquí

1. 多表之间的关系
		1. 分类:
			1. 一对一(了解)* 如:人和身份证
				* 分析:一个人只有一个身份证,一个身份证只能对应一个人
			2. 一对多(多对一)* 如:部门和员工
				* 分析:一个部门有多个员工,一个员工只能对应一个部门
			3. 多对多:
				* 如:学生和课程
				* 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择
		2. 实现关系:
			1. 一对多(多对一)* 如:部门和员工
				* 实现方式:在多的一方建立外键,指向一的一方的主键。
			2. 多对多:
				* 如:学生和课程
				* 实现方式:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
			3. 一对一(了解)* 如:人和身份证
				* 实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。

		3. 案例
			-- 创建旅游线路分类表 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)
			);
		

Paradigma del diseño de una base de datos
* Concepto: Algunas especificaciones que deben seguirse al diseñar una base de datos. Para seguir los requisitos del paradigma detrás, primero debe seguir todos los requisitos del paradigma en el frente

		设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
		目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

	* 分类:
		1. 第一范式(1NF):每一列都是不可分割的原子数据项
		2. 第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖)
			* 几个概念:
				1. 函数依赖:A-->B,如果通过A属性(属性组)的值,可以确定唯一B属性的值。则称B依赖于A
					例如:学号-->姓名。  (学号,课程名称) --> 分数
				2. 完全函数依赖:A-->B, 如果A是一个属性组,则B属性值得确定需要依赖于A属性组中所有的属性值。
					例如:(学号,课程名称) --> 分数
				3. 部分函数依赖:A-->B, 如果A是一个属性组,则B属性值得确定只需要依赖于A属性组中某一些值即可。
					例如:(学号,课程名称(假设独一无二的被使用)) -- > 姓名
				4. 传递函数依赖:A-->B, B -- >C . 如果通过A属性(属性组)的值,可以确定唯一B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称 C 传递函数依赖于A
					例如:学号-->系名,系名-->系主任
				5. 码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这个属性(属性组)为该表的码
					例如:该表中码为:(学号,课程名称)
					* 主属性:码属性组中的所有属性
					* 非主属性:除过码属性组的属性
					
		3. 第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

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

Haga una copia de seguridad todos los días, esté preparado para no tener problemas
1. Línea de comando:
* Sintaxis:
* Copia de seguridad: mysqldump -u nombre de usuario -p contraseña nombre de la base de datos> ruta guardada
* Restaurar:
1. Inicie sesión en la base de datos
2. Cree la base de datos creat dabase dbxx
3. Utilice la base de datos use dbxx
4 . Archivo ejecutable. Ruta del archivo de origen
2. Una vez que se
abre el gráfico , la administración del botón derecho está claramente escrita

Supongo que te gusta

Origin blog.csdn.net/lidashent/article/details/107143204
Recomendado
Clasificación