xxx.csv 如果导出结果中涉及到中文,可以使用--default-character-set=" />

MySQL使用笔记

mysql,使用,笔记 · 浏览次数 : 64

小编点评

**查询结果导出到文件终端命令:** ```sql select * from test INTO OUTFILE '/var/lib/mysql/xxx.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; ``` **注意:** * `xxx.csv` 是导出文件的名称。 * `test` 是要导出查询结果的表名称。 * `','` 是用于分隔结果的字符。 * `\n` 是用于换行符的字符。

正文

查询结果导出到文件

终端命令下直接导出

除了在mysql命令行下导出查询结果,还可以在终端直接导出查询结果到文件中:

mysql -uroot -p -e "select * from test" > xxx.csv
如果导出结果中涉及到中文,可以使用--default-character-set=utf8mb4指定查询结果使用utf8mb4字符集

INTO OUTFILE

可以在mysql命令行下使用INTO OUTFILE参数将查询结果导出到文件中:

select * from test INFO OUTFILE '/var/lib/mysql/xxx.csv'

使用INTO OUTFILE时需要设置secure_file_priv参数,所以不推荐使用

mysql导出数据库、表结构

mysqldump -uroot -p test_db > test_db.sql
mysqldump -uroot -p test_db test_table > test_table.sql

只导出表结构,不导出数据:

mysqldump -uroot -p -d test_db > test_db.sql
mysqldump -uroot -p -d test_db test_table > test_table.sql

mysql导出表中的前n条数据

mysqldump -uroot -p test_db --where="true limit n" > test_db.sql
mysqldump -uroot -p test_db test_table --where="true limit n" > test_table.sql

mysql创建索引

1. CREATE TABLE

建表时指定索引:

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `password` varchar(60) NOT NULL,
  `created_at` timestamp NOT NULL,
  `updated_at` timestamp NOT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL,
  `phone` varchar(32) DEFAULT NULL,
  `department` varchar(128) DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `idx_username` (`username`)
);

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `password` varchar(60) NOT NULL,
  `created_at` timestamp NOT NULL,
  `updated_at` timestamp NOT NULL,
  `deleted_at` timestamp NULL DEFAULT NULL,
  `phone` varchar(32) DEFAULT NULL,
  `department` varchar(128) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE `idx_username` (`username`)
);

2. CREATE

/* 创建普通索引 */
CREATE INDEX idx_username ON user (username);

/* 创建唯一索引 */
CREATE UNIQUE INDEX idx_username ON user (username);

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。

3. ALTER TABLE

ALTER TABLE可以用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

/* 创建普通索引 */
ALTER TABLE user ADD INDEX idx_username(username);  

/* 创建唯一索引 */
ALTER TABLE user ADD UNIQUE INDEX idx_username(username);  

4. 删除索引

DROP INDEX idx_username on user;

5. 显示索引信息

SHOW INDEX FROM user\G;

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin92
Github: mengbin92
cnblogs: 恋水无意


与MySQL使用笔记相似的内容:

MySQL使用笔记

查询结果导出到文件 终端命令下直接导出 除了在mysql命令行下导出查询结果,还可以在终端直接导出查询结果到文件中: mysql -uroot -p -e "select * from test" > xxx.csv 如果导出结果中涉及到中文,可以使用--default-character-set=

[转帖]Mysql使用limit深度分页优化

https://www.cnblogs.com/jackssybin/p/16257505.html 1、背景: mysql使用select * limit offset, rows分页在深度分页的情况下。性能急剧下降。 例如:select * 的情况下直接⽤limit 600000,10 扫描的是

[转帖]MySQL该使用哪种CPU架构服务器?

https://www.cnblogs.com/zhoujinyi/p/16880861.html 1. 摘要 近期,阿里云推出基于 ARM 架构的 RDS MySQL 和 RDS PostgreSQL 实例,现处于邀测阶段,阿里云宣传 ARM 架构的亮点是:在价格下降13%的基础上,平均性能 AR

[转帖]mysql - 使用文件中的 mysql 加载数据格式化 csv 日期列

https://www.coder.work/article/2481907#:~:text=LOAD%20DATA%20INFILE%20%27%2Finvoices%2Finvoice1381301986.csv%27%20INTO%20TABLE%20invoice_table%20FIELD

MySQL高级4-索引的使用规则

一、最左前缀法则 如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列,如果跳跃某一列,索引将部分失效(后面的字段索引失效) 示例1:account_transaction表中创建一个联合索引,使用method字段+trader_staff_

[转帖]ARM64 CentOS系统下MySQL使用jemalloc时的问题和解决方法

https://aijishu.com/a/1060000000321521 本文主要介绍在ARM64 CentOS系统下,MySQL使用jemalloc作为内存管理器时,内存占用问题的分析过程和解决方法。 Jemalloc 简介 Jemalloc是由Jason Evans在FreeBSD项目中引入

MySQL入门到实战详细教程

MySQL介绍 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品,它广泛应用于各种Web应用程序和网站,MySQL使用结构化查询语言(SQL)进行数据的管理和操作。 MySQL主要特点 开源免费:MySQL是一个开源项目,可以

MySQL 表分区使用实践

在使用 MySQL 8.0 表分区时,需要注意以下一些关键事项和最佳实践: 支持的存储引擎: MySQL 8.0 表分区仅支持一些特定的存储引擎,如 InnoDB 和 NDB(NDB 是 MySQL Cluster 存储引擎)。因此,在选择分区时,请确保你的表使用的是支持分区的存储引擎。 分区键的选

使用MySQL存储过程提高数据库效率和可维护性

MySQL 存储过程是一种强大的数据库功能,它允许你在数据库中存储和执行一组SQL语句,类似于编程中的函数。存储过程可以大幅提高数据库的性能、安全性和可维护性。本文将详细介绍MySQL存储过程的使用。 什么是MySQL存储过程? MySQL存储过程是一组预编译的SQL语句,它们以一个名称存储在数据库

Python中使用MySQL模糊查询的方法

本文详细介绍了Python中使用MySQL模糊查询的两种方法,一种是使用pymysql库的方法,另外一种是使用mysql-connector-python库的方法。