JavaRush /Java Blog /Random-JA /データベースとSQL言語を分析します。(パート 2) - 「Java プロジェクトの A から Z まで」
Roman Beekeeper
レベル 35

データベースとSQL言語を分析します。(パート 2) - 「Java プロジェクトの A から Z まで」

Random-JA グループに公開済み
Java プロジェクトの作成に関するシリーズの記事 (他の資料へのリンクは最後にあります)。その目標は主要なテクノロジーを分析することであり、その結果として電報ボットを作成することになります。 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 1読者の皆様、ご健康を。私たちの手は目よりもはるかに記憶に優れているため、今日は少し話し、さらに書きます。なぜ MySQL を使用するのかと疑問に思われるかもしれません。たとえば、同じ PostgreSQL や他のソリューションがあります。ここではすべてがシンプルです。まず、無料です。次に、便利な UI インターフェイスを備えています (これについては別の記事で説明します)。第三に、彼女は私にとって親しみやすく、楽しいです。上記すべてに加えて、MySQL も非常に一般的です。

宿題の確認

前回、私は自分のマシンに MySQL をインストールし、ログインするというタスクを与えました。コンソール経由、またはその他の方法で。すべて完了しましたか? 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 2やってくれた人たち、よくやった!JavaRush のレベルは関係ありません。マニュアルに従って、作業に必要なツールをインストールして設定できることが重要です。そして、私はあなたに保証します、それらの多くはあるでしょう。挑戦したが成功しなかった人も恐れません。これは常に初めて起こるわけではありません。時には、休憩を取って、新たな力を入れて再挑戦する必要があります。MySQL を自分でインストールした人 - コメントに「+」を書いて、誰かがインストールしていることがわかるようにします。これも自分でやります。Windows ノートパソコンをもう持っていないので、MacBook で表示します。インストール手順はそれほど変わらないと思います。英語マニュアルを使用して自分で取り付けたい方はこちらをご覧ください。

MacOS への MySQL のインストール

まず、次のリンクに移動し、以下に示すように、Windows、Ubuntu、または MacOS のオペレーティング システムを選択します。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 3ダウンロードして起動します。しかし、すべてがすぐにうまくいくわけではありませんでした。Apple が最新バージョンのインストールを許可していないことが判明しました。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 4もちろん、これを無効にすることもできますが、MacBook は動作しているので、その設定をいじるつもりはありません。そこで、試行錯誤の結果、インストールできるバージョンを見つけました - これは5.7.21です。他のバージョンを見つけるには、「アーカイブ」タブに移動し、目的のバージョンを選択します。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 5次に、ダウンロードしたファイルを実行します。次へ、次へ、次へをクリックしますが、最後に注意してください。データベースにログインするためのユーザー名とパスワードがあります。私にとって、それは次のように見えました。ここには、名前がrootでパスワードがVac/zto=.24q「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 6のユーザーが存在することが示されています。これでインストールは完了です。

MySQL コマンドラインにログインします。

ログインするには、MySQL サーバーがオンになっていることを確認する必要があります。これを行うには、[システム環境設定]に移動し、そこにある MySQL アイコンを見つけます。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 7そこに移動し、最初にサーバーの電源をオンにする必要があることを確認します。これを行うには、「Start MySQL Server」をクリックするだけです。はい。チェックボックスをオンにして、マシンが起動するたびにサーバーがバックグラウンドで起動するようにすることもできます。明確にするために「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 8、ターミナル内のすべてのリクエストを$記号で開始することに注意することが重要です。次に、コマンド ラインを介して MySQL サーバーに直接接続する必要があります。これを行うには、ターミナルを開いて次のように書き込みます: $ mysql そして、2 つのオプションがあります:
  1. 応答が「エラー 1045 (28000): ユーザー 'roman_beskrovnyi'@'localhost' のアクセスが拒否されました (パスワードを使用: NO」)場合、これはサーバーがインストールされ、リコール中であることを意味します。正しいコマンドを渡すだけで済みます。それに。
  2. 答えがcommand not found: mysql であれば、問題ありません。サーバーへのリンクがないだけです。これを行うには、mysql 変数でエイリアスを作成する必要があるため、次の行を記述します。

    $エイリアス mysql=/usr/local/mysql/bin/mysql

    これは、このターミナル セッションでのみ役立ちます。しかし、これ以上は必要ありません。常にターミナルを使用して作業するわけではありません。

  3. MySQL はインストールされていません。コンピュータをだまさないでください。
次に、インストール時に指定された名前とパスワードを使用して、次のように書きます。 $ mysql --user=root -p「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 9そこにパスワードを書きます。この形式で問題ありません。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 10最後の行だけで、MySQL にログインしていることが示されています。ターミナルサーバー。しかし、この root のパスワードはワンタイム パスワードであることが判明したため、別のパスワードに変更する必要があります。もちろんセキュリティ上の理由からです。これを変更せずにサーバー上に新しいデータベースを作成しようとすると、次の応答が返されます: ERROR 1820 (HY000): このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 11いわば強制されているのです。そうですね、私たちにとっては難しいでしょうか?パスワードをもっと単純にしてみましょう (これはローカル作業のみです。実際の作業では、もちろんパスワードは複雑にする必要があります)。ユーザー名と同様にroot∫としましょう。パスワードを変更するには、次の行を入力する必要があります。 ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; 答えは次のようになります。すべてが正しく動作することを確認するために、次の構文「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 12を使用して新しいデータベースを作成してみましょう。 $ CREATE DATABASE test_db; このようなデータベースがサーバー上に作成されていることを確認するには、次のコマンドを作成します。 $ SHOW DATABASES; その結果、次の結果が得られます:以上です :) シンプルで高速だったとは言えません。したがって、誰が自分でそれを行ったとしても、特別な敬意を表します。まだインストールしたことがない人でも、心配する必要はありません。あらゆる種類のインストールに関するマニュアルがあります。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 ~ 13 そこにはすべてが非常にまともに説明されています。唯一のことは、すべてが英語であるということです。ここで、最初の行を SQL で記述します。

最初の行を SQL で書く

上記でお気づきかもしれませんが、次の 2 つのコマンドがわかっています。
  1. CREATE DATABASE - サーバー上にデータベースを作成します。
  2. SHOW DATABASES - サーバー上で作成され使用可能なすべてのデータベースを表示します。
SQL はコマンドをどのように記述するか (すべて大文字かどうか) を気にしないことに注意してください。ただし、コマンドは大文字で書くのがマナーとされています。次に、データベースを削除するには、DROP DATABASE データベース名 というコマンドを記述する必要があります。ここで、database_name は削除するデータベースの名前です。test_dbというテスト データベースがすでに作成されているので、削除しましょう。これを行うには、次のように記述します。 $ DROP DATABASE test; クエリ OK、影響を受ける行数は 0 (0.02 秒)応答は、リクエストが成功したことを確認するため、非常に重要であること に注意してください。さらに、このクエリがテーブル内の行数と時間をかけて変更したことがわかります。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 15一般に、DROPという単語は何かを削除する役割を果たします。この場合、データベースを削除しました。ただし、これは他の目的 (テーブルの削除など) にも使用できます。ここで、信じてもらうために、結果を確認して、データベースがいくつ残っているか見てみましょう。 $ SHOW DATABASES; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 16見てわかるように、test_db という名前のデータベースはありません。CHTD :D

独自のデータベースとテーブルを作成する

都市データベースを作成します。 $ CREATE DATABASE city; 特定のデータベースで作業するには、そのデータベースにログインする必要があります。これを行うには、USE データベース名コマンドを使用します。その後、テーブルを操作するためのすべてのコマンドがこのデータベースで実行されます。$使用都市; 応答「データベースが変更されました」 からわかるように、このデータベースへの移行は成功しました。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 17次のステップはテーブルの作成です。どれの?さて、まず、国を含むテーブルを作成しましょう。何故ですか?都市には、その都市が位置する国への外部キーが必要であるためです。そして、これらの国が一般的にデータベースに登録され始めた後に取得できます(以下、データベースと略します)。前回の記事で覚えているように、国が説明されている表には、ID と名前という 2 つのフィールドがあります。ID は一意の識別子、名前は国の名前です。したがって、このようなデータベースの作成は梨の殻をむくのと同じくらい簡単です。$ CREATE TABLE country (id INT, name VARCHAR(30));と書きます。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 18ご覧のとおり、すべてがうまくいきました。SHOW DATABASES と同様に、テーブルのリストを確認できます「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 19これが私たちのテーブルです。次に、テーブルを削除する方法を学びましょう。これを行うには、次のように書きます。 $ DROP TABLE country; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 20テーブルまたはデータベースは一度削除すると復元できないことに注意してください。

テーブルの操作

作成したテーブルを復元しましょう。これを行うには、すでに行ったことを繰り返すだけです。テーブル構造を確認するには、次のコマンドを使用する必要があります - DESC table_name : $ DESC country; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 21ご覧のとおり、テーブルに関するすべての情報がここに記録されています。テーブルに何かを追加するには、INSERT INTO table_name VALUES()コマンドを使用する必要があります。3 つの国について 3 つのレコードを追加しましょう。 $ INSERT INTO country VALUES (1, 'Ukraine'); $ INSERT INTO country VALUES (2, 'ロシア'); $ INSERT INTO country VALUES(3, 'ベラルーシ'); 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 22データベースに保存されているものを確認するには、単純なリクエストを使用してデータを取得します。これを行うには、国テーブルからすべてのフィールドのデータを取得する必要があります。SQL クエリは次のようになりますので、前の文を注意深く思い出してください。 $ SELECT * FROM country; * は、すべてのフィールドを取得する必要があることを意味します。「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 23これで綺麗になりました。特定のフィールドのみを取得したい場合は、問題ありません。スターの代わりに、カンマで区切る必要があるフィールドの名前を記述します。自分で試してみてください ;) すでにテーブルを作成しましたが、何らかの理由でそれに関する十分な情報がありません。人口規模は確かに害にはなりませんよね?そしてそれをどうやって行うか?
  1. テーブル スキーマに新しいフィールド (人口) を追加します。
  2. 既存のエントリを更新します。
最初に、ALTER TABLE table_name ADD COLUMNコマンドを使用します。一般に、ALTER TABLE は DDL 操作用の一連のコマンドです (これが何であるか覚えていますか? 前回の記事で説明しました)。ちなみに、SELECTとはDML操作のことです。次のように書いてみましょう。 $ ALTER TABLE country ADD COLUMN Population INT; $ DESC 国; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 24図からわかるように、新しいフィールドがテーブルに正常に追加され、2 番目のコマンドでフィールドがスキーマ内にあることが確認されました。2 番目のステップは、テーブル内のエントリを更新し、値を割り当てることです。Wikipediaから数字を引用してみましょう。信頼しているわけではありませんが、それでも、これが最も早くて簡単な方法です。これを行うには、別の DML コマンドを使用します。しかし、その前に、何をしたいかを言ってみましょう。国テーブルを更新し、id = 1 のレコードの人口フィールドを 41806221 にします。そして、この構造は次のようになります。UPDATE table_name SET table_row1 = value WHERE table_row2 = 値2; これに基づいて、次のように書きます。 $ UPDATE country SET Population = 41806221 WHERE id = 1; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 25ここでは初めてWHEREキーワードを使用しました。フィルタリング用の値を追加する必要があります。たとえば、今回は、ID が 1 に等しいフィールド (フィールド) のみを更新する必要があると述べました (これが主キーであることを SQL に指示するまで - 複数のフィールドが存在する可能性があります)。WHERE id > 2 のような条件を指定することもできます。フィルタリングをまったく指定しなかった場合、この値はすべてのテーブル レコードに書き込まれます。ロシア、ベラルーシ、その他の国の場合は、自分自身を更新してください ;) 次に、ID が 1 より大きい場合に、テーブルから名前フィールドと人口フィールドのデータを取得してみます「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 26したがって、私たち自身が望んでいた分野だけを受け取りました。INSERT INTO を使用すると、追加するフィールドと空のままにするフィールドを指定できます。これを行うには、次のように記述します。 $ INSERT INTO country (name, Population) VALUES('Georgia', 1234566); 何が起こったのかを確認するために、すべてのフィールドのリストを見てみましょう。 $ SELECT * FROM country; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 27ID がないとエントリは不正であり、人口は当然頭から取られているため、削除する必要があります。DELETE FROM table_nameコマンドを使用します。 $ DELETE FROM country WHERE name = 'Georgia'; 「Java プロジェクトの A to Z」: データベースと SQL 言語を分析します。 パート 2 - 28このようにして、テーブルからフィールドを削除する方法を学びました。

宿題

宿題は以下の通りとなります。
  1. ID フィールドの主キー (PRIMARY KEY) を国テーブル スキーマに追加する必要があります。
  2. 国テーブルに別の国 (モルドバ) を追加します。
  3. 前の記事のスキームに従って、説明されているすべてのフィールドを含むテーブル city を作成します。フィールド名は次のようになります: id、name、country_id、population。
  4. city テーブルに主キーを追加します。
  5. city テーブルに外部キーを追加します。
この作業は興味深いものですが、知識のある人にとっては、すぐに完了し、複雑ではありません。まだ持っていない人にとっては、この記事の内容をさらに強化するのに役立ちます。

要約しましょう

この記事では多くのことを行いました。まず、MySQL データベース サーバーをインストールして起動しました。次に、キーワードとクエリのリスト全体を学習し、それを利用してデータベースとテーブルを作成/削除できるようになりました。テーブルにデータを追加、更新、削除する方法を学びました。ここでは、使用したすべてのコマンドとその説明を示します。
  • CREATE DATABASE データベース名; - 新しいデータベースを作成する
  • データベースを表示します。— データベースのリストを表示する
  • DROP DATABASE データベース名; - データベースの削除
  • データベース名を使用します。- データベースでの作業
  • CREATE TABLE テーブル名 (id INT, ....); - テーブルを作成する
  • テーブルを表示します。— テーブルのリストを表示する
  • DESC TABLE テーブル名; — 表の図を参照
  • DROP TABLE テーブル名; - テーブルの削除
  • INSERT INTO table_name VALUES (); - テーブルにフィールドを追加します
  • SELECT * FROM テーブル名 WHERE テーブル行 = 値; — WHERE の後の条件でテーブル内のフィールドを取得します
  • SELECT * FROM テーブル名; - テーブル内のすべてのフィールドを取得します
  • ALTER TABLE テーブル名 ADD COLUMN 列名 COLUMN_TYPE; — 新しいフィールド field をテーブル スキーマに追加します。
  • UPDATE talbe_name SET talbe_row1 = value1 WHERE table_row2 = value2; — テーブル内のレコードを更新: あるフィールドの値を別のフィールドの条件に従って設定します
  • DELETE FROM table_name WHERE table_row1 = value1; — 特定の条件下でテーブルからフィールドを削除します。
私たちはあなたと素晴らしい仕事ができたと思います。私の作品を気に入ってくださった皆様には、私のGitHub アカウントに登録していただくよう招待します。そこでは、私のキャリアで起こっている興味深いプロジェクトや発展について投稿しています。オープンソースでの作業に興味があるすべての人を、私のプロジェクト (リポジトリ) に参加するよう招待します。ご清聴ありがとうございました。近々公開されるデータベースに関する次の記事にご期待ください。

シリーズのすべてのマテリアルのリストは、この記事の冒頭にあります。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION