MySQL笔记:命令行执行 and 注释操作
MySQL 语句参数
-A(-D) 指定数据库;
-h 指定ip,远程数据库需要,导出本地数据库可以省略;
-u 用户名;
-p 密码;
-ss 指定导出的结果是否包含列名;
-e 后面加执行的 sql 语句 (e -> execute);
mysql -A db_name -h host_name -u user_name -p -e "SELECT * FROM table_name LIMIT 100;" > apps.csv
导出MySQL语句的执行结果
方法1
select count(id) from u_menu into outfile '/opt/abc/test.txt';
这个方法会遇到权限问题,可以大致参考这篇文章导出致文件的权限问题
方法2
直接在命令行执行sql语句
mysql -uroot -p -A scheme -e "select count(id) from user;" > /opt/abc/test.txt
在命令行中执行sql文件
方法1
# 进入mysql模式
mysql -uroot -p
# 切换数据库等其他操作
# 执行sql文件
source ab_file_path.sql
方法2
mysql -uroot -p -Dschemename<ab_file_path.sql
# 输入数据库密码后会直接显示结果
综合应用
mysql -uroot -p'rootpassword' -Dschema_name < /opt/abc/command.sql > /opt/abc/result.sql
查询数据库中的注释
查询表的注释
SELECT
table_name 表名,
table_comment 表说明
FROM
information_schema.TABLES
WHERE
table_schema = '数据库名'
ORDER BY
table_name
# 替换 '数据库名' 为实际的数据库名称
查询所有表和字段的注释
SELECT
a.table_name 表名,
a.table_comment 表说明,
b.COLUMN_NAME 字段名,
b.column_comment 字段说明,
b.column_type 字段类型,
b.column_key 约束
FROM
information_schema. TABLES a
LEFT JOIN information_schema. COLUMNS b ON a.table_name = b.TABLE_NAME
WHERE
a.table_schema = '数据库名'
ORDER BY
a.table_name
查询所有字段注释
# 方法1
show full columns from 表名;
# 方法2
select
COLUMN_NAME 字段名,column_comment 字段说明,column_type 字段类型, column_key 约束
from information_schema.columns
where table_schema='数据库名' and table_name='表名';
# 方法3
show create table 表名;