contenido
1. Funcionamiento de la base de datos
1.1 Mostrar la base de datos actual
3.1 Ver la estructura de la tabla
4. Agregar, eliminar, buscar y modificar (CRUD) de la tabla MySQL
4.6 Consulta condicional (dónde)
4.7 Consulta de paginación (LIMIT)
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: