如何在终端中使用SQL?


11

我想创建简单的表,在其中插入值,然后执行查询。如何在终端中执行它们?

Answers:


8

您通过键入创建数据库

 mysql

在输入的提示中,然后从创建数据库开始(如注释中onik所述):

 CREATE DATABASE dbname

建立该数据库后,就可以对其进行试验。您只需mysql在终端中输入内容,就可以执行所需的任何与SQL相关的操作。您可能已经使用用户名在数据库中创建了角色。

如Sauruv的回答中所述,您还可以按以下方式连接到数据库(在p和密码之间没有空格或更好的间隔,只是不要使用-p选项,并且会出现密码提示[信用信息进入onik]):

句法:

mysql -u user_name -ppassword dbname

-u : Specify mysql database user name
-p : Prompt for password
dbname : Specify database name

3
实际上,您指定的语法仅连接到指定的数据库,而不创建它。您必须先连接而不指定数据库并运行CREATE DATABASE [dbname]。此外,如果您在命令行上指定密码(不建议使用,语法为mysql -u user_name -ppassword database,在p和密码之间没有空格。您也可以在此处省略密码,MySQL会提示您输入密码,这样更安全。)
onik

@onik,你绝对正确。下次,请随意编辑我的答案或将其复制并阐述为您自己的答案。谢谢,我在另一个问题上为您找到了很好的答案,我对此表示赞同。
don.joey 2013年

6

这是从终端执行sql语句的语法

我假设您正在使用MySQL

句法:

mysql -u user_name -p password -e 'SQL Query' database

清除率:

-u : Specify mysql database user name
-p : Prompt for password
-e : Execute sql query
database : Specify database name

例:

  • 如果要创建表,person则:

    mysql -u root -p -e 'Create table person(PersonID int, LastName varchar(255), FirstName varchar(255))' mydb
    

    其中 root,用户名mydb是数据库的名称。类似地,您可以执行所需的任何查询。

  • 如果要在insertperson

    mysql -u root -p -e 'Insert into person(PersonID,LastName,FirstName) Values(100,"Kumar","Saurav")' mydb
    
  • 如果要从中选择所有信息person并要保存在文件中:

    mysql -u root -p -e 'Select * from person' mydb > personinfo
    

当然,您可以使用终端本身创建数据库

  • 要创建数据库mydb,请在终端中执行以下命令:

    mysql -u root -p -e 'create database mydb'
    

    它将在不提供任何消息/输出的情况下静默创建数据库mydb

  • 要列出所有数据库,请在终端中执行以下命令:

    mysql -u root -p -e 'show databases'
    

希望对您有帮助。如果需要进一步的帮助,请回复。


1

mysql是一个简单的命令行工具。mysql是命令行,非常易于使用。从命令解释器的提示中调用它,如下所示:

$ mysql

输出量

mysql>

您可能需要提供mysql用户名,密码和主机名,使用:

$ mysql --user=your-user-name --password=your-password

mysql>

要列出数据库,请输入以下命令

mysql> show databases;

输出量

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)

information_schema和mysql是数据库的名称。要使用这些数据库并列出可用表,请键入以下两个命令:

mysql> use mysql;

输出:

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

现在列出表格:

mysql> show tables;

输出:

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
17 rows in set (0.00 sec)
mysql>

1

mycli

mysql默认的控制台还不错,但是也许更漂亮mycli(它是Postgres的替代品pgcli)。

安装:在Ubuntu 16.04+上是官方仓库:sudo apt install mycli

$ mycli --help
Usage: mycli [OPTIONS] [DATABASE]

  A MySQL terminal client with auto-completion and syntax highlighting.

  Examples:
    - mycli my_database
    - mycli -u my_user -h my_host.com my_database
    - mycli mysql://my_user@my_host.com:3306/my_database

屏幕截图

参考


0

sqlline可以连接到任何rdbms(Oracle,mysql,postgres,h2等),也可以连接到csv,cassandra,elastic-search,mongo(通过apache-calcite)。

这里有一个带有简短演示视频项目演示页面, 它提供多行编辑,语法突出显示,智能自动完成功能和方言支持。

它可以是嵌入式的,无需安装。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.