[MySQL] Agregar, eliminar, verificar y modificar estructuras de bases de datos y tablas


Los estudiantes que necesitan servidores en la nube y otros productos en la nube para aprender Linux pueden pasar a / --> Tencent Cloud <-- / --> Alibaba Cloud <-- / --> Huawei Cloud <-- / sitio web oficial, los servidores en la nube livianos son de bajo costo a 112 yuanes al año, y los nuevos usuarios pueden disfrutar de descuentos ultrabajos en su primer pedido.


 Tabla de contenido

1. Funcionamiento de la biblioteca

1. Crea una base de datos

2. La codificación utilizada por la base de datos.

2.1 Consultar el conjunto de codificación y el conjunto de verificación

2.2 Ver el juego de caracteres y verificar el juego de la base de datos

2.3 Crear una base de datos para especificar el juego de caracteres y verificar el juego

2.4 Los datos filtrados por diferentes conjuntos de verificación tienen resultados diferentes.

3. Ver la base de datos

4. Modificar la base de datos

5. Eliminar la base de datos

6. Copia de seguridad y recuperación de bases de datos

6.1 Copia de seguridad de toda la base de datos

6.2 Restaurar toda la base de datos

6.3 Realizar una copia de seguridad de una sola tabla o de varias bases de datos

7. Verifique el estado de la conexión de la base de datos.

2. Operaciones de mesa

1. Creación de mesa

2. Ver la tabla

2.1 Ver tabla

2.2 Ver información detallada al crear una tabla

3. Modificación de la tabla

3.1 Insertar datos en la tabla.

3.2 Agregar nuevos campos a la tabla

3.3 Modificar el nombre de la tabla

3.4 Modificar el nombre de la columna de una columna en la tabla

3.5 Modificar el tipo de datos de una columna en la tabla

4. Eliminación de tabla

4.1 Eliminar una columna de la tabla

4.2 Eliminar tabla


1. Funcionamiento de la biblioteca

1. Crea una base de datos

#创建数据库————本质是在/var/lib/mysql中创建一个目录
mysql> create database database1;
Query OK, 1 row affected (0.01 sec)
#进入数据库
mysql> use test1;
Database changed
#创建表
mysql> create table if not exists person(name varchar(20));
Query OK, 0 rows affected (0.34 sec)

2. La codificación utilizada por la base de datos.

Al crear una base de datos, hay dos conjuntos de codificación:

1. Conjunto de codificación de la base de datos: el conjunto de codificación para los datos de almacenamiento de la base de datos.

2. Conjunto de verificación de la base de datos: admite la codificación utilizada por la base de datos para la comparación de campos, es esencialmente un formato de codificación utilizado para leer datos en la base de datos.

2.1 Consultar el conjunto de codificación y el conjunto de verificación

#查询当前MySQL的编码集
mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| character_set_database | utf8  |
+------------------------+-------+
1 row in set (0.00 sec)
#查询当前MySQL的校验集
mysql> show variables like 'collation_database';
+--------------------+-----------------+
| Variable_name      | Value           |
+--------------------+-----------------+
| collation_database | utf8_general_ci |
+--------------------+-----------------+
1 row in set (0.01 sec)

2.2 Ver el juego de caracteres y verificar el juego de la base de datos

#查看数据库支持的所有字符集
show charset;
#查看数据库支持的所有校验集
show collation;
#在数据库目录下查看d1数据库的字符集和校验集
[root@VM-4-11-centos mysql]# cat d2/db.opt
default-character-set=utf8
default-collation=utf8_general_ci

2.3 Crear una base de datos para especificar el juego de caracteres y verificar el juego

#创建数据库时指定字符集
mysql> create database d2 charset=utf8;
Query OK, 1 row affected (0.00 sec)

mysql> create database d3 character set utf8;
Query OK, 1 row affected (0.00 sec)

#创建数据库时指定字符集和校验集
mysql> create database d4 charset=utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

Cuando creamos una base de datos sin especificar un juego de caracteres y reglas de verificación, el sistema usa el juego de caracteres predeterminado: utf8, y las reglas de verificación son: utf8_ general_ ci

2.4 Los datos filtrados por diferentes conjuntos de verificación tienen resultados diferentes.

#创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(10));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
#进行查询
mysql> use test1;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a    |
| A    |
+------+
2 rows in set (0.01 sec)
#创建一个数据库,校验规则使用utf8_ bin[区分大小写]
create database test2 collate utf8_bin;
use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
#进行查询
mysql> use test2;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a    |
+------+
2 rows in set (0.01 sec)

Seleccione diferentes conjuntos de verificación y los resultados filtrados por la base de datos serán diferentes.

3. Ver la base de datos

#查看数据库
mysql> show databases;
#进入数据库
mysql> use test1;
Database changed
#查看当前数据库中的所有表
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| person          |
+-----------------+
1 row in set (0.00 sec)
#查看自己当前处于哪个表
mysql> select database();
+------------+
| database() |
+------------+
| test1      |
+------------+
1 row in set (0.01 sec)
#查看数据库当初的创建指令
mysql> show create database test2;
+----------+---------------------------------------------------------------------------------+
| Database | Create Database                                                                 |
+----------+---------------------------------------------------------------------------------+
| test2    | CREATE DATABASE `test2` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */ |
+----------+---------------------------------------------------------------------------------+
1 row in set (0.00 sec)

1. MySQL recomienda que nuestras palabras clave estén en mayúscula, pero no es obligatorio.

2. La comilla invertida `` en el nombre de la base de datos es para evitar que el nombre de la base de datos que se utiliza sea una palabra clave.

3. /*!40100 default.... */ Esto no es un comentario, significa que la versión actual de MySQL es mayor que la versión 4.01, así que ejecute esta oración.

4. Modificar la base de datos

#修改数据库的字符集和校验集
mysql> alter database test1 charset=gbk collate gbk_chinese_ci;
Query OK, 1 row affected (0.01 sec)

5. Eliminar la base de datos

#删除数据库————本质是在/var/lib/mysql中删除一个目录
#不建议直接删除数据库,建议备份后删除
mysql> drop database database1;
Query OK, 0 rows affected (0.01 sec)

6. Copia de seguridad y recuperación de bases de datos

6.1 Copia de seguridad de toda la base de datos

#未启动MySQL客户端使用,备份的是对该数据库的有效操作
mysqldump -P3306 -uroot -p -B test1 > test.sql

Este es un comando MySQL utilizado para exportar datos de una base de datos a un archivo SQL. Específicamente, este comando exportará todos los datos de la base de datos denominada test1 a un archivo denominado test.sql.

El siguiente es el significado de cada parámetro en este comando:

  • -P3306: especifique el número de puerto del servidor MySQL como 3306.
  • -uroot: utilice el nombre de usuario raíz para conectarse al servidor MySQL.
  • -p: Solicita al usuario una contraseña para conectarse al servidor MySQL.
  • -B prueba1: especifique el nombre de la base de datos que se exportará como prueba1.
  • > test.sql: envíe los datos exportados a un archivo llamado test.sql.

Tenga en cuenta que antes de ejecutar este comando, debe asegurarse de tener permisos suficientes para exportar los datos en la base de datos. Además, si desea exportar varias bases de datos, puede especificar varios nombres de bases de datos después del parámetro -B, separados por espacios.

6.2 Restaurar toda la base de datos

mysql> source /root/MySQL/test.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)

El proceso de recuperación consiste en volver a ejecutar todos los comandos de copia de seguridad.

6.3 Realizar una copia de seguridad de una sola tabla o de varias bases de datos

#仅备份几张张表
# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
#同时备份多个数据库
# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

Nota: La copia de seguridad se realiza desde la línea de comandos del shell, no desde el cliente MySQL. Si realiza una copia de seguridad de una base de datos sin el parámetro -B, al restaurar la base de datos, primero debe crear una base de datos vacía, luego usar la base de datos y luego usar la fuente para restaurar.

7. Verifique el estado de la conexión de la base de datos.

mysql> show processlist;
+----+------+-----------+-------+---------+------+----------+------------------+
| Id | User | Host      | db    | Command | Time | State    | Info             |
+----+------+-----------+-------+---------+------+----------+------------------+
| 40 | root | localhost | test1 | Query   |    0 | starting | show processlist |
+----+------+-----------+-------+---------+------+----------+------------------+
1 row in set (0.01 sec)

2. Operaciones de mesa

1. Creación de mesa

mysql> create table if not exists use1(
    -> id int,
    -> name varchar(20) comment '用户名',
    -> birthday date comment '用户生日'
    -> )character set utf8 collate utf8_general_ci engine MyIsam;
Query OK, 0 rows affected (0.02 sec)

mysql> create table if not exists use2(
    -> name varchar(20) comment '用户名',
    -> passwword char(32) comment '用户密码',
    -> birthday date comment '用户生日'
    -> )charset=utf8 collate=utf8_general_ci engine=InnoDB;
Query OK, 0 rows affected (0.15 sec)

Diferentes motores de almacenamiento utilizan diferentes archivos para crear tablas.

El motor de almacenamiento de la tabla de usuarios es MyISAM y hay tres archivos diferentes en el directorio de datos, a saber:

usuarios.frm: estructura de la tabla

usuarios.MYD: datos de la tabla

usuarios.MYI: índice de tabla

2. Ver la tabla

2.1 Ver tabla

#查看当前处于哪个数据库
mysql> select database();
+------------+
| database() |
+------------+
| use_db     |
+------------+
1 row in set (0.01 sec)
#查看数据库中存在的表
mysql> show tables;
+------------------+
| Tables_in_use_db |
+------------------+
| use1             |
| use2             |
+------------------+
2 rows in set (0.00 sec)
#查看表的属性
mysql> desc use1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

2.2 Ver información detallada al crear una tabla

#查看创建表时的详细信息
mysql> show create table use1;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                         |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| use1  | CREATE TABLE `use1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL COMMENT '用户名',
  `birthday` date DEFAULT NULL COMMENT '用户生日'
) ENGINE=MyISAM DEFAULT CHARSET=utf8        |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

#加上\G选项精简信息
mysql> show create table use1 \G
*************************** 1. row ***************************
       Table: use1
Create Table: CREATE TABLE `use1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL COMMENT '用户名',
  `birthday` date DEFAULT NULL COMMENT '用户生日'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

3. Modificación de la tabla

3.1 Insertar datos en la tabla.

#在表中插入数据
mysql> insert into user values (1,'张三','2000-10-1');
Query OK, 1 row affected (0.00 sec)
mysql> insert into user values (2,'李四','1978-10-1');
Query OK, 1 row affected (0.01 sec)

#查看表内容
mysql> select* from user;
+------+--------+------------+
| id   | name   | birthday   |
+------+--------+------------+
|    1 | 张三   | 2000-10-01 |
|    2 | 李四   | 1978-10-01 |
+------+--------+------------+
2 rows in set (0.03 sec)
mysql> insert into t3 (id,online) values (123,1);
Query OK, 1 row affected (0.03 sec)

3.2 Agregar nuevos campos a la tabla

#在表中插入字段,新增字段位于birthday之后
mysql> alter table user add image_path varchar(128) comment '用户头像路径' after birthday;
Query OK, 2 rows affected (0.03 sec)
Records: 2  Duplicates: 0  Warnings: 0
#打印表
mysql> select* from user;
+------+--------+------------+------------+
| id   | name   | birthday   | image_path |
+------+--------+------------+------------+
|    1 | 张三   | 2000-10-01 | NULL       |
|    2 | 李四   | 1978-10-01 | NULL       |
+------+--------+------------+------------+
2 rows in set (0.00 sec)

3.3 Modificar el nombre de la tabla

#修改表名为user
mysql> alter table use1 rename to user;
Query OK, 0 rows affected (0.01 sec)

3.4 Modificar el nombre de la columna de una columna en la tabla

#查一下创建表的SQL
mysql> show create table user\G;
*************************** 1. row ***************************
       Table: user
Create Table: CREATE TABLE `user` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(60) DEFAULT NULL,
  `birthday` date DEFAULT NULL COMMENT '用户生日'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

#修改name列名为xingming。注意新字段需要完整定义
mysql> alter table user change name xingming varchar(60) DEFAULT NULL;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

3.5 Modificar el tipo de datos de una columna en la tabla

#将name字段的属性由varchar(20)修改为varchar(60)
#但是这样修改将会丢失COMMENT '用户姓名'字段
mysql> alter table user modify name varchar(60);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

#9列为原先创建表时的语句,10列为修改后的语句。
#COMMENT '用户姓名'将丢失,所以修改表中某一列的属性时,将创建时的SQL复制过来再进行修改
`name` varchar(20) DEFAULT NULL COMMENT '用户姓名',
`name` varchar(60) DEFAULT NULL,

Modificar el tipo de datos de una columna en la tabla es una modificación de sobrescritura. Para evitar que se pierdan los campos establecidos al crear la tabla, primero copie la información de creación de la tabla original y luego modifíquela.

4. Eliminación de tabla

4.1 Eliminar una columna de la tabla

#删除user
mysql> alter table user drop image_path;
Query OK, 2 rows affected (0.05 sec)
Records: 2  Duplicates: 0  Warnings: 0

Tenga cuidado al eliminar, los datos de la columna correspondiente se eliminarán después de la eliminación.

4.2 Eliminar tabla

mysql> drop table user;
Query OK, 0 rows affected (0.00 sec)

Supongo que te gusta

Origin blog.csdn.net/gfdxx/article/details/131160432
Recomendado
Clasificación