数据库管理
删除数据库
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