Notas de estudio de MYSQL-punch in 2
2.1 Conceptos básicos de MySQL (2) - Operaciones de tabla
# Contenido de aprendizaje #
- Tipo de datos de la tabla MySQL
- Crear tabla con declaración SQL
Explicación de declaración
Establecer tipo de columna, tamaño, restricción
Establecer clave primaria - Use sentencias SQL para agregar datos a la tabla
Explicación de sentencias
Varias formas de agregar (especifique los nombres de las columnas; no especifique los nombres de las columnas) - Utilice la instrucción SQL para eliminar la tabla. La
instrucción explica la diferencia entre las diferentes formas de
DELETE
DROP
TRUNCATE - Modificar la tabla con la instrucción SQL Modificar el
nombre de la columna
Modificar los datos en la tabla
Eliminar fila
Eliminar columna
Nueva columna
Nueva fila
Tema tres
Cree la tabla de cursos como se muestra a continuación, hay: estudiante (estudiante) y clase (curso).
Por ejemplo, tabla:
± -------- ± ----------- +
| estudiante | clase |
± -------- ± --------- - +
| A | Matemáticas |
| B | Inglés |
| C | Matemáticas |
| D | Biología |
| E | Matemáticas |
| F | Computadora |
| G | Matemáticas |
| H | Matemáticas |
| I | Matemáticas |
| A | Matemáticas |
± -------- ± ----------- +
Escriba una consulta SQL para enumerar todas las clases con más de o igual a 5 estudiantes.
Debería generar:
± -------- +
| clase |
± -------- +
| Matemáticas |
± -------- +
Nota:
Los estudiantes no deben Cálculo repetido.
-Crear mesa
CREATE TABLE courses
(student VARCHAR(255) NOT NULL,
class VARCHAR(255) NOT NULL);
-Insertar datos
INSERT INTO courses VALUES ('A', 'Math');
INSERT INTO courses VALUES ('B', 'English');
INSERT INTO courses VALUES ('C', 'Biology');
INSERT INTO courses VALUES ('D', 'Math');
INSERT INTO courses VALUES ('E', 'Math');
INSERT INTO courses VALUES ('F', 'Computer');
INSERT INTO courses VALUES ('G', 'Math');
INSERT INTO courses VALUES ('H', 'Math');
INSERT INTO courses VALUES ('I', 'Math');
INSERT INTO courses VALUES ('A', 'Math');
-Código (escriba una consulta SQL para enumerar todas las clases con más o igual a 5 estudiantes)
SELECT class FROM courses
GROUP BY class
HAVING COUNT(DISTINCT student) >= 5;
-resultado
Proyecto 4: Cambio de salario (dificultad: fácil)
Cree una tabla de sueldos, como se muestra a continuación, con valores de m = hombre yf = mujer.
P.ej:
carné de identidad | nombre | sexo | salario |
---|---|---|---|
1 | UNA | metro | 2500 |
2 | si | F | 1500 |
3 | C | metro | 5500 |
4 | re | F | 500 |
Intercambie todos los valores de f y m (por ejemplo, cambie todos los valores de f por my viceversa). Se requiere una consulta de actualización y no hay una tabla temporal intermedia.
Después de ejecutar la declaración de consulta que ha escrito, obtendrá la siguiente tabla:
carné de identidad | nombre | sexo | salario |
---|---|---|---|
1 | UNA | F | 2500 |
2 | si | metro | 1500 |
3 | C | F | 5500 |
4 | re | metro | 500 |
-Crear mesa
CREATE TABLE salary
(id INT PRIMARY KEY NOT NULL,
NAME VARCHAR ( 10 ) NOT NULL,
sex VARCHAR ( 10 ) NOT NULL,
salary INT NOT NULL
);
-Insertar datos
INSERT INTO salary
VALUES
( 1, "A", "m", 2500 ),
( 2, "B", "f", 1500 ),
( 3, "C", "m", 5500 ),
( 4, "D", "f", 500 );
--Código (actualizar datos)
UPDATE salary
SET sex =
CASE
sex
WHEN 'm' THEN
'f' ELSE 'm' END;
-resultado
2.2 Conceptos básicos de MySQL (3) - Unión de tabla
#Learning content #
MySQL alias
INNER JOIN
LEFT JOIN
CROSS JOIN
self-connection
UNION
La diferencia y la conexión de los métodos anteriores
Elemento 5: Combina dos tablas (dificultad: fácil)
Cree la Tabla 1 y la Tabla 2 en la base de datos e inserte tres filas de datos (hechas por usted mismo)
Tabla 1: Persona
± ------------ ± -------- +
| Nombre de columna | Tipo |
± ------------ ± -------- +
| PersonId | int |
| Nombre | varchar |
| Apellido | varchar |
± -------- ---- ± -------- +
PersonId es la clave principal de la tabla anterior
Tabla 2: Dirección
± ------------ ± -------- +
| Nombre de columna | Tipo |
± ------------ ± --- ----- + t
| AddressId | int |
| PersonId | int |
| Ciudad | varchar |
| Estado | varchar |
± ------------ ± -------- +
AddressId es la clave principal de la tabla anterior
Escriba una consulta SQL para cumplir con las condiciones: Independientemente de si la persona tiene información de la dirección, la siguiente información de la persona debe proporcionarse según las dos tablas anteriores: Nombre, Apellido, Ciudad, Estado
-Crear mesa (persona)
CREATE TABLE person(PersonId INT,
FirstName VARCHAR(10),
LastName VARCHAR(10));
-Crear tabla (dirección)
CREATE TABLE address(AddressId INT,
PersionId INT,
City VARCHAR(255),
State VARCHAR(255));
-Insertar datos (persona y dirección)
INSERT INTO person VALUES (1,'kobe','bryant'),
(2,'lebron','james'),
(3,'chris','paul');
INSERT INTO address VALUES(001,1,'Los Angeles','california'),
(002,2,'Cleveland Cavaliers','Ohio'),
(003,2,'Houston','Texas');
- Código (Independientemente de si la persona tiene información de dirección o no, la siguiente información de la persona debe proporcionarse según las dos tablas anteriores: Nombre, Apellido, Ciudad, Estado)
SELECT FirstName, LastName, City, State FROM
person LEFT JOIN address ON person.PersonId=address.PersionId;
Proyecto 6: Eliminar buzones de correo duplicados (dificultad: fácil)
Escriba una consulta SQL para eliminar todas las direcciones de correo electrónico duplicadas en la tabla de correo electrónico y solo mantenga la que tiene la identificación más pequeña en los buzones de correo duplicados.
± - ± -------- +
| Id | Correo electrónico |
± - ± -------- +
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
± - ± -------- +
Id es la clave principal de esta tabla.
Por ejemplo, después de ejecutar su consulta, la tabla de Personas anterior debe devolver las siguientes filas:
± - ± ----------------- +
| Id | Correo electrónico |
± - ± - ---------------- +
| 1 | [email protected] |
| 2 | [email protected] |
± - ± ------------ ----- +
-Crear mesa
CREATE TABLE email
( id INT PRIMARY KEY, Email VARCHAR ( 255 ) );
-Insertar datos
INSERT INTO email ( id, Email )
VALUES( 1, '[email protected]' ),
( 2, '[email protected]' ),
( 3, '[email protected]' );
-Código (escriba una consulta SQL para eliminar todas las direcciones de correo electrónico duplicadas en la tabla de correo electrónico y solo mantenga la que tiene la identificación más pequeña en los buzones de correo duplicados)
DELETE FROM email
WHERE id NOT IN
( SELECT a.min_id FROM ( SELECT MIN( id ) AS min_id FROM email GROUP BY Email ) a );
-resultado