テンポラリテーブルは中間結果を格納するための実用的なソリューションを提供し、クエリパフォーマンスの最適化において重要な役割を果たします。
テンポラリテーブルをいつ、どのように作成するかを理解することで、以下のことが可能になります:
- 複雑なSQLクエリを簡素化する
- データをより効率的に分析する:
- 中間結果を保持する
- 複雑なクエリをより管理しやすい方法で処理できるようにする
- データベース操作全体のパフォーマンスを向上させる
このガイド全体を通して、ブラウザで直接テンポラリテーブルの作成と使用を練習できるインタラクティブなSQL演習があります — データベースのセットアップは不要です。
この記事では、シンプルでありながら強力なテクニックを使用して、SQLでテンポラリテーブルを構築するプロセスをご案内します。
SQLでテンポラリテーブルを作成するには、CREATE TEMPORARY TABLE文を使用し、テーブルの構造と各列のデータ型を指定します。これらのテーブルは、パフォーマンスの最適化、複雑なクエリを理解しやすい部分に分解する、またはデータベースのメインテーブルに格納されない結果を処理するなど、さまざまな目的で使用されます。
重要: テンポラリテーブルはセッション固有であり、そのセッションが終了すると破棄されることを覚えておいてください。特に高トラフィック環境では潜在的な欠点に注意し、テンポラリテーブルを慎重に使用してください。
テンポラリテーブルは従来のテーブルに比べて興味深い利点を提供します。リソース効率が高く、より良いクエリ最適化を提供します。
SQLでのテンポラリテーブルの一般的なユースケースは以下の通りです:
- 大規模なデータセットの処理
- 複数のソースからのデータの結合
- 計算や集計の保存
- 再帰的な操作の実行
- テストと開発
したがって、適切に設計されたテンポラリテーブルは、SQLデータベース管理においてパフォーマンスと保守性を大幅に向上させることができます。
作成プロセスをより深く掘り下げ、データベース管理タスクにもたらす潜在的な利点を探りましょう。
テンポラリテーブルはMySQL、PostgreSQL、Oracle、SQL Serverおよびその他のデータベースシステムで使用できますが、実装によって構文と機能がわずかに異なる場合があります。
SQLでのテンポラリテーブルの作成
テンポラリテーブルは一時テーブルとも呼ばれ、オンザフライで作成・投入され、セッションまたは接続が終了すると自動的にクリーンアップされます。このセクションでは、テンポラリテーブルのいくつかの重要な側面とSQLにおけるその役割を説明します。
SQLでテンポラリテーブルを作成するには、典型的な構文としてCREATE TEMPORARY TABLE文を使用し、その後に目的のテーブル構造を続けます。ただし、SQL ServerユーザーはCREATE TABLEとテーブル名の#プレフィックスを使用する必要があります — これはSQL Server固有の機能です。SQL Serverの例を以下に示します:
CREATE TABLE #ExampleTempTable (
ID INT PRIMARY KEY,
Name NVARCHAR(50),
Age INT
);
テンポラリテーブルの注目すべき利点の1つは、通常のテーブルと同様にすべてのDDL(データ定義言語)およびDML(データ操作言語)操作をサポートしていることです。これは、データの挿入、更新、削除、選択ができ、インデックスや制約を作成し、テーブル構造に変更を適用できることを意味します。
テンポラリテーブルの潜在的な欠点は、サーバー上のすべてのユーザーが共有するtempdbデータベースに作成されることです。これにより、ビジーなサーバーではリソース競合とパフォーマンスの問題が発生する可能性があります。テンポラリテーブルは必要な場合にのみ使用し、可能な場合は他の最適化技術を利用することが重要です。
テンポラリテーブルは、その目的に応じてローカルまたはグローバルのいずれかになります:
-
ローカルテンポラリテーブルは、それを作成したセッションにのみ表示され、セッションが終了すると自動的に削除されます。SQL Serverでは、ローカルテンポラリテーブルの名前は単一のハッシュ(
#)で始まります。 -
グローバルテンポラリテーブルは、すべてのアクティブなセッションと接続に表示されます。グローバルテンポラリテーブルは、それを使用している最後の接続が終了するまでアクセス可能です。SQL Serverでは、グローバルテンポラリテーブルの名前は2つのハッシュ(
##)で始まります。
ローカルとグローバルのテンポラリテーブルについては、次のセクションで詳しく説明します。
テンポラリテーブルはtempdbデータベースに作成されることを理解することが重要です。これらはセッションの期間中、または接続が終了するまでのみ存在します。セッションが終了すると、テンポラリテーブルは自動的に削除されます。
SQLでテンポラリテーブルを作成するプロセスの概要を以下に示します:
-
#または##をプレフィックスとしたテーブル名を定義します。
- ローカルにアクセス可能なテーブルには単一の#を使用します。
- グローバルにアクセス可能なテーブルにはダブル##を使用します。
- テーブルの列名とデータ型を指定します。
- インデックスのためのオプションのPRIMARY KEYおよびINDEX句を使用します。
では、テンポラリテーブルを作成する例を見てみましょう。以下の簡単なステップに従うことができます:
-- テンポラリテーブルを作成
CREATE TABLE #TempStudents
(
StudentID INT PRIMARY KEY,
FirstName NVARCHAR(50),
LastName NVARCHAR(50),
Age INT
);
上記の例では、4つの列を持つ#TempStudentsという名前のテンポラリテーブルが定義されています:StudentID、FirstName、LastName、Age。StudentID列はPRIMARY KEYとして機能します。
新しく作成されたテンポラリテーブルを操作するには、INSERT、UPDATE、SELECT、DELETEなどの標準的なSQL操作を実行できます。例えば、#TempStudentsテーブルにデータを挿入するには、次のコマンドを実行します:
-- テンポラリテーブルにデータを挿入
INSERT INTO #TempStudents (StudentID, FirstName, LastName, Age)
VALUES (1, 'John', 'Doe', 20);
場合によっては、既存のテーブルからデータを選択してテンポラリテーブルを作成したいことがあります。これを行うには、SELECT INTOコマンドを使用します:
-- 既存のテーブルからテンポラリテーブルを作成
SELECT *
INTO #TempStudents
FROM Students
WHERE Age >= 18;
上記のクエリは、Ageが18以上のStudentsテーブルからレコードを抽出して#TempStudentsテーブルを生成します。
まとめると、SQLでテンポラリテーブルを作成することは、テーブル構造を定義し、列とデータ型を指定し、オプションでPRIMARY KEYを定義することを含む簡単なプロセスです。クエリでテンポラリテーブルを利用することで、SQLスクリプトの効率と可読性を大幅に向上させることができます。
自分で試してみましょう:
[[ testData.title ]]
temp_active_projectsという一時テーブルを作成し、projectsテーブルからstatus = 'active'のプロジェクトを入れます。次に、一時テーブルをクエリしてアクティブなプロジェクトのすべての列を返します。
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
利用可能なテーブル
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
ローカルとグローバルのテンポラリテーブルの選択
テンポラリテーブルには2つのタイプがあります — ローカルとグローバルです。これら2つのタイプの違いを理解することで、SQLクエリでどちらを使用するかについて十分な情報に基づいた決定を下すことができます。
まず、ローカルテンポラリテーブルについて詳しく見てみましょう。これらのテーブルは現在のユーザーセッションに固有であり、そのセッションが終了すると自動的に破棄されます。ローカルテンポラリテーブルの優れたユースケースは、ストアドプロシージャ内で計算を実行する必要がある場合や、特定のユーザーのトランザクション中の場合です。SQLでローカルテンポラリテーブルを作成する構文は簡単です:
CREATE TABLE #LocalTempTable (Column1 DataType, Column2 DataType);
ローカルテンポラリテーブルにはいくつかの注目すべき特徴があります:
- テーブル名は単一のハッシュ記号(#)で始まる必要があります
- 分離を提供し、他のユーザーとの競合を避けるのに理想的です
- スコープが限定されており、セッションが終了すると自動的に削除されます
一方、グローバルテンポラリテーブルはより広いスコープを持っています。これらのテーブルは複数のユーザーが同時にアクセスでき、複数のユーザーまたはセッション間で一時的なデータを共有する必要がある場合に便利です。SQLでグローバルテンポラリテーブルを作成する構文は以下の通りです:
CREATE TABLE ##GlobalTempTable (Column1 DataType, Column2 DataType);
グローバルテンポラリテーブルにも特定の属性があります:
- テーブル名は2つのハッシュ記号(##)で始まる必要があります
- ユーザーセッション間でのデータ共有を可能にします
- テンポラリテーブルにアクセスしている最後のユーザーが切断されるまで破棄されません
ローカルとグローバルのテンポラリテーブルを選択する際には、以下を考慮することが重要です:
- データスコープ:一時的なデータがユーザー固有または単一のセッションに限定されている場合は、ローカルテンポラリテーブルを選択します。逆に、複数のユーザー間でデータを共有する必要がある場合は、グローバルテンポラリテーブルを選択します。
- リソース管理:ローカルテンポラリテーブルはセッション終了時に自動的に破棄されるため、より良いリソース管理を提供します。一方、グローバルテンポラリテーブルは不必要なリソースを消費しないように、より綿密な監視が必要です。
要約すると: ローカルとグローバルのテンポラリテーブルの選択は、プロジェクトの要件によって異なります。最適化されたSQL環境を確保するために、各状況でデータスコープとリソース管理の側面を常に検討してください。
列とデータ型の定義
SQLでテンポラリテーブルを操作する場合、列とそのデータ型を正確に定義することが重要です。このセクションでは、SQLでテンポラリテーブルを作成する際の列とデータ型の定義の基本を説明します。
詳細に入る前に、まずSQLのデータ型の概念を理解しましょう。リレーショナルデータベースでは、データ型は特定の列が保持できるデータの種類を定義するために使用されます。一般的なデータ型には以下が含まれます:
- INT:整数値を表します
- VARCHAR:可変長の文字データを表します
- DATE:YYYY-MM-DD形式の日付を表します
- FLOAT:浮動小数点数を表します
テンポラリテーブルを作成する際は、各列の名前とデータ型を指定することが重要です。必要に応じて、データの整合性を確保するためにNOT NULLなどの制約を定義することもできます。
SQLでテンポラリテーブルを作成する際に列とデータ型を定義する方法を示すために、実践的な例を考えてみましょう。従業員ID、名、姓、入社日、給与を含む従業員情報を格納するテンポラリテーブルを作成したいとします。
テンポラリテーブルを作成するサンプルSQLスクリプトを以下に示します:
CREATE TEMP TABLE employees_temp (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
hire_date DATE NOT NULL,
salary FLOAT
);
この例では、5つの列を持つemployees_tempという名前のテンポラリテーブルを作成しました:
-
employee_id(整数データ型で主キーとして機能) -
first_name(varchar データ型、最大長50文字、NOT NULL制約付き) -
last_name(varcharデータ型、最大長50文字、NOT NULL制約付き) -
hire_date(dateデータ型、NOT NULL制約付き) -
salary(floatデータ型)
例に示すようにデータ型と制約を指定することで、テンポラリテーブルが定義された基準を満たすデータのみを受け入れることを確保できます。これにより、データの一貫性を維持し、後続のクエリでテンポラリテーブルを操作しやすくなります。
まとめると、列とそのデータ型を定義することは、SQLでテンポラリテーブルを作成する際の重要なステップです。これにより、データの整合性を維持し、一貫したデータストレージを確保し、さらなる分析のためのテンポラリテーブルのクエリを簡素化できます。
自分で試してみましょう:
[[ testData.title ]]
salesテーブルからカテゴリごとの合計売上額を格納するtemp_category_totalsという一時テーブルを作成します。次に、一時テーブルをクエリして、total_salesが1000より大きいすべてのカテゴリのcategoryとtotal_salesを表示します。
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
利用可能なテーブル
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
パフォーマンス向上のためのテンポラリテーブルのインデックス作成
SQLでテンポラリテーブルを操作する場合、パフォーマンスの最適化はデータベースクエリの効率にとって重要です。これを達成するための効果的な方法の1つがテンポラリテーブルのインデックス作成です。インデックス作成は、データの検索とソートにかかる時間を短縮することで、クエリを劇的に高速化できます — SQLの世界で非常に価値のあるツールです。
SQLでテンポラリテーブルを作成するには、通常CREATE TABLE文から始めます。これらのテンポラリテーブルを構築する際、最も頻繁にアクセスまたは検索される列を特定することが重要です。これらの列にはパフォーマンス向上のためにインデックスを作成する必要があります。
テンポラリテーブルのインデックス作成がクエリ速度を大幅に向上させる理由はいくつかあります:
- テーブルスキャンの削減:インデックスは、SQLエンジンがテーブル内の特定の行を素早く見つけられるようにすることで、フルテーブルスキャンを最小限に抑えます。
- ソートの改善:テンポラリテーブルのインデックス作成は、特に大量のデータを扱う場合にソートプロセスを高速化します。
- より高速な結合:複数のテーブルを結合する際、インデックスはパフォーマンスの向上とクエリ実行時間の短縮に重要な役割を果たします。
テンポラリテーブルにインデックスを作成するには、以下の基本的なステップに従います:
-
CREATE TABLE文を使用してテンポラリテーブルを作成します。 -
CREATE INDEX文を使用して、テンポラリテーブルの1つ以上の列にインデックスを構築します。 - クエリを実行します。
テンポラリテーブルのインデックス作成には多くの利点がありますが、注意すべき欠点もあります:
-
オーバーヘッドの増加:インデックス作成は
INSERT、UPDATE、DELETE操作にオーバーヘッドを追加し、インデックスの維持にさらに時間とリソースが必要になります。 - ディスク容量の使用:SQLでインデックスを作成すると、データベースエンジンは追加のディスク容量を消費する必要があります。ディスク容量が限られている場合、システムパフォーマンスに影響を与える可能性があります。
最良の結果を得るために、テンポラリテーブルのインデックス作成に関するこれらのベストプラクティスを考慮してください:
- クエリを分析し、
WHERE、GROUP BY、ORDER BY、JOIN句で最も頻繁に使用される列を特定します。 - 可能な場合はカバリングインデックスを選択します。これにより、特定のクエリに必要なすべてのデータを保持でき、ベーステーブルへのアクセスを最小限に抑えられます。
- 最適なパフォーマンスを確保するために、インデックスの使用状況を継続的に監視および評価します。
SQLでのテンポラリテーブルのパフォーマンス最適化は、効果的なデータベース管理の重要な要素です。インデックス戦略とベストプラクティスを採用することで、クエリを改善し、SQL操作全体の効率を大幅に向上させることができます。
テンポラリテーブルと永続テーブルの結合
SQLデータベースを操作する場合、テンポラリテーブルを作成し、既存の永続テーブルと結合する必要がしばしばあります。テンポラリテーブルと永続テーブルを組み合わせることで、クエリを最適化し、パフォーマンスを向上させ、複雑なデータ操作をより管理しやすくできます。
SQLでテンポラリテーブルを作成するには、CREATE TEMPORARY TABLE文を使用します。作成後、標準のSQL JOIN文を使用して、これらのテンポラリテーブルを永続テーブルと結合できます。SQLで利用可能な4種類の結合があります:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL OUTER JOIN
各結合タイプは、指定された列の一致するデータまたは一致しないデータに基づいて、テーブルがどのように結合されるかを決定します。各タイプの簡単な説明は以下の通りです:
- INNER JOIN:指定された列間に一致がある場合、両方のテーブルから行を取得します。
- LEFT JOIN:左テーブルのすべての行と、右テーブルの一致する行を返します。
- RIGHT JOIN:右テーブルのすべての行と、左テーブルの一致する行を表示します。
- FULL OUTER JOIN:両方のテーブルのすべての行を含み、一致するかどうかに関係なく表示します。
以下は、SQLでテンポラリテーブルを作成し、永続テーブルと結合する方法の例です。employeesという永続テーブルとtemp_salariesというテンポラリテーブルがあるとします:
-- 給与用のテンポラリテーブルを作成
CREATE TEMPORARY TABLE temp_salaries (
employee_id INT PRIMARY KEY,
salary DECIMAL(10, 2)
);
-- テンポラリテーブルにサンプルデータを挿入
INSERT INTO temp_salaries (employee_id, salary)
VALUES (1, 5000.00), (2, 6000.00), (3, 5500.00);
-- INNER JOINの例:一致する給与を持つ従業員情報を取得
SELECT employees.*, temp_salaries.salary
FROM employees
INNER JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
-- LEFT JOINの例:すべての従業員データと、利用可能な場合は一致する給与データを取得
SELECT employees.*, temp_salaries.salary
FROM employees
LEFT JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
-- RIGHT JOINの例:すべての利用可能な給与データと一致する従業員情報を取得
SELECT employees.*, temp_salaries.salary
FROM employees
RIGHT JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
-- FULL OUTER JOINの例:すべての従業員データと対応する給与データを結合
SELECT employees.*, temp_salaries.salary
FROM employees
FULL OUTER JOIN temp_salaries ON employees.id = temp_salaries.employee_id;
これらの例は、SQLでテンポラリテーブルを作成し、永続テーブルと結合する方法を示しています。利用可能な結合タイプとその適切な使用法を理解することで、クエリを最適化し、複雑なデータ分析をより効果的に実行できます。
自分で試してみましょう:
[[ testData.title ]]
studentsテーブルからscore >= 80の学生を含むtemp_high_scorersという一時テーブルを作成します。次に、この一時テーブルをcoursesテーブルと結合して、高得点の各学生のstudent_name、score、course_nameを表示します。
[[ col ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.your_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ i18n.expected_results ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ error ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
[[ testData.solution ]]
利用可能なテーブル
[[ table.name ]]
| [[ col ]] |
|---|
| [[ formatCell(cell) ]] |
テンポラリテーブルの変更
テンポラリテーブルを変更するには、SQLはALTER TABLE文を提供します。このコマンドにより、ユーザーは列の追加や削除など、テーブル構造に変更を加えることができます。新しい列を追加する構文は以下の通りです:
ALTER TABLE #TempTableName
ADD ColumnName DataType;
例えば、#Ordersというテンポラリテーブルがあり、varcharデータ型のOrderStatusという新しい列を追加したいとします。コードは次のようになります:
ALTER TABLE #Orders
ADD OrderStatus VARCHAR(50);
ユーザーが列を削除する必要がある場合、DROP COLUMN文を使用できます。このコマンドの構文は以下の通りです:
ALTER TABLE #TempTableName
DROP COLUMN ColumnName;
例えば、#OrdersテンポラリテーブルからOrderStatus列を削除するには、コードは次のようになります:
ALTER TABLE #Orders
DROP COLUMN OrderStatus;
場合によっては、最終結果を取得する前にテンポラリテーブル内のデータを更新する必要があるかもしれません。UPDATEコマンドはまさにそれを可能にします:
UPDATE #TempTableName
SET ColumnName = NewValue
WHERE Conditions;
#Ordersテンポラリテーブル内の特定の注文のステータスを変更したいとします。次のコードは、OrderIDが101の注文のOrderStatusを変更します:
UPDATE #Orders
SET OrderStatus = 'Complete'
WHERE OrderID = 101;
テンポラリテーブルの削除
テンポラリテーブルは、自動的またはまたは手動でデータベースから削除できます。これら2つのオプションを見てみましょう:
-
自動削除:SQL Serverは、ユーザーが切断するかセッションが終了すると、テンポラリテーブルを自動的に削除します。テンポラリテーブルの作成に使用された方法によって、クリーンアッププロセスが異なる場合があります。動作の概要は以下の通りです:
- ローカルテンポラリテーブル:テーブル名に単一の’#’(ハッシュ)記号を使用して作成され、セッションがデータベースから切断されるとすぐに削除されます。
- グローバルテンポラリテーブル:テーブル名に2つの’##’(ハッシュ)記号を使用して識別され、それを参照している最後のセッションが閉じられると削除されます。
-
手動削除:ユーザーが切断する前またはセッションが終了する前にテンポラリテーブルを削除したい場合があります。これを行うには、
DROP TABLEコマンドを使用します。SQLでテンポラリテーブルを手動で削除する方法は以下の通りです:-
ローカル/グローバルテンポラリテーブル:手動で削除するには、次のコマンドを実行します:
DROP TABLE #TempTableName; -- ローカルテンポラリテーブル用 DROP TABLE ##TempTableName; -- グローバルテンポラリテーブル用
-
ローカル/グローバルテンポラリテーブル:手動で削除するには、次のコマンドを実行します:
テンポラリテーブルはメモリリソースを消費するため、削除することが重要です。使用されていないテーブルが多いと、ストレージスペースの無駄や非効率なクエリにつながる可能性があります。テンポラリテーブルを適切に管理することで、最適化されたデータベース環境が確保され、より高速なクエリ実行とより良いパフォーマンスが可能になります。テンポラリテーブルを長期間保持すると、他のテーブルとの競合が発生したり、メンテナンスの困難が生じたり、新しいクエリに誤って古いデータが含まれるリスクがあります。
Beekeeper Studioでのテンポラリテーブルの操作
テンポラリテーブルを定期的に使用する場合、優れたSQLエディタを持つことで大きな違いが生まれます。Beekeeper Studioは、テンポラリテーブルを使用したクエリの作成とテストのための、クリーンで直感的なインターフェースを提供します。
テンポラリテーブルを操作する際に役立つ機能:
- オートコンプリート:入力中に列名を提案し、エラーを減らします
- クエリ履歴:テンポラリテーブルのパターンを保存して再利用できます
- マルチデータベースサポート:PostgreSQL、MySQL、SQLite、SQL Serverなどでテンポラリテーブルを使用できます
- テーブルブラウザ:テンポラリテーブルの構造とデータを簡単に表示できます
無料版には、テンポラリテーブルやその他のSQL概念をマスターするために必要なすべてが含まれており、学習や日常のデータベース作業に最適です。
重要なポイント
テンポラリテーブルはSQL開発者にとって強力なツールです。覚えておくべきことは以下の通りです:
- テンポラリテーブルは中間結果を格納し、セッション終了時に自動的にクリーンアップされます
- ほとんどのデータベースでは
CREATE TEMP TABLEまたはCREATE TEMPORARY TABLEを使用し、SQL Serverでは#TableNameプレフィックスを使用します - ローカルテンポラリテーブルはセッション固有であり、グローバルテンポラリテーブルはセッション間で共有できます
- データの整合性を確保するために常に列とデータ型を定義してください
- 大規模なデータセットを扱う場合はテンポラリテーブルにインデックスを追加してください
- 標準のJOIN構文を使用して、通常のテーブルと同様にテンポラリテーブルを永続テーブルと結合してください
- リソースを節約するために、不要になったら削除してテンポラリテーブルを適切に管理してください
テンポラリテーブルをマスターすることで、より効率的なSQLクエリを書き、複雑なデータ操作を簡単に処理できるようになります。
Beekeeper Studioは無料でオープンソースのデータベースGUIです
今まで使った中で最高のSQLクエリ&エディタツールです。データベース管理に必要なすべてが揃っています。 - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studioは高速で直感的、使いやすいです。Beekeeperは多くのデータベースをサポートし、Windows、Mac、Linuxで快適に動作します。
Beekeeper Studioについてユーザーの声
"Beekeeper Studioは私の古いSQLワークフローを完全に置き換えました。高速で直感的で、データベース作業を再び楽しくしてくれます。"
"多くのデータベースGUIを試しましたが、Beekeeperは機能とシンプルさの完璧なバランスを実現しています。とにかく動きます。"