命令行:登录MySQL并在一行中执行命令

命令行:登录MySQL并在一行中执行命令,mysql,command-line,Mysql,Command Line,我经常发现需要检查表结构(例如在编写PHP脚本时检查列名)。我唯一的目标是:速度。我使用“Adminer”,点击几下就可以查看它。但我想更快地完成这项工作,因为我总是打开一个命令行窗口。因此,我想创建一个函数,允许我执行以下操作: mysql-uuser-ppassword&&USE-database;&&描述表格 我会以一种我可以称之为: 描述数据库表 瞧,我得到了数据库结构。但我的问题是:如何登录MySQL并在一个脚本中运行某些查询??我还没有找到这样做的方法 mysql database

我经常发现需要检查表结构(例如在编写PHP脚本时检查列名)。我唯一的目标是:速度。我使用“Adminer”,点击几下就可以查看它。但我想更快地完成这项工作,因为我总是打开一个命令行窗口。因此,我想创建一个函数,允许我执行以下操作:

mysql-uuser-ppassword&&USE-database;&&描述表格

我会以一种我可以称之为:

描述数据库表

瞧,我得到了数据库结构。但我的问题是:如何登录MySQL并在一个脚本中运行某些查询??我还没有找到这样做的方法

mysql database -uuser -ppassword -e "describe table;"
例如:

mysql -uuser -ppassword mysql -e "describe time_zone;"
+------------------+------------------+------+-----+---------+----------------+
| Field            | Type             | Null | Key | Default | Extra          |
+------------------+------------------+------+-----+---------+----------------+
| Time_zone_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| Use_leap_seconds | enum('Y','N')    | NO   |     | N       |                |
+------------------+------------------+------+-----+---------+----------------+
如果您正在寻找一种在shell中对其进行别名的方法,则可以使用如下函数:

function describe() { mysql -uuser -ppassword $1 -e "describe $2;"; }
describe mysql time_zone
+------------------+------------------+------+-----+---------+----------------+
| Field            | Type             | Null | Key | Default | Extra          |
+------------------+------------------+------+-----+---------+----------------+
| Time_zone_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| Use_leap_seconds | enum('Y','N')    | NO   |     | N       |                |
+------------------+------------------+------+-----+---------+----------------+

这只是一种替代方法,而不是
-e
标志,您可以在查询中使用管道。如果查询是由其他进程生成的,则此选项非常有用:

echo "DESCRIBE table;" | mysql -uuser -ppassword databasename
或者,如果文件中列出了一系列语句,如:

# File: statements.sql
DESCRIBE table;
SELECT col FROM table;
您可以指示mysql读取该文件:

mysql -uuser -ppassword databasename < statements.sql
mysql-uuser-ppassword-databasename
我喜欢将命令直接回显到MySQL中。那很有帮助!