mysql数据库管理

数据库管理

删除数据库

drop database testdb;

创建数据库

CREATE DATABASE testdb;

创建数据库,并指定编码utf8

CREATE DATABASE `testdb` CHARACTER SET utf8 COLLATE utf8_general_ci;

创建数据库,指定编码utf8mb4

CREATE DATABASE  `testdb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

修改/etc/my.cnf 文件, 使默认编码集为utf8-mb4,修改完成后需重启数据库

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

数据备份

数据导入

通过mysql命令导入数据

# mysql -u用户名    -p密码    <  要导入的数据库数据(test.sql)
mysql -uroot -p123456 < test.sql

source 命令导入

source /home/abc/abc.sql

数据导出

使用 SELECT ... INTO OUTFILE语句导出数据

mysql> SELECT * FROM test_table 
    -> INTO OUTFILE '/tmp/test.txt';

可以通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'
    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';

生成一个文件,各值用逗号隔开。

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

备份所有数据库,可以使用以下命令

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

导出整个数据库的数据,可以使用以下命令:

$ mysqldump -u root -p TEST_DB > database_dump.txt
password ******

可以使用以下命令将导出的数据直接导入到远程的服务器上

$ mysqldump -u root -p database_name \
       | mysql -h other-host.com database_name

数据表操作

清空数据表

# 方式1
mysql> truncate table table_name;
# 方式2
mysql> delete * from table_name;
# truncate、delete 清空表数据的区别 :
# truncate 是整体删除 (速度较快),delete是逐条删除 (速度较慢)
# truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete高的原因
# truncate 不激活trigger (触发器),但是会重置Identity (标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的 ID数。而 delete 删除以后,identity 依旧是接着被删除的最近的那一条记录ID加1后进行记录。如果只需删除表中的部分记录,只能使用 DELETE语句配合 where条件

查看数据字段信息

mysql> DESC table_name;

查看表创建命令

SHOW CREATE TABLE table_name
上一篇
下一篇