Funciones comunes de MySQL e índices de vista

Tabla de contenido

Funciones comunes

Varios tipos de funciones

1. Función de fecha

2. Función de cadena

3. Funciones digitales

4. Función agregada

 unir

ver índice

vista

Concepto y características:

Ver rol:

Sintaxis básica:

índice 

concepto:

Ventajas y desventajas

Clasificación:

Mantenimiento del índice:

Códigos de error comunes


Funciones comunes

El concepto y características de las funciones:

De acuerdo con el concepto de funciones en java y js

Características: las funciones de la base de datos deben tener valores de retorno (una fila y una columna)

Varios tipos de funciones

1. Función de fecha

now() obtiene la fecha actual;

Ejemplo: seleccione ahora ();

day() obtiene la parte del día de la fecha especificada;

Ejemplo: seleccione el día (ahora ());

month() Obtiene la parte del mes de la fecha especificada;

Ejemplo: seleccione el mes (ahora ());

year() obtiene la parte del mes de la fecha especificada;

Ejemplo: select year(now());
date_format() Convierte la fecha en una cadena en el formato especificado;
Ejemplo: select date_format(now(), '%Y-%m-%d %H:%i:%s ');
str_to_date(): convierte una fecha en un formato específico en una fecha;
ejemplo: select str_to_date('2017-01-06 10:20:30','%Y-%m-%d %H:%i :%s');

Ejemplo completo: 

1)直接按年份计算学生年龄
    SELECT t.sname, YEAR(NOW()) - YEAR(t.birthday) FROM t_student t

2)按照出生日期来算,当前月日 < 出生年月的月日则(说明月份还没到),年龄减一
SELECT sid,sname,birthday,YEAR(NOW())-YEAR(birthday) '年龄',
       YEAR(NOW())-YEAR(birthday) + IF(CONVERT(DATE_FORMAT(NOW(),'%m%d'),SIGNED)-CONVERT(DATE_FORMAT(birthday,'%m%d'),SIGNED)<0,-1,0) '真实年龄'
FROM t_student;

3)查询本月过生日的学生信息
SELECT * FROM t_student t WHERE MONTH(NOW()) - MONTH(t.birthday) = 0;

2) Los resultados de ejecución del ejemplo son los siguientes:

2. Función de cadena

upper() Convierte a caracteres en mayúsculas
Ejemplo: select upper('faafafa')
lower() Convierte a caracteres en minúsculas
Ejemplo: Sselect lower('FEFEFF')
replace() Busca y reemplaza subcadenas en una cadena
Ejemplo: select replace( 'www. google.net','w','n')
substring() última subcadena que comienza en una posición con una longitud específica
Ejemplo:
        select substring('abcdefghijk', 1, 3)
        select substring((' abcdefghijk', 4);
        select substring(('abcdefghijk', -3);
trim() elimina los espacios iniciales y finales
Ejemplo: select trim(' fdfdfdfd ');
length()
Ejemplo para obtener la longitud de la cadena: select length('abcdef') ;

3. Funciones digitales

floor() redondea hacia abajo
Ejemplo: select floor(123.8934);
ceil(
) redondea hacia arriba Ejemplo: select ceil(123.8934)
round() redondea
hacia abajo Ejemplo: select round(123.8934, 2);

4. Función agregada

Características: se usa comúnmente junto con agrupar por, o se puede usar solo. Por ejemplo, si necesita filtrar, puede usar la cláusula que tiene
SUM para sumar
COUNT para contar la cantidad de registros
AVG para encontrar el valor promedio,
MAX para encontrar el valor máximo ,
MIN para encontrar el valor mínimo .

 unir

Palabra clave:
    union reúne todos los resultados de la consulta   y elimina los mismos registros
    union all   combina todos los resultados de la consulta sin eliminar los mismos registros

La premisa de la fusión: el número de columnas en el conjunto de resultados es el mismo
Escenario: en el módulo de informe estadístico del proyecto, se utiliza para fusionar datos

select 'abc', 123 
union
selet 'def',456
		
select 'abc', 123
union 
select 'abc', 123

select sid fromt_score where cid = 1
union
select sid from t_score where cid = 2

# 注意此处去掉了重复的值,可以与下面的语句执行结果比较

select sid fromt_score where cid = 1
union all
select sid from t_score where cid = 2
	
select 'abc', 123
union all
select 'def', 456

select 'abc', 123
union all
select 'abc', 123

ver índice

vista

Concepto y características:

Una vista es un tipo de tabla virtual , que es una tabla derivada de una o más tablas en la base de datos. La
base de datos almacena la definición de la vista, pero no almacena los datos de la vista, y los datos aún se almacenan en el mesa original.
Al usar una vista para consultar datos, la base de datos obtendrá datos de la tabla original
    (nota: las vistas materializadas no se incluyen aquí, actualmente mysql no admite vistas materializadas de forma predeterminada)


Ver rol:

1) Simplificar las operaciones
2) Aumentar la seguridad de los datos
3) Mejorar la independencia lógica de las tablas


Sintaxis básica:

cree el nombre de la vista de vista como
ejemplo de declaración de selección :

create view stu_score_statistics as
select t1.sid, t1.sname, t1.ssex, t2.courses, t3.total total_score from t_student t1 
left join (select sid, count(*) courses from t_score group by sid) t2 on t1.sid=t2.sid
left join (select sid, sum(score) total from t_score group by sid) t3 on t1.sid=t3.sid

índice 

concepto:

El índice está compuesto por una o más columnas en la tabla de la base de datos, y su rol es mejorar la velocidad de consulta de los datos en la tabla
, puede entenderse como el rol del directorio del libro .


Ventajas y desventajas

Ventajas : para tablas medianas o grandes, el uso adecuado de los índices puede mejorar significativamente el rendimiento de las consultas .
Desventajas : aumenta el trabajo de mantenimiento del índice, lo que hace que las operaciones de inserción, modificación y eliminación sean más lentas.


Clasificación:

Índice ordinario (índice básico, el propósito es mejorar el rendimiento de las consultas)
Índice único (además de mejorar el rendimiento de las consultas, también puede evitar la duplicación de valores de columna)
Índice de clave principal (índice único especial, una tabla solo puede tener una clave principal, y sin valor nulo)
índice combinado (índice generado mediante la combinación de varias columnas, debe prestar atención al orden del índice)
índice de texto completo (utilizado para admitir la búsqueda de texto completo (FULLTEXT))


Mantenimiento del índice:

Crear
        sintaxis
            CREATE [UNIQUE|FULLTEXT] INDEX nombre de índice ON nombre de tabla (nombre de campo [(longitud)][ASC|DESC])
        Ejemplo
            CREATE INDEX sname_inx ON t_student(sname);
Modificar
        sintaxis
            ALTER TABLE nombre de tabla ADD [UNIQUE|FULLTEXT] ÍNDICE nombre de índice (nombre de campo[(longitud)][ASC|DESC])
        ejemplo
            ALTER TABLE t_student ADD INDEX birthday_inx(cumpleaños);
eliminar
        sintaxis
            DROP INDEX nombre de índice ON nombre de tabla
        ejemplo
            DROP INDEX birthday_inx ON t_student;

Códigos de error comunes

1075
    tiene una clave de incremento automático, pero no es que no esté configurada como clave principal
1142 Se
    rechaza la operación, generalmente porque no hay permiso
1064
    Generalmente, hay un error de sintaxis, como un error de palabra clave, que falta espacios, faltan después de la instrucción sql en el script sql y otras razones
1048 
    columnas No pueden ser nulas
1055 
    No en GROUP BY
1265
    El formato de los datos guardados es diferente de la definición
1366
    Codificación de datos
1451
    Violación de restricción de clave externa

Supongo que te gusta

Origin blog.csdn.net/qq_64001795/article/details/126233472
Recomendado
Clasificación