Sorguları çalıştırmak için eriştiğim DataBase sunucusunda hangi Veritabanı Altyapısı'nın yüklü olduğunu nasıl kontrol edebilirim?


11

Erişebileceğim bir Datasase sunucusunda ne tür sql çalıştığını kontrol etmek istiyorum. Yalnızca bir web arayüzüne ve tablo listesine erişebiliyorum.

Arabirim aracılığıyla bir listede bulunan tablolarda sorgu çalıştırabilirim.

Sunucu ve sunucunun çalıştığı sürüm hakkında nasıl daha fazla bilgi edinebilirim? IP veya sunucunun çalıştığı bağlantı noktası hakkında hiçbir fikrim yok.

Sunucunun MySQL, Mircosoft SQL Server, Oracle SQL, Postgre SQL veya başka bir sql sunucusu olup olmadığını bilmek istiyorum.

Bahsettiğim web sitesi şu: w3schools.com SQL editörü .

DÜZENLEME 2: Bazıları için sqlite_version () komutunun benim için çalışmasına rağmen çalışmaz. Bu, yanıtın ekran görüntüsüdür.

resim açıklamasını buraya girin

EDIT 3: Chromium Browser'da komut düzgün çalışıyor. Ancak Firefox Tarayıcısında komut çalışmadı.

Ayrıca Linux çalıştırdığımı da belirtiyorum.

Firefox ve Chrome'da farklı sonuçlar almamın nedeni ne olabilir?


Bir sorgu çalıştırabilir misiniz?
David דודו Markovitz

@DuduMarkovitz Evet Querries çalıştırabilirim.
yoyo_fun

Bu ifadenin bazıları için işe yaradığı ve diğerleri için işe yaramadığı gerçeği, belirli ortamın önemli olduğunu göstermektedir. Muhtemelen @joanolo bu sorguların tarayıcıda çalıştığını söylediğinde haklıydı. Farklı kullanıcılar, muhtemelen ek uzantılar yüklenmiş olarak farklı tarayıcılar kullanır.
Andriy M

2
"İfadede tanımlanmamış işlev." bir Access hata mesajı yani sunucu tarafı gibi görünüyor Jet
Martin Smith

@MartinSmith Bu bağlamda Jet nedir? Bununla ilgili daha fazla bilgiyi nerede bulabilirim?
yoyo_fun

Yanıtlar:


15

Web arayüzünüzün SQL komutları vermenize izin verdiğini varsayıyorum. Öyleyse, şunları kullanabilirsiniz:

SELECT version();

PostgreSQL

Bir PostgreSQL veritabanındaysanız, aşağıdakine benzer bir yanıt alırsınız:

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

Bir MySQL veritabanındaysanız, cevap şöyle görünür

5.7.12-log

torpil

Bir Oracle veritabanındaysanız, bir hata mesajı alırsınız:

ORA-00923: FROM keyword not found where expected

(ORA-xxxx size Oracle'da olduğunuzu söyler). Hangi belirli sürümü bulmak için şunu deneyin:

SELECT banner as "oracle version" from v$version

Aşağıdaki gibi bir yanıt alırsınız:

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

Üzerinde iseniz MS SQL Server , yanıt da bir hata olabilir ve nasıl görüneceğini:

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

Bu durumda deneyebilirsiniz:

SELECT @@version ;

Ve yanıt olarak şöyle bir şey elde edersiniz:

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

Eğer bir işlem yapıyorsanız SQLite veritabanı, denediğinizde bir hata iletisi alırsınız SELECT version():

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

Bu durumda deneyebilirsiniz:

 SELECT sqlite_version()

Ve yanıt şöyle görünecek:

3.14.0

Bu web sitesi üzerinde yanıt için teşekkürler ama ne yazık ki hiçbir şey işleri W3Schools
yoyo_fun

Sonuncuyu deneyin: SELECT sqlite_version()ve cevabınızı alacaksınız.
joanolo

1
Tarayıcınızda tamamen çalıştıkları sürüme benziyor . Bakınız github.com/kripken/sql.js
joanolo

durumun böyle olduğundan emin olmanın herhangi bir yolu var mı? SQL dilinin bu tarayıcı içi sürümü, sürümünü kontrol etmenin herhangi bir yolu var mı yoksa aslında bu SQL motoru mu?
yoyo_fun

7

Bu çevrimiçi SQL editörü , tarayıcıya gömülü SQL anlamına gelen Web SQL Veritabanını kullanır . Http://www.w3schools.com/w3Database.js adresindeki JS kaynak kodlarına bakarsanız ve API çağrılarını Web SQL'in W3C spesifikasyonu ile karşılaştırırsanız, örneğin veritabanını nasıl açtıklarını kolayca anlayabilirsiniz :

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

Yani bir veritabanı sunucusu yok, gerçekten SQL'i çalıştıran tarayıcı, tarayıcınızın kullanmayı seçtiği SQL motoru ile (başlamak için SQL yeteneğine sahip olduğu varsayılarak), bu sqliteçok mantıklı.

(EDIT: kesinlikle doğru değildir çünkü Martin Smith'in cevabına göre , tarayıcı Web SQL'i desteklemediğinde JS gönderme kodu sunucu tarafı MS-Jet motoruna geri döner).

W3C'nin 2010 yılında tarayıcıdaki SQL-in konseptini terk etmeye karar verdiğine dikkat edin, artık kullanılmıyor.


neden bu kararı aldıklarını biliyor musun? Tarayıcıdaki SQL ve SQLite arasında herhangi bir fark var mı?
yoyo_fun

@yoyo_fun: en.wikipedia.org/wiki/Web_SQL_Database'de bazı işaretçiler var. Veya bunu dba.se'de bağımsız bir soru olarak sorabilirsiniz
Daniel Vérité

bu gerçekten çok iyi bir fikir :)
yoyo_fun

5

Diğer cevaplarda belirtildiği gibi tarayıcınıza bağlıdır.

Tarayıcınızın Web SQL Veritabanı için yerel desteği yoksa, sunucuya geri gönderilir.

resim açıklamasını buraya girin

Jet çalıştırılarak görülebildiği gibi

SELECT X FROM Foobar

Microsoft Jet veritabanı alt yapısı, giriş tablosunu veya 'Foobar' sorgusunu bulamıyor. Var olduğundan ve adının doğru yazıldığından emin olun.

Bu TRANSFORM, sayfaya Firefox'tan erişirken çalışma gibi özel Access uzantıları anlamına gelir (ancak bu Chrome'da başarısız olur)

resim açıklamasını buraya girin


Detaylı cevap için teşekkürler. İlk ekran görüntüsünü nasıl aldığını söyleyebilir misin? Kullandığınız editör nedir? Bir web tarayıcısı için bir uzantı mı?
yoyo_fun

@yoyo_fun Firefox'ta yerleşik geliştirici araçları
Martin Smith

3

Bu cevap OP w3schools.com'a bir referans eklemeden önce verildi


Bir sorgu çalıştırabilirseniz, bununla başlayın:

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     

thansk ama maalesef komutlar w3schools sitesinde ve diğerlerinde çalışmıyor. adres www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
yoyo_fun

1
Lütfen ayrıca deneyin
Sqlite

SQLite. Güncel yanıtı kontrol edin
David דודו Markovitz

"Select sqlite_version ()" komutunun çalıştırılmasının sonucunu "Tanımda tanımlanmamış" sqlite_version "işlevi oluşturuyor.
yoyo_fun

1
(Yanıt tarayıcıya bağlıdır)
joanolo

2

W3Schools'ta sayfa tarafından kullanılan SQL motorunun özel durumu için :

Safari, Chrome ve Opera Tarayıcıları

Eğer kullanırsanız Safari Tarayıcı gibi görünüyor SQLite'ı kullanıyor sayfasında (Mac OS X 10.12 üzerinde test) yerleşik tarayıcısı kendisi. Eğer "Çalıştır SQL" düğmesine bastığınızda, o gelmez herhangi bir harici kaynağı kullanmak. Daha ileri tersine mühendislik, sayfanın aşağıdaki JavaScript kodu aracılığıyla veritabanını başlattığını ortaya çıkarır:

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

window.openDatabasekodun bir Web SQL Veritabanı kullandığı anlamına gelir . Bu, W3C tarafından birkaç yıl önce tanımlandı ve Opera, Safari ve Chrome (AFAIK) tarafından uygulandı, ancak FireFox (veya Explorer) tarafından uygulanmadı. Her üç tarayıcı da farklı SQLite sürümlerini kendi içlerine gömerek "Web SQL Veritabanı" nı uygulamış görünmektedir.

Bu noktada, W3C sayfası iddia ediyor:

"Dikkat edin. Bu belirtim artık etkin bakımda değildir ve Web Uygulamaları Çalışma Grubu bunu daha fazla sürdürmek istememektedir."

Bir Chrome tarayıcıyı (Windows 10'da 56.0.2924.87 sürümü) test ettim ve SQLite 3.10.2'yi kullanıyor gibi görünüyor. Opera (Windows 10'da sürüm 12.15), SQLite 3.7.9 kullanır.

Opera "hakkında" yeterince açıktır:

resim açıklamasını buraya girin

Ve Safari İstemci Tarafı Depolama ve Çevrim Uygulamaları Kılavuzu Programlama de bahseder

Safari 3.1 ve iOS 2.0'dan başlayarak, Safari HTML5 JavaScript veritabanı sınıfını destekler SQLite tabanlı JavaScript veritabanı sınıfı, çerezlerde uygun şekilde depolanamayacak kadar büyük (veya risk için çok önemli olan) içeriğin yerel olarak depolanması için tasarlanmış ilişkisel bir veritabanı sağlar kullanıcı çerezlerini temizlediğinde yanlışlıkla silinmesi).

Chrome'a ​​bakmadım ... ama tahminim açık.

FireFox, Edge ve Internet Araştırması Tarayıcıları

Eğer kullanırsanız Firefox tarayıcısını (Mac OS X 10.12 üzerinde test); aynı W3School sayfası tamamen farklı bir şekilde davranır. Sorguları tarayıcıda gerçekleştirmez , ancak sunucularına istek gönderir . Sunucu tarafında, aslında bir MS Access veritabanı benzeri kullanıyor düşünüyorum . Bunu kontrol etmenin bir yolu (standart) 'ı kontrol etmektir information_schema.

Aşağıdaki sorguyu yayınlarsanız (standartlara uygun bir veritabanında kullanıcı tarafından erişilebilir tabloların listesini verir):

SELECT * FROM information_schema.tables;

Aşağıdaki (çok anlatıyor) hata yanıtını alırsınız :

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

Yazılım bir .MDB dosyası arıyorsa , sunucu tarafında Microsoft Jet Veritabanı Altyapısı (veya eşdeğeri) kullanıyorlar ve Access sürümlerine karşılık gelen Access .MDB biçimindeki dosyaları kullanıyorlar. (Access 2007 ve sonraki sürümlerinde varsayılan olarak .ACCDB biçimindeki dosyalar kullanılır).

Microsoft Internet Explorer 11 aynı şekilde davranır (Windows 10'da); Edge de öyle (Windows 10'da).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.