如何检查我有权运行查询的数据库服务器上安装了什么数据库引擎?

yoy*_*fun 11 mysql postgresql sqlite sql-server database-engine

我想检查我可以访问的 Datasase 服务器上正在运行什么类型的 sql。我只能访问 Web 界面和表格列表。

通过该界面,我可以对列表中的表运行查询。

如何获取有关服务器和服务器正在运行的版本的更多信息。我不知道服务器正在运行的 IP 或端口。

我想知道服务器是 MySQL、Mircosoft SQL Server、Oracle SQL、Postgre SQL 还是其他 sql server。

我正在谈论的网站是这个: w3schools.com SQL editor

编辑 2:虽然对于某些命令 select sqlite_version() 对我有用,但它不起作用。这是响应的屏幕截图。

在此处输入图片说明

编辑 3:在 Chromium 浏览器上,命令工作正常。但是在 Firefox 浏览器上,该命令不起作用。

我还提到我正在运行 Linux。

您认为在 Firefox 和 Chrome 上我得到不同结果的原因可能是什么?

joa*_*olo 15

我假设您的 Web 界面允许您发出 SQL 命令。如果是这样,您可以使用:

SELECT version();
Run Code Online (Sandbox Code Playgroud)

PostgreSQL

如果您使用的是PostgreSQL数据库,则会收到类似于

PostgreSQL 9.6.1 on x86_64-apple-darwin14.5.0, compiled by Apple LLVM version 7.0.0 (clang-700.1.76), 64-bit
Run Code Online (Sandbox Code Playgroud)

MySQL

如果您使用的是MySQL数据库,则答案如下

5.7.12-log
Run Code Online (Sandbox Code Playgroud)

甲骨文

如果您使用的是Oracle数据库,则会收到一条错误消息:

ORA-00923: FROM keyword not found where expected
Run Code Online (Sandbox Code Playgroud)

(ORA-xxxx 告诉您您使用的是 Oracle)。要找出哪个特定版本,请尝试:

SELECT banner as "oracle version" from v$version
Run Code Online (Sandbox Code Playgroud)

你会得到这样的回应:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0  Production
TNS for 64-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
Run Code Online (Sandbox Code Playgroud)

微软 SQL 服务器

如果您在MS SQL Server 上,响应也将是一个错误,如下所示:

'version' is not a recognized built-in function name.
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以尝试:

SELECT @@version ;
Run Code Online (Sandbox Code Playgroud)

你会得到,作为回应,看起来像:

Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64)   
    Oct 28 2016 18:17:30   
    Copyright (c) Microsoft Corporation  
    Enterprise Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) 
Run Code Online (Sandbox Code Playgroud)

SQLite

如果您使用的是SQLite数据库,则在尝试时会收到一条错误消息SELECT version()

 could not prepare statement (1 no such function: version)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以尝试:

 SELECT sqlite_version()
Run Code Online (Sandbox Code Playgroud)

响应将如下所示:

3.14.0
Run Code Online (Sandbox Code Playgroud)


Dan*_*ité 7

这个在线 SQL 编辑器使用Web SQL 数据库,意思是嵌入在浏览器中的 SQL。如果您在http://www.w3schools.com/w3Database.js 上查看他们的 JS 源代码并将 API 调用与 Web SQL 的 W3C 规范进行比较,则很容易识别 ,例如它们如何打开数据库:

w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0',
           'W3SchoolsDemoDatabase', 2 * 1024 * 1024);
Run Code Online (Sandbox Code Playgroud)

所以没有数据库服务器,它实际上是执行 SQL 的浏览器,以及您的浏览器选择使用的 SQL 引擎(假设它具有 SQL 功能开始),这 sqlite很有意义。

(编辑:严格来说并非如此,因为根据Martin Smith 的回答,当浏览器不支持 Web SQL 时,JS 提交代码回退到服务器端 MS-Jet 引擎)。

请注意,W3C 在 2010 年决定放弃浏览器中的 SQL 概念,它现在已经过时了。


Mar*_*ith 5

正如其他答案中所述,这取决于您的浏览器。

如果您的浏览器没有对 Web SQL 数据库的本机支持,那么它最终会提交回服务器。

在此处输入图片说明

这可以通过运行看到使用 Jet

SELECT X FROM Foobar
Run Code Online (Sandbox Code Playgroud)

Microsoft Jet 数据库引擎找不到输入表或查询“Foobar”。确保它存在并且其名称拼写正确。

这意味着TRANSFORM在从 Firefox 访问页面时,专有的 Access 扩展可以工作(但这在 Chrome 中会失败)

在此处输入图片说明


Dav*_*itz 3

这个答案是在 OP 添加对 w3schools.com 的引用之前给出的


如果您可以运行查询,请从此开始:

select version();        -- PostgreSQL  e.g.: PostgreSQL 9.6beta2, compiled by Visual C++ build 1800, 64-bit                                                                                                                                            

select version();        -- MySQL       e.g.: 5.7.11-log                                                                                                                                                                                                

select @@version;        -- SQL Server  e.g.: Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64)   Apr 29 2016 23:23:58   Copyright (c) Microsoft Corporation  Express Edition (64-bit) on Windows 7 Enterprise 6.1 <X64> (Build 7601: Service Pack 1)         

select * from v$version; -- Oracle      e.g.: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production                      

select sqlite_version(); -- Sqlite:     e.g.: 3.15.1     
Run Code Online (Sandbox Code Playgroud)