Día 34 MySQL (a)

día 34

1. ¿Por qué utilizar una base de datos

Existente de almacenamiento de datos:

  1. programa Java almacenar operación, variables, objetos, matrices, colecciones, ... para los datos durante la operación. Los datos almacenados en la memoria, el almacenamiento de datos es instantánea, el programa se cierra, el equipo anormales, puede conducir a la pérdida de datos e irreversible
  2. almacenamiento de archivos, XML, JSON, otros documentos. Operabilidad pobre, API complicado, diferentes archivos tienen diferentes métodos de análisis, es difícil de lograr la coexistencia en el uso de memoria y la eficiencia

Hay un problema

  1. los datos del archivo no distingue entre tipos de datos, son cadenas.
  2. Una pequeña cantidad de almacenamiento de datos orgullo, hay ciertas restricciones.
  3. No hay restricciones de seguridad.
  4. Las operaciones de archivo sin su propia copia de seguridad, rollback, y otros mecanismos de protección de datos.

2. ¿Qué es la base de datos

La base de datos es organizar la gestión de datos y software de consulta de acuerdo con las estructuras de datos específicos. El almacenamiento a largo plazo, las restricciones de seguridad, recuperación de datos y almacenamiento de datos se pueden ampliar.

Categoría de la base de datos:

  1. base de datos de estructura de red.
  2. base de datos jerárquica
  3. base de datos relacional
    1. 「Oracle, MySQL, DB2, SQL Server」
    2. Estructura de tabla para el almacenamiento de datos, por cierto -> forma xls
  4. bases de datos no relacionales
    1. MongoDB Redis
    2. Usando una tabla hash estructura realización, el almacenamiento de datos de valor-clave
  5. ES
    1. Elasticsearch

3. Sistema de Gestión de Base de Datos

(Base de datos del Sistema de Gestión) (DBMS) sistema de gestión de base de datos, operación y gestión de datos de software a gran escala, que se utiliza para gestionar, construcción, uso y consulta de datos.

DBMS comunes:

  1. Oráculo
    1. La seguridad, la estabilidad, la complejidad del almacenamiento de datos ...
    2. El pleno cumplimiento de los requisitos de la industria.
    3. caro
  2. DB2
    1. empresa IBM produjo.
    2. No es común.
  3. SQL Sever
    1. principal de Microsoft.
  4. SQLite
    1. base de datos ligera
    2. Fuente, líneas 1W del lenguaje C
    3. los contactos del teléfono,
  5. MySQL

4. MySQL

4.1 MySQL breve historia

Por defecto de MySQL base de datos de codificación del juego Latin1 ==> Europa Occidental

Desarrollado por una empresa sueca! ! empresa MySQL AB, libre de

soporta MySQL plug-ins! ! !

Comunidad: InnoDB Era motor de almacenamiento

la adquisición de MySQL por parte de Oracle, se ha mantenido libre,

versión actualmente populares: 5.6,5.7

La última versión: 8,0 con unas pocas empresas, la falta de verificación de compatibilidad y estabilidad

El desarrollo actual, tenemos que considerar la estabilidad, compatibilidad y universal

adquisición e instalación de MySQL 4.2

La obtención de sitio web oficial

5. Descripción general de SQL

Declaración 5.1 Resumen SQL

consulta la base de datos universal, ya sea MySQL, Oracle, SQL Server es compatible con todas las sentencias SQL estándar. Diferentes bases de datos tendrán su propio número específico de sentencias SQL.

clasificación simple de SQL

  1. C Crear
  2. R Lectura
  3. T actualización
  4. D Eliminar

5.2 Funcionamiento básico de MySQL

# MySQL连接 Shell

mysql -hlocalhost -uroot -ppassword
# mysql 指当前操作连接的数据库
# -hlocalhost -h host 端口,当前数据库的服务器ip地址,域名或者主机名
# -uroot -u user 用户名
# -ppassword -p 用户密码
# 推荐方式 mysql -uroot -p,然后输入密码
-- 展示当前数据库所有数据表
show databases;

-- 创建数据库
create database DBName;

-- 创建数据库修改编码集
create database DBName character set gbk;

-- 查看创建数据库的详细内容
show create database DBName;

-- 修改数据库编码集
alter database DBName character set gbk;

-- 删除对应数据库
drop database DBName;

-- 选择使用数据库
use DBName;

-- 查看当前使用的数据库
select database();

-- 注释类型1
#  注释类型2

6. herramienta de desarrollo de MySQL

Navivat for MySQL 非常不错
SQLyog 小海豚
MySQLWorkBench 免费
IDEA 提供MySQL支持

7. consulta

7.1 El formato básico

select 查询内容 form 从哪里查;
-- 查询内容 字段名 列名
-- 从哪里查 表名

7.1.1 campo de consulta

-- * 所有字段全部查询 (数据库加载时间非常长,数据压力大,不建议)
-- , 逗号分隔查询字段名

7.2 resultados de consulta de la computación de datos de campo

-- 字段直接计算
select SALARY * 12 form table_test;

-- 这里允许加减乘除 + - * / 完成字段的直接算数计算
-- % 不是取余操作,而是占位符

7,3 a re-consulta

select distinct 字段 from table_test;

7.4 alias de campo

-- 字段名 as ‘别名’

select 字段 as '别名' from table_test;

7.2 Clasificación de consultas

-- 基本格式
select fieldName from tbName order by fieldName asc[or desc];

-- 查询结果展示中,按照执行的字段作为标记完成排序

7.2.1 Clasificación condición sola

select fieldName from tbName order by fieldName asc[or desc];

7.2.2 multi-criterio de clasificación

select fieldName from tbName 
order by fieldName1 asc[or desc], fieldName2 asc[or desc];

7.3 Condiciones de investigación

7.3.1 El formato básico

select fieldName from tbName where condition;

determinación 7.3.2 equivalencia

-- Java中的等值判定是 == 或者equals方法
-- 数据库中使用 = 在where后是等值判定 

7.3.3 desigual determinado (> <> = <=! = <>)

-- 查询在员工表内容,工资大于10000 对应的id号,名,和工资
select EMPLOYEE_ID, FIRST_NAME, SALARY
from t_employees
where SALARY > 10000;

-- 查询在员工表内容,工资大于10000 对应的id号,名,和工资
select EMPLOYEE_ID, FIRST_NAME, SALARY
from t_employees
where SALARY >= 10000;

-- 查询在员工表内容,部门ID不等于80 对应的id号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where DEPARTMENT_ID <> 80;

-- 查询在员工表内容,部门ID不等于80 对应的id号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where DEPARTMENT_ID != 80;

7.3.4 lógica de determinación (y, o, no)

-- 查询在员工表内容,要求工资大于10000并且部门编号为80 对应的ID号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where SALARY > 10000 and DEPARTMENT_ID = 80;

-- 查询在员工表内容,要求工资小于2500或者部门编号为90 对应的ID号,名,工资和部门ID
select EMPLOYEE_ID, FIRST_NAME, SALARY, DEPARTMENT_ID
from t_employees
where SALARY < 2500 or DEPARTMENT_ID = 90;

7.3.5 Intervalo entre y

-- 要求between min and max 在min <==> max范围以内,而且要求小值之前,大值不然会报
-- 错,这里区间范围是包含指定的边界

-- 区间范围
select EMPLOYEE_ID, FIRST_NAME, SALARY
from t_employees
where SALARY between 8000 and 10000;

la determinación del valor 7.3.6 NULL

-- is null 指定当前的字段是null
-- is not null 指定当前字段不是null

-- 找出所有提成为null的数据
select FIRST_NAME, COMMISSION_PCT
from t_employees
where COMMISSION_PCT is null;

-- 找出所有提成不是null的数据
select FIRST_NAME, COMMISSION_PCT
from t_employees
where COMMISSION_PCT is not null;

7.3.7 Enumeración de investigación

-- 查询部门编号为60, 70, 90员工名字和对应部门编号
-- in查询效率较低,推荐使用多条件拼接完成查询操作
select FIRST_NAME, DEPARTMENT_ID
from t_employees
where DEPARTMENT_ID in(70, 60, 90);

7.3.8 consulta difusa como

-- LIKE
-- _ 匹配一个字符
-- % 匹配任意长度字符

-- 查询FIRST_NAME,要求FIRST_NAME字段D字母开头后面有4个字符
select FIRST_NAME
from t_employees
where FIRST_NAME like 'D____';

-- -- 查询FIRST_NAME,要求FIRST_NAME字段带有D字母就可以,而且不区分大小写
select FIRST_NAME
from t_employees
where FIRST_NAME like '%D%';

7.3.9 estructura de las ramas de la consulta

case
	when condition1 then ret1
	when condition2 then ret2
	when condition3 then ret3
end
-- 从case开始,到end结束。满足条件对应一个结果,类似于Java中的switch case

-- 查询姓名,工资已经对应工资划分的等级LEVEL
select FIRST_NAME, SALARY,
case
    when SALARY >= 10000 then 'A'
    when SALARY >= 8000 and SALARY < 10000 then 'B'
    when SALARY >= 6000 and SALARY < 8000 then 'C'
    when SALARY >= 4000 and SALARY < 6000 then 'D'
    else 'E'
end as 'LEVEL'
from t_employees;

7.4 de la consulta

-- 语法
select 时间函数([参数列表]);
-- 查询时间情况下,得到的是一个单列单表(虚表)
Funciones de tiempo Descripción funcional
sysdate () La hora actual del sistema (año, mes, día, hora, minuto, segundo)
FECHA Y HORA ACTUAL() La hora actual del sistema (día, mes, año, hora, minuto, segundo)
CURDATE () La fecha actual
CURTIME () hora
semana() La fecha especificada no es de las primeras semanas del año
hora() fecha especificada es hoy en día para las primeras horas
minite () La fecha especificada no es de las primeras horas
segundo() La fecha indicada es los primeros segundos de la hora
select sysdate();
select CURRENT_TIMESTAMP();
select curdate();
select curtime();
select week('2019-11-23');
select now();
select second(sysdate());
select minute(sysdate());
select hour(sysdate());

cadena 7.5 Aplicación

método Descripción funcional
concat (cadena1, cadena2, str3 ...) Cosiendo varias cadenas
inserto (str, pos, solamente, newstr) Cadena especificada posición pos, limitan la longitud len, insertar nueva cadena
inferior (str) A su vez minúscula mayúscula
superior (str) A su vez minúscula mayúscula
subcadena (str, pos, len) cadena especificada, a partir de las pos posición, la longitud len límite
select concat('你好', ' MySQL', ' Oracle公司产品');
select insert('ABCDEFG', 3, 3, '你好');
select upper('abcdefg');
select lower('ABCDEF');
select substring('ABCDEFG', 2, 5);

7.6 incorporado en el método

método Descripción funcional
suma() Siempre hay un campo especificado
avg () Un valor medio del campo especificado
max () El valor máximo de un campo especificado
(I) valor mínimo de un campo especificado
contar() campo especifica el número de filas
-- 工资总和
select sum(SALARY)
from t_employees;

-- 工资平均数
select avg(SALARY)
from t_employees;

-- 工资最大值
select max(SALARY)
from t_employees;

-- 工资最小值
select min(SALARY)
from t_employees;

-- 当前有多少员工计数
select count(*)
from t_employees;

-- 当前有多少员工计数
-- count(1) 蜜汁比count(*) 快一点
select count(1)
from t_employees;

-- 统计有多少人有绩效
select count(COMMISSION_PCT)
from t_employees;

Publicado 50 artículos originales · ganado elogios 43 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/m0_37771142/article/details/104974257
Recomendado
Clasificación