[MySQL] 5 minutos para aprender operaciones básicas de bases de datos (1)

(El texto completo tiene unas 5500 palabras y el tiempo de lectura esperado es de 5 minutos)


1. ¿Qué es SQL?

Lenguaje de consulta estructurado: lenguaje de consulta estructurado

clasificación:

1) El lenguaje de definición de datos DDL (Data Definition Language) se
utiliza para definir objetos de base de datos: bases de datos, tablas, columnas, etc. Palabras clave: crear, eliminar, modificar, etc.
2) El lenguaje de manipulación de datos DML (lenguaje de manipulación de datos) se
utiliza para agregar, eliminar y modificar los datos en la tabla de la base de datos. Palabras clave: insertar, borrar, actualizar, etc.

3) DQL (Data Query Language) se
utiliza para consultar los registros (datos) de las tablas en la base de datos. Palabras clave: seleccionar, dónde, etc.
4) El lenguaje de control de datos (entender) DCL (lenguaje de control de datos) se
utiliza para definir los derechos de acceso a la base de datos y los niveles de seguridad, y crear usuarios. Palabras clave: GRANT, REVOKE, etc.

2. Acerca de las operaciones CRUD de la base de datos

#Create
create database hzyc;
create database if not exists hzyc98 character set gbk;
#Retrieve
show databases;
show create database hzyc98;
#Update
alter database hzyc98 character set gbk;
#Delete
drop database hzyc98;
drop database if exists hzyc98; 
#查看当前使用的数据库
select database();
show tables;
use hzyc98

1. Lista de operaciones:

El nombre / encabezado de la tabla es: zoomlist

#查
show tables; -- show tables_in_hzyc98
desc zoomlist;

#增
create table zoomlist (
	Name  varchar(30),
	Age	  int,
	ID	  int,
	Height double(5,1)
)

#删
drop table if exists zoomlist;

#改
alter table zoomlist rename to newzoomlist;
alter table zoomlist character set gbk;
alter table zoomlist add Name varchar(20);#加列
alter table zoomlist change Age newAge int;
alter table zoomlist modify Age char(8);
alter table zoomlist drop Name;

/*设置类型:*/
 - intdouble(5,1)varchar(20) 
 - date 	#yyyy-MM-dd
 - datetime #yyyy-MM-dd HH:mm:ss 
 - timestamp#时间戳 yyyy-MM-dd HH:mm:ss

2. Opere los datos en la tabla:

#除了数字,其他都需要引号来赋值
insert into zoomlist (Name, Age, ID, Height) value('美洲豹',5,'20201207',3.2);
insert into zoomlist ('美洲豹',5,'20201207',3.2);

#删除
delete from zoomlist where [条件];
delete from zoomlist;
TRUNCATE TABLE zoomlist;

#修改
update zoomlist set Name = '大笨象' Age = 12 where address = '深圳';
update zoomlist set address = '深圳';

una consulta

#查询
#尽量不要用 * 先desc一下表里面有啥,然后在决定展示什么东西。
SELECT * FROM zoomlist; 
SELECT Name,Age FROM zoomlist;	 --只显示某个列,方便查看!
SELECT DISTINCT Name FROM zoomlist; --去除结果中[完全重复]的

SELECT Name,score1,score2,scroe1+scroe2 FROM zoomlist;--as:自定义名字展示,也可以不写as
SELECT Name,scroe1+IFNULL(scroe2,0) 总分 FROM zoomlist; --ifnull遇到没有值的直接给赋值为0
SELECT Name,score1,score2,scroe1+IFNULL(scroe2,0) AS 总分 --显示表头
FROM zoomlist,peoplelist; --从zoomlist、peoplelist里面获取

b.donde condiciones:

* ><<=>==!=<>--不等号
* andornot --关键字比&&、||、!好用推荐
* BETWEEN...AND --范围内都符合就行
* IN( 集合) --特定值的范围
* LIKE:模糊查询(1)_:单个任意字符;(2%:多个任意字符
* IS NULL

例子:
select Name, Age from Student where age between 12 and 20;
select Name, Age from Student where age in (12,14,16,18);
select Name, Age from Student where name like '%牛%'; --查名字里面包含了牛的学生
select Name, Age from Student where name is not null; -- 查询学生:名字空的不查

Tres, consulta

1. Ordenar consulta

select * from employee order by age;
select * from employee order by age asc; --升序
select * from employee order by age desc; --降序
select * from employee order by age desc height desc; --第一个一样的时候,才会用第二个方法排序(age降序,身高降序)

2. Funciones agregadas (cálculo de columnas)

Si se excluyen los datos nulos y los datos nulos no participarán en el cálculo, no se informará ningún error.

  1. contar: cuenta el número
  2. min, max, sum, avg: evaluación
select count(*) from student;
select count(ifnull(age,20)) from student; 
select count(age) from student;--如果没有就不记录
select count(id) from student; --我们一般选用主键来统计个数

select max(age) from student;
select min(age) from student;
select sum(age) from student;
select avg(age) from student;

3. Consulta grupal

Después de agrupar por dos grupos diferentes, ya no pueden ver a un individuo independiente.

  • Campos a consultar después de la agrupación: campos de agrupación, funciones agregadas.
  • ¿La diferencia entre dónde y tener?
    • Donde se define antes de agrupar y tener se define después de agrupar;
    • Si no cumple con las condiciones, no participará en la agrupación, no se mostrará si no cumple con las condiciones;
    • Solo el tener puede ser seguido por un juicio de función agregada.
select sex,count(name) from employee group by sex having count(name)<6;

select sex,count(name) from employee where name = '张四' group by sex ;

4. Ordenar consulta

limit es un dialecto de MySQL, utilizado para paginación

SELECT * FROM student LIMIT 0,5; -- 第1页,从0索引开始,读5个数据

SELECT * FROM student LIMIT 7,10; -- 第2页,从7索引开始(第8个数据),读10个数据

Cuatro, limitaciones

  • restricció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

1. Restricción no vacía: no nula

-- 建表时添加非空约束:
 create table employee(
 	name char(30),
 	sex char(8) not null
 )
 alter table employee modify sex char(8) not null; --添加非空约束
 alter table employee modify sex char(8); --破除非空约束
 

Instancia de restricción no vacía

2. Restricción única

Solo puede haber un valor nulo, no más;
eliminar restricciones solo puede usar el índice de caída para eliminar restricciones únicas

-- 建表时添加唯一约束:
 create table employee(
 	name char(30),
 	sex char(8),
 	score int unique --分数要唯一
 )
 
--添加唯一约束
alter table employee modify name char(8) unique;
 
--破除唯一约束
-- alter table employee modify sex char(8); 不可用
--破除name身上的unique约束用drop index除去索引
alter table employee drop index name; 

Operación de ejemplo:

La restricción única no se puede modificar directamente
drop elimina la restricción única con éxito

3. Restricción de clave principal: clave principal

Una tabla tiene solo una clave principal, que no está vacía y es única
como identificación única de registros, equivalente al índice

-- 建表时添加主键约束:
 create table employee(
 	id int  primary key, --给id加上主键约束
 	name char(30),
 )
 
--添加唯一约束
alter table employee modify id int primary key;
 
--破除唯一约束
-- alter table employee modify id int; 不可用!
--破除id身上的primary key约束只能用drop primary key
alter table employee drop primary key; 

4. Crecimiento automático: auto_increment

Solo es útil para valores y, por lo general, se puede colocar en la clave principal para el crecimiento automático.

-- 建表时添加auto_increment:
 create table employee(
 	id int auto_increment, --给id加上auto_increment
 	name char(30),
 )
 
--添加auto_increment,自动从1开始
alter table employee modify id int auto_increment;
--设置初值
alter table employee auto_increment = 100;
 
--破除auto_increment
alter table employee modify id int; 

Cinco, resumen

Aprendimos qué es SQL, hicimos una introducción simple y también enumeramos algunas operaciones básicas de MySQL, así como consultas y restricciones.

Pero acabo de estar expuesto a MySQL, por lo que los operadores básicos son relativamente nuevos y necesito aprender más y practicar más para obtener el verdadero conocimiento.

En el futuro, también aprenderemos sobre las múltiples relaciones de MySQL, consultas de múltiples tablas, transacciones (no estoy seguro de qué son), declaraciones JDBC, druida de grupo de conexiones de base de datos, JDBCTemplate ... Todavía hay muchas cosas por aprender, pero la tarea aún es ¡Se trata de ordenar las cosas básicas y consolidar la base es la última palabra! ! !

Ejemplo de error:

Si no escribe los nombres de las columnas al agregar datos, debe proporcionar todos los valores de las columnas; de lo contrario, se informará un error.
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43801418/article/details/110820203
Recomendado
Clasificación