初めてのSQL Anywhere
~SQL Anywhere サンプルデータベースの起動と停止からSQL Anywhereデータベースの作成まで~
- データベースサーバーの種類
- サンプルデータベースの起動と停止
i) SQL Anywhere データベースサーバーの起動
ii) データベースサーバーの停止 - 管理ツールについて
i) Sybase Central
ii) Interactive SQL - チュートリアル:SQL Anywhere データベースの作成
1. データベースファイルの作成
2. データベースへのテーブルの追加
3. カラムへの NOT NULL 制約の設定
4. 外部キーの作成
- データベースサーバーの種類SQL Anywhere は、「パーソナルサーバー」と「ネットワークサーバー」の2つのデータベースサーバーを提供しています。パーソナルデータベースサーバーで作成されたデータベースは、ネットワークデータベースサーバーで使用でき、逆についても同様です。パーソナルサーバーとネットワークサーバーでは、同じ要求処理エンジンが使用され、どちらも同一の SQL 言語と多くの同じデータベース機能がサポートされています。ただし、この 2 つのサーバーには 2、3 の違いがあります。☆パーソナルデータベースサーバー このデータベースサーバーは、単一ユーザーによる単一コンピューターでの使用を目的としています。たとえば、組み込みデータベースサーバーとして提供されています。ネットワーク経由のクライアント/サーバー通信はサポートしていません。
Windows Mobile 以外の Windows オペレーティングシステムでは、パーソナルサーバーの実行プログラム名は dbeng12.exe です。パーソナルサーバーは、Windows Mobile ではサポートされていません。☆ネットワークデータベースサーバーこのデータベースサーバーは、ネットワーク経由のクライアント/サーバー通信をサポートし、複数ユーザーでの使用を目的としています。
Windows Mobile を含む Windows オペレーティングシステムでは、ネットワークサーバーの実行プログラム名は dbsrv12.exe です。
- サンプルデータベースの起動と停止) SQL Anywhere データベースサーバーの起動☆サンプルデータベースを実行するパーソナルデータベースサーバーを起動するには(コマンドラインの場合)
- 次のコマンドを入力して、パーソナルデータベースサーバーを起動し、-n サーバーオプションを使用してデータベースサーバー名を demo12 に設定し、サンプルデータベースに接続します。dbeng12 -n demo12 “%SQLANYSAMP12%\demo.db”データベースサーバーはシステムトレイにアイコンとして表示されます。
- システムトレイで SQL Anywhere パーソナルサーバーアイコンをダブルクリックして、データベースサーバーメッセージウィンドウを表示します。データベースサーバーメッセージウィンドウには、次の情報が表示されます。
- サーバー名
タイトルバーに表示されている名前 (この例では demo12) が「サーバー名」です。このチュートリアルでは、サーバー名を -n サーバーオプションを使用して割り当てています。サーバー名を指定しない場合は、最初に起動されたデータベースの名前になります。この名前は、アプリケーションがデータベースに接続するときに使用します。データベースサーバーとデータベースの命名を参照してください。 - バージョンとビルド番号
サーバー名に続く数字 (12.0.1.3126 など) は、バージョン番号とビルド番号です。バージョン番号は SQL Anywhere の特定のリリースを表し、ビルド番号はコンパイル済みソフトウェアの特定のインスタンスを表します。 - 起動情報
データベースサーバーは、起動時に、データベース要求を処理するときに使用するメモリを別に設定します。これを「キャッシュ」と呼びます。キャッシュメモリの量は、このウィンドウに表示されます。キャッシュは固定サイズの「ページ」で構成されていますが、このページのサイズもウィンドウ内に表示されます。 - データベース情報
データベースファイルの名前とそのトランザクションログファイルがウィンドウに表示されます。
この例では、起動時のキャッシュサイズとページのサイズはデフォルト値になっています。このチュートリアルの場合も含め、多くの場合デフォルトの起動オプションが適しています。
- サーバー名
起動したデータベースサーバーを停止します。
☆ サンプルデータベースを実行しているデータベースサーバーを停止する
- システムトレイにある SQL Anywhere のアイコンをダブルクリックします。
- [シャットダウン] クリックします。
- データベースに接続があることを促すメッセージが表示されたら、[はい] をクリックします。
☆ サンプルデータベースを実行するデータベースサーバーを停止する
- 次のコマンドを実行して、サンプルデータベースを実行するパーソナルデータベースサーバーを停止します。dbstop demo12
- サーバー停止ユーティリティ (dbstop) はコマンドプロンプトでのみ実行できます。サーバー停止ユーティリティ (dbstop)を参照してください。データベースに接続があることを促すメッセージが表示されたら、Y を入力します。
- 管理ツールについてSQL Anywhereにはいろいろな管理ツールが用意されています。ここではその中でも比較的よく使用されるSybase Central と Interactive SQLについて説明します。i) Sybase CentralSybase Central は、データベースサーバー、データベース、およびそれらに含まれているオブジェクトを管理するためのグラフィカルツールです。
Sybase Centralを使用して、データベースの作成、スキーマ定義、及びバックアップなど、データベースの管理がグラフィカルにできます。◎ Sybase Centralの起動とデータベースへの接続- [スタート] ≫ [プログラム] ≫ [SQL Anywhere 12] ≫ [管理ツール] ≫ [Sybase Central] を選択します。
- [接続] ≫ [SQL Anywhere 12 に接続] を選択します。
- [アクション] ドロップダウンリストから、[ODBC データソースを使用した接続] を選択します。
- [ODBC データソース名] を選択し、その下のボックスに SQL Anywhere 12 Demo と入力します。
- [接続] をクリックします。
- 接続すると下記の画面が表示されます。
このツールを使用すると、SQL Anywhere と Ultra Light のデータベースに対して SQL 文の実行、スクリプトのビルド、データベースのデータ表示を実行できます。
- SQL 文をデータベースサーバーに送信する。Interactive SQL からの SQL 文の実行を参照してください。
- データベース内の情報をブラウズする。
- 結果セットにあるデータを編集する。
- データベースにデータを読み込む。
- クエリ結果をファイルまたは別のデータベースにエクスポートする。
- スクリプトファイルを実行する。
- インデックスコンサルタント (クエリパフォーマンスの向上に役立つツール) を実行する。
- クエリエディター (あらゆる種類のクエリの設計、分析、テストに役立つツール) にアクセスする。
- クエリの実行プランを表示する。
- SVG などのイメージを表示する。
- 空間データを表示する。
Interactive SQL は、SQL Anywhere と Ultra Light のデータベースでサポートされるすべての SQL 文と、Interactive SQL でのみ使用可能な SQL 文をサポートします。
◎ Interactive SQLの起動とデータベースへの接続
・コマンドラインの場合
- 次のコマンドを実行します。
dbisql - 次のプロンプトが表示されます。
a. [アクション] ドロップダウンメニューリストから、[ODBC データソースを使用した接続] を選択します。
b. [ODBC データソース名] をクリックし、その下のボックスに SQL Anywhere 12 Demo と入力します。
c. [接続] をクリックします。
・スタートメニューからの場合
- [スタート] ≫ [プログラム] ≫ [SQL Anywhere 12] ≫ [管理ツール] ≫ [Interactive SQL] を選択します。
- [データベースタイプを変更] をクリックして、接続するデータベースのタイプを選択します。SQL Anywhere データベース、Sybase IQ データベース、Ultra Light データベース、汎用 ODBC データベースに接続できます。
たとえば、SQL Anywhere データベースに接続するには、[データベースタイプを変更] をクリックして、[SQL Anywhere] を選択します。 - [接続] ウィンドウで、データベースの接続情報を入力します。
たとえば、SQL Anywhere サンプルデータベースに接続するには、次の手順に従います。a. [認証] フィールドで [データベース] を選択します。
b. [アクション] ドロップダウンメニューリストから、[ODBC データソースを使用した接続] を選択します。
c. [ODBC データソース名] をクリックし、その下のボックスに SQL Anywhere 12 Demo と入力します。 - [接続] をクリックします。
- 次のSQL文を[SQL文]ウィンドウに入力し、F5キーを押下、または ボタン、または メニューの【SQL > 実行】をクリックすると、入力したSQL文が実行され、結果が[結果]ウィンドウに表示されます。
- チュートリアル:SQL Anywhere データベースの作成
- データベースファイルの作成下記の手順によりデータベースファイルを作成します。データベースファイルには、システムテーブルと、すべてのデータベースに共通するその他のシステムオブジェクトが格納されます。☆ Sybase Central の場合
- [スタート] ≫ [プログラム] ≫ [SQL Anywhere 12] ≫ [管理ツール] ≫ [Sybase Central] を選択します。
- [ツール] ≫ [SQL Anywhere 12] ≫ [データベースの作成] を選択します。
- [ようこそ] ページで、[次へ] をクリックします。
- [このコンピューターにデータベースを作成] を選択し、[次へ] をクリックします。
- [メインデータベースファイルを保存] フィールドに、c:\temp\mysample.db と入力します。
テンポラリフォルダーとして c:\temp 以外のディレクトリを使用する場合は、適切なパスを指定します。 - [完了] をクリックします。
- [閉じる] をクリックします。
- データベースへのテーブルの追加次の手順を使用して、Products という名前のテーブルを作成します。
テーブルを作成するには、次の手順に従います。- Sybase Central の右ウィンドウ枠で、[テーブル] をダブルクリックします。
- [テーブル] を右クリックし、[新規] ≫ [テーブル] を選択します。
- [新しいテーブルの名前を指定してください。] フィールドに、Products と入力します。
- [完了] をクリックします。データベースサーバーによって、デフォルト設定を使用してテーブルが作成され、右ウィンドウ枠に [カラム] タブが表示されます。新しいカラムの [名前] フィールドが選択され、新しいカラムの名前を指定するよう求められます。
- 新しいカラムの名前として、ProductID と入力します。このカラムがテーブル内の最初のカラムなので、テーブルのプライマリキーであることを示す [プライマリキー] が選択されます。
テーブルを作成する場合、カラムを作成し、各 [プライマリキー] カラムのチェックマークをオンにすることで、複数のカラムから成るプライマリキーを作成できます。 - [データ型] リストで、[integer] を選択します。
- 省略記号 (ピリオド 3 つ) ボタンをクリックします。
- [値] タブをクリックし、[デフォルト値] ≫ [システム定義] ≫ [autoincrement] を選択します。autoincrement 値は、テーブルにローが追加されるごとに増加します。これにより、カラムにはユニークな値が設定されます。これはプライマリキーの要件です。プライマリキーを参照してください。
- [OK] をクリックします。
- [ファイル] ≫ [新規] ≫ [カラム] を選択します。
- 次のフィールドを完成させます。
・[名前] フィールドに、ProductName と入力します。
・[データ型] リストで、[char] を選択します。
・[サイズ] リストで、[15] を選択します。ボタンをクリックするとテーブル情報が保存されます。次のテーブルをデータベースに追加します。● Customers テーブルテーブル Customers を追加し、テーブル内に以下のカラムを作成します。
CustomersID 各顧客の ID 番号です。[プライマリキー] が選択されていることを確認し、[データ型] を [integer] に、[デフォルト値] を [autoincrement] にそれぞれ設定します。
CompanyName 各会社の名前です。[データ型] を [char] に設定し、最大長を 35 文字にします。をクリックし、保存します。● SalesOrders テーブル
テーブル SalesOrders を追加し、テーブル内に以下のカラムを作成します。
SalesOrdersID 各注文書の ID 番号です。[データ型] を [integer] に設定し、[プライマリキー] が選択されていることを確認します。[デフォルト値] に [autoincrement] を設定します。
OrderDate 注文日です。[データ型] を [date] に設定します。
CustomerID 発注した顧客の ID 番号です。[データ型] を [integer] に設定します。
をクリックし、保存します。● SalesOrderItems テーブル
テーブル SalesOrderItems を追加し、テーブル内に以下のカラムを作成します。
SalesOrderItemsID 項目を含む注文書の ID 番号です。[データ型] を [integer] に設定し、[プライマリキー] が選択されていることを確認します。
LineID 各注文書の ID 番号です。[データ型] を [integer] に設定し、[プライマリキー] が選択されていることを確認します。ProductID 受注製品の ID 番号です。[データ型] を [integer] に設定します。
注意
[プライマリキー] は、SalesOrderItemsID と LineID の両方に設定されているため、この 2 つのカラムの連結値でテーブルのプライマリキーが構成されます。 - [ファイル] ≫ [保存] を選択します。
- カラムへの NOT NULL 制約の設定次の手順を使用して、NOT NULL 制約をカラムに追加します。
カラムに制約を追加する、またはカラムから制約を削除するには、次の手順に従います。- Sybase Central の左ウィンドウ枠で、[テーブル] をダブルクリックします。
- [Products] をクリックし、右ウィンドウ枠で [カラム] タブをクリックします。
- [ProductName] カラムを選択します。
- [ファイル] ≫ [プロパティ] を選択します。
- [制約] タブをクリックし、[NULL 値を禁止] を選択します。
デフォルトではカラムに NULL 値が許可されますが、NULL 値を許可する明確な理由がないかぎり、カラムには NOT NULL を宣言してください。NULL 値を参照してください。 - [OK] をクリックします。
この制約により、[Products] テーブルに追加されたローごとに、[ProductName] カラムに値が必要になります。 - [ファイル] ≫ [保存] を選択します。
- 外部キーの作成次の手順を使用して、外部キーによりテーブル間の関係を作成します。
外部キーを作成するには、次の手順に従います。- Sybase Central の左ウィンドウ枠で、[テーブル] をダブルクリックします。
- 左ウィンドウ枠で、[SalesOrdersItems] テーブルをクリックして選択します。
- 右ウィンドウ枠で、[制約] タブを選択します。
- [ファイル] ≫ [新規] ≫ [外部キー] を選択します。
- [この外部キーが参照するテーブルを指定してください。] リストで、[Products] テーブルを選択します。
- [新しい外部キーの名前を指定してください。] フィールドに、ProductIDkey と入力します。
- [次へ] をクリックし、[この外部キーが参照する主キー制約または一意性制約を指定してください。] で、[プライマリキー] を選択します。
- [外部カラム] リストで、[SalesOrdersItemsID] をクリックします。
- [完了] をクリックします。
- 左ウィンドウ枠でデータベース名(mysample – DBA)をクリックし、右ウィンドウ枠で[ER図]タブをクリックすると、作成したテーブルのER図を見る事ができます。
- データベースファイルの作成下記の手順によりデータベースファイルを作成します。データベースファイルには、システムテーブルと、すべてのデータベースに共通するその他のシステムオブジェクトが格納されます。☆ Sybase Central の場合
SAPの SAP SQLAnywhere製品ページはこちら