1、查看容器
- docker ps
2、进入容器
- docker exec -it 7db8a7 /bin/bash
3、连接mysql
- mysql -u root -p
4、显示所有数据库
- show databases;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| audit_project_1 |
| demo996 |
| demo998 |
| mysql |
| performance_schema |
| plant |
| sys |
| test |
| yoyocmf |
+--------------------+
5、进入指定数据库
- mysql -u root -p yoyocmf;
mysql> exit;
Bye
root@7db8a712875a:/# mysql -u root -p yoyocmf;
6、查看库中有哪些数据表
- show tables;
mysql> show tables;
+---------------------------+
| Tables_in_yoyocmf |
+---------------------------+
| yoyocmf_attachment |
| yoyocmf_attachment_index |
| yoyocmf_auth_assignment |
| yoyocmf_auth_item |
| yoyocmf_auth_item_child |
| yoyocmf_auth_rule |
| yoyocmf_enewsclass |
| yoyocmf_enewsdolog |
| yoyocmf_enewslog |
| yoyocmf_enewspublic |
| yoyocmf_enewstable |
| yoyocmf_enewstemp |
| yoyocmf_enewsuser |
| yoyocmf_enewsuser_profile |
| yoyocmf_enewswfinfo |
| yoyocmf_enewswfinfolog |
| yoyocmf_enewsworkflow |
| yoyocmf_enewsworkflowitem |
| yoyocmf_migration |
+---------------------------+
19 rows in set (0.02 sec)
7、查看指定数据表有哪些字段
- describe yoyocmf_enewsuser;
mysql> describe yoyocmf_enewsuser;
+----------------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+----------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(255) | NO | UNI | NULL | |
| auth_key | varchar(32) | NO | | NULL | |
| password_hash | varchar(255) | NO | | NULL | |
| password_reset_token | varchar(255) | YES | UNI | NULL | |
| email | varchar(120) | NO | UNI | NULL | |
| group_id | smallint(5) unsigned | NO | | 1 | |
| login_num | int(10) unsigned | NO | | NULL | |
| last_time | int(10) unsigned | NO | | NULL | |
| last_ip | varchar(20) | NO | | NULL | |
| true_name | varchar(20) | NO | | NULL | |
| pre_time | int(10) unsigned | NO | | NULL | |
| pre_ip | varchar(20) | NO | | NULL | |
| status | tinyint(3) | NO | | 0 | |
| created_at | int(11) | NO | | NULL | |
| updated_at | int(11) | NO | | NULL | |
+----------------------+----------------------+------+-----+---------+----------------+
16 rows in set (0.01 sec)
Field:列的名称。
Type:列的数据类型。许多数据类型都具有最大长度限制。例如,int(11) 指定一个可包含 11 位数的整数,varchar(16) 指定包含最多 16 字节数据的可变长度字符串。请参阅 “SQL 数据类型” 部分,了解有关数据类型的更多信息。
Null:指定是否允许该列拥有 null(空)值。
Key:如果该列是一个键,则表示键类型。主 (PRI) 键必须包含非 null 的唯一值。
Default:指定如果添加一条记录且没有为该列提供数据,则在该列中放入什么样的默认值。
Extra:指定额外属性(例如 auto_increment,它用于创建唯一递增编号,比如序列号)。
8、复制表结构及数据到新表
- CREATE TABLE 新表 SELECT * FROM 旧表
mysql> create table yoyocmf_monitor_environment_data_bak SELECT * FROM yoyocmf_monitor_environment_data where created_at < 1569945599;
Query OK, 2 rows affected (0.09 sec)
Records: 2 Duplicates: 0 Warnings: 0
9、只复制表结构到新表
- CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2 或CREATE TABLE 新表 LIKE 旧表
10、复制旧表的数据到新表(假设两个表结构一样)
- INSERT INTO 新表 SELECT * FROM 旧表
11、复制旧表的数据到新表(假设两个表结构不一样)
- INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表
12、这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表
- show create table 旧表;