クエリを実行するためにアクセスするデータベースサーバーにインストールされているデータベースエンジンを確認するにはどうすればよいですか?


11

アクセス可能なDatasaseサーバーで実行されているSQLのタイプを確認したい。Webインターフェースとテーブルのリストにしかアクセスできません。

インターフェイスを介して、リストにあるテーブルに対してクエリを実行できます。

サーバーとサーバーが実行しているバージョンに関する詳細情報を取得するにはどうすればよいですか。サーバーが実行しているIPまたはポートについてはわかりません。

サーバーがMySQL、Mircosoft SQLサーバー、Oracle SQL、Postgre SQL、またはその他のSQLサーバーかどうかを知りたい。

私が話しているWebサイトは、 w3schools.com SQLエディターです。

編集2:一部のコマンドselect sqlite_version()は私にとっては機能しますが、機能しません。これは応答のスクリーンショットです。

ここに画像の説明を入力してください

編集3:Chromiumブラウザでは、コマンドは正しく機能しています。ただし、Firefoxブラウザーではコマンドは機能しませんでした。

また、私はLinuxを実行していることも述べました。

FirefoxとChromeで異なる結果が得られる理由は何だと思いますか?


クエリを実行できますか?
デビッドדודוマルコヴィッツ2017

@DuduMarkovitzはい、クエリを実行できます。
yoyo_fun

このステートメントが機能する場合とそうでない場合があるという事実は、特定の環境が重要であることを示唆しているようです。これらのクエリはブラウザで実行されると彼が言ったとき、おそらく@joanoloは正しいでしょう。人によってブラウザが異なり、場合によっては追加の拡張機能がインストールされています。
Andriy M

2
「式の関数が未定義です。」Accessのエラーメッセージなので、サーバー側でJetを使用しているようです
Martin Smith

@MartinSmithこのコンテキストでJetとは何ですか?どこでもっと読むことができますか?
yoyo_fun

回答:


15

私はあなたのWebインターフェースでSQLコマンドを発行できると思います。もしそうなら、あなたは使うことができます:

SELECT version();

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

MySQL

あなたが上にある場合のMySQLデータベース、答えは次のようになります

5.7.12-log

オラクル

あなたが上にある場合のOracleデータベースには、エラーメッセージが表示されます:

ORA-00923: FROM keyword not found where expected

(ORA-xxxxは、Oracleを使用していることを示しています)。特定のバージョンを確認するには、次を試してください。

SELECT banner as "oracle version" from v$version

次のような応答が返されます。

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

Microsoft SQL Server

MS SQL Serverを使用している場合、応答もエラーになり、次のようになります。

'version' is not a recognized built-in function name.

その場合、あなたは試すことができます:

SELECT @@version ;

そして、応答として、次のようになります。

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) 

SQLite

SQLiteデータベースを使用している場合、次の操作を行うとエラーメッセージが表示されますSELECT version()

 could not prepare statement (1 no such function: version)

その場合、あなたは試すことができます:

 SELECT sqlite_version()

そして、応答は次のようになります。

3.14.0

このウェブサイト上の回答に感謝しますが、残念ながら何も作品W3Schoolsの
yoyo_fun

最後を試してください:SELECT sqlite_version()、あなたはあなたの答えを持っているでしょう。
joanolo 2017

1
彼らが実際にあなたのブラウザで完全に実行しているバージョンのようですgithub.com/kripken/sql.jsを
joanolo

これが事実であることを確認する方法はありますか?このブラウザ内バージョンのSQL言語には、バージョンをチェックする方法がありますか、それともこのSQLエンジンですか?
yoyo_fun

7

このオンラインSQLエディターは、ブラウザーに埋め込まれたSQLを意味するWeb SQLデータベースを使用しますhttp://www.w3schools.com/w3Database.jsで JSソースコードを見て、API呼び出しをWeb SQLのW3C仕様と比較すると、たとえば、データベースを開く方法を簡単に確認でき ます。

w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0',
           'W3SchoolsDemoDatabase', 2 * 1024 * 1024);

したがって、データベースサーバーはありません。実際にSQLを実行するのはブラウザーであり、ブラウザーが使用することを選択したSQLエンジンを備えています(最初からSQL機能があると想定しています) sqlite

(編集:厳密には正しくありません。マーティン・スミスの回答によると、ブラウザがWeb SQLをサポートしていない場合、JS送信コードはサーバー側のMS-Jetエンジンにフォールバックします)。

W3Cが2010年にSQL-in-the-browserの概念を放棄することを決定したことに注意してください。現在は廃止されています。


彼らがなぜこの決断をしたのか知っていますか?ブラウザのSQLとSQLiteの間に違いはありますか?
yoyo_fun 2017

@yoyo_fun:en.wikipedia.org/wiki/Web_SQL_Databaseにはいくつかのポインタがあります。それとも、dba.se上の独立した質問としてこれを求めることができる
ダニエル・ベリテ

これは確かに非常に良いアイデアです:)
yoyo_fun

5

他の回答で述べたように、それはあなたのブラウザに依存します。

ブラウザーがWeb SQLデータベースをネイティブでサポートしていない場合は、サーバーに送信されます。

ここに画像の説明を入力してください

実行するとわかるように、これはJetを使用しています

SELECT X FROM Foobar

Microsoft Jetデータベースエンジンが入力テーブルを見つけられないか、 'Foobar'をクエリできません。それが存在し、その名前のスペルが正しいことを確認してください。

これはTRANSFORM、Firefoxからページにアクセスするときのような独自のAccess拡張機能を意味します(ただし、これはChromeでは失敗します)

ここに画像の説明を入力してください


詳細な回答ありがとうございます。最初のスクリーンショットを取得した方法を教えてください。使用しているエディターは何ですか?Webブラウザーの拡張機能ですか?
yoyo_fun

@yoyo_fun Firefoxに組み込まれた開発者ツール
マーティンスミス

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     

感謝しますが、残念ながらコマンドはw3schoolsサイトなどでは機能しません。アドレスはwww.w3schools.com/sql/trysql.asp?filename=trysql_select_all
yoyo_fun

1
Sqliteもお試しください
DavidדודוMarkovitz

Sqlite。更新された回答を確認してください
デビッドדודוマルコヴィッツ2017

Markovits "select sqlite_version()"コマンドを実行した結果は、 "Undefined function 'sqlite_version' in expression。"
yoyo_fun

1
(答えはブラウザによって異なります)
joanolo 2017

2

W3Schoolsのページで使用されているSQLエンジンの特定の場合:

Safari、Chrome、Operaブラウザ

Safariブラウザー(Mac OS X 10.12でテストしました)を使用している場合、ページはSQLiteを使用しており、ブラウザー自体に組み込まれているようです。「SQLの実行」ボタンを押すと、外部リソース使用されません。さらにリバースエンジニアリングを行うと、次のJavaScriptコードを使用して、ページがデータベースを初期化していることがわかります。

function w3WebSQLInit() {
    var w3DBObj = this;
    w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0', 'W3SchoolsDemoDatabase', 2 * 1024 * 1024);
   ...
}

window.openDatabaseコードがWeb SQLデータベースを使用していることを意味します。これは数年前にW3Cによって定義され、Opera、Safari、およびChrome(AFAIK)によって実践されましたが、FireFox(またはExplorer)によってではありませんでした。3つのブラウザはすべて、異なるバージョンのSQLiteを内部に埋め込むことによって「Web SQLデータベース」を実装しているようです。

この時点で、W3Cページは次のように主張しています。

「注意してください。この仕様は現在アクティブなメンテナンスが行われておらず、Webアプリケーションワーキンググループはそれをさらにメンテナンスする予定はありません。」

Chromeブラウザー(Windows 10では56.0.2924.87バージョン)をテストしましたが、SQLite 3.10.2を使用しているようです。Opera(Windows 10ではバージョン12.15)はSQLite 3.7.9を使用します。

Operaの「約」は十分明確です。

ここに画像の説明を入力してください

また、Safariクライアント側ストレージおよびオフラインアプリケーションプログラミングガイドでは、

Safari 3.1およびiOS 2.0以降、SafariはHTML5 JavaScriptデータベースクラスをサポートしています。JavaScriptデータベースクラスは、SQLiteに基づいており、大きすぎてCookieに保存するには大きすぎる(またはリスクにとって重要すぎる)コンテンツのローカルストレージ向けのリレーショナルデータベースを提供しますユーザーが自分のCookieを消去したときに誤って削除した場合)。

私はChromeを調べませんでした...私の推測は明白です。

FireFox、Edge、およびInternet Explorerブラウザ

FireFoxブラウザーを使用している場合(私はMac OS X 10.12でテストしました); 同じW3Schoolページは根本的に異なる方法で動作します。ブラウザではクエリ実行しませんが、サーバーにリクエストを送信します。サーバー側では、MS Accessデータベースのようなものを実際に使用していると思います。これを確認する1つの方法は、(標準)を確認することですinformation_schema

次のクエリを発行すると(標準に準拠したデータベースでは、ユーザーがアクセスできるテーブルのリストが表示されます):

SELECT * FROM information_schema.tables;

次の(わかりづらい)エラー応答が表示されます

Could not find file 'C:\Windows\SysWOW64\inetsrv\information_schema.mdb'.

ソフトウェアが.MDBファイルを探している場合は、サーバー側でMicrosoft Jetデータベースエンジン(または同等の何か)を使用しており、Accessのバージョンに対応するAccessの.MDB形式のファイル使用しています。 2003を含みます(Access 2007以降のバージョンでは、デフォルトで.ACCDB形式のファイルが使用されます)。

Microsoft Internet Explorer 11は同じように動作します(Windows 10の場合)。Edgeも同様です(Windows 10の場合)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.