SwiftUIでSQLを操作 ~プライベートネットワークでのMySQL~(下準備編)
SwiftUIで、プライベートLAN内にあるMySQLサーバにアクセスし、操作する手順をご紹介します。
SwiftUIでSQLを操作する前準備
いくつか前提条件と、SQLサーバの準備が必要ですので、まずはそこから説明いたします。
[前提条件]ネットワーク構成
説明を簡単にするため、最小限の構成にしてあります。
Macbook(IP: 192.168.0.101)でXcodeを走らせています。
Windows10のPC(IP: 192.168.0.100)にMySQLサーバをインストールしています。
とりあえずSQLを使ってみるだけなので、簡単な構成にしています。
(あくまで仮想のネットワークです)
[事前準備]WindowsへのMySQLの導入
次に、Windows機へMySQLを導入します。
SQLは、有名どころでいえばSQL ServerやOracle、オープンソースではPostgreSQLなど、さまざまな種類がありますが、今回はMySQLを選択しました。
そもそもSQL ServerやOracleは有料なので除外ですが、PostgreSQLとMySQLはどちらもオープンソースで無料です。どちらも使ったことがありますが、今回はWordPressでもMySQLを使っていますし、どちらかというとPostgreSQLは大規模データベースのイメージがあるので、こじんまりと勉強するのに適してると思いMySQLにしてみました。
詳しい比較はいろいろなサイトがあるので、参考に見てみてください。
で、本題です。
WindowsにMySQLを導入する方法ですが…ほかの優秀なサイトさんをご紹介いたします!!(笑)
[事前準備]SQLにあらかじめダミーデータを入れておく
MySQLが導入できたら、ダミーデータを入力します。
まずは、MySQL Workbenchを起動します。
検索から「mysql」と入力すると、だいたいの環境では上記のような表示になると思います。
この中から「MySQL Workbench 8.0 CE」を開きます。
開いたら、「Local instance MySQL80」というのがあるはずです。
それをクリックしてください。
rootのパスワードを求められますので、インストールした時に入力したパスワードを打ち込んでください。
パスワードを入力すると、英語ばかりのWorkbenchが表示されます。
rootのままデータベースを扱うのは危ないので、データベース接続用のユーザを作成します。
画面の上部メニューから「Server」→「Users and Privileges」を選択します。
すると、次のようなユーザー登録画面が表示されます。
この画面は、ユーザーとユーザーの権限を設定するための画面です。
アカウントを追加するので、ユーザー一覧の下にある「Add Account」をクリックしてください。
ユーザー登録画面が表示されますので、それぞれの項目を入力してください。
「Login Name」… ユーザー名を入力してください。(ここでは "testuser" としています)
「Authentication Type」 … パスワード認証形式です。特に事情がなければ "Standard" を選択してください。
「Limit to Hosts Matching」 … この文字列にマッチするホストからのみ接続を受け付けます。どのホストからも受け付ける場合は % を入力します。
「Password」「Confirm Password」 … パスワードです。(ここでは "1234ABCzyx" としています)
すべて入力したら、右下の「Apply」を押してください。User Accountsに testuser が追加されました。
(ここから03/12/10追記)
次に、コマンドを実行するための権限を付与します。
プロパティウインドウの上部の「Administrative Roles」タブをクリックしてください。
すると、権限設定の画面が表示されますので、左側のグループ(Role)から「 DBManager 」にチェックを入れます。すると、自動的に「DBDesigner」と「BackupAdmin」にチェックが入り、右側のグループ(Global Privileges)にも、自動的にいくつかの項目にチェックが入ります。
細かい説明は省きますが、ユーザーが不意に権限外のコマンドを実行できないように設定されてあります。最後に「Apply」を押してください。
(ここまで03/12/10追記)
次はデータベースを作成していきます。
まずはスキーマ(Schema: 集合)を作成します。
上部メニューのアイコンの中から、「Create a new schema...」のアイコンをクリックしてください。
アイコンをクリックすると、new_schemaというビューが表示されますので、Nameにスキーマ名を入力してください。
とりあえず、サンプルとして「yukimachi」というスキーマを作成します。
Nameに「yukimachi」と入れ、Applyをクリックします。
SQL実行のダイアログが表示されるので、「Apply」→「Finish」と進んでください。
これでSchemaにyukimachiが登録されました。
では、実際のデータベーステーブルを作成していきます。
最終的に作成するデータは次のような感じになります。
では登録していきましょう。
ツリーの中の「yukimachi」をダブルクリックしてください。すると、「yukimachi」が太字表示になり、ツリーが拡張されます。(これでSchemaが選択された状態になります)
太字になった状態で、「Create a new table ...」のアイコンをクリックします。すると、中央のビューにテーブル作成のビューが表示されます。
「Table Name」に test と入力してください。
次に、Columnを作成します。
「Column Name」の下の空白をダブルクリックすると、Column Nameに"idtest"、Datatypeに"INT"が入ると思います。そのままでもいいのですが、"idtest"を"id"に修正しておきます。
続いて「id」の下の空白をダブルクリックしてください。Column Nameに"testcol"、Datatypeに"VARCHAR(45)"が入っているので、"testcol"を"name"に修正します。
Datatypeについて、ここで詳しく解説することはしませんが、INTは整数型、VARCHAR(45)は最大45文字の文字列を保持できるデータ型です。
入力が終わったら、Applyを押してください。
余談ですが、ここから記入するべきところは鉛筆の絵を入れることにしました。
最初からやれよって感じですね(^^;;
さて、Applyを押すと、ダイアログが表示されますので、Apply→Finishをクリックしてください。
…で、ダミーデータを入力します。
Navigatorウインドウのyukimachiの下にあるTablesに▶がついていると思います。
これをクリックするか、「Tables」をダブルクリックすると、下位ツリーが拡張されます。
先ほど作った「test」テーブルがありますので、右に表示される3つのアイコンのうち、最も右のアイコンをクリックしてください。すると、テーブルビューが表示されます。
表示されたテーブルビューの下の Result Grid に入力していきます。
NULL となっているところに、下のようにデータを入力します。
このあたりは適当にしてもらってもいいと思いますが、次回データを取り出してみる際に文字列の一部から抜き出すようにしますので、ご留意ください。
3行すべて入力できたら、例によって「Apply」を押して、ダイアログウインドウで「Apply」→「Finish」してください。
準備の終わり
これで準備が終わりました。
次は実際にSwiftからSQLをさわってみたいと思います。