複数行クエリでMySQLのプロンプトが「mysql>」から「->」に変わる理由とは?
複数行にわたるクエリ(SQLステートメント)を記述する場合、最初の1行目を入力した直後に、MySQLのプロンプトは「mysql>」から「->」へと即座に変化します。
プロンプトが変わることの重要性
このプロンプトの変化には重要な意味があります。「->」という表示は、MySQLがまだ完全なステートメントを受け取っておらず、残りの入力を待機している状態であることを示すサインだからです。つまり、ユーザーはこの表示を見ることで、入力途中であることや、文の続きが必要であることを一目で把握できます。
具体例
以下の例を見てみましょう。
mysql> Select * -> from -> stock_item;
この例では、1行目の「Select *」を入力した時点で、プロンプトが「->」に切り替わっています。これは、その時点ではまだステートメントが完了していないことを意味します。
セミコロンでステートメントが完了する
MySQLはセミコロン(;)を検出した時点で、はじめてステートメントが完了したと判断し、その結果を出力します。上記の例では、最終行の「stock_item;」の末尾にあるセミコロンによって文が完結し、クエリが実行されます。
補足:セミコロンを忘れた場合
もしセミコロンを入力せずにEnterキーを押してしまうと、MySQLは引き続き「->」プロンプトを表示して入力を待ち続けます。このような場合は、続けて「;」を入力すれば実行できますし、入力を取り消したい場合は「\c」と入力するか「Ctrl + C」を押すことでキャンセルできます。
-
MySQLでアンダースコア以降の文字列のみを抽出して更新する方法
はじめにMySQLでは、SUBSTRING()関数とLIKE句を組み合わせることで、文字列の一部(たとえばアンダースコア以降の部分)だけを抽出して更新できます。本記事では、具体的なサンプルコードを使いながら、その手順をわかりやすく解説します。テーブルの作成まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable ( UserName varchar(100) ); Query OK, 0 rows affected (0.69 sec)レコードの挿入次に、INSERTコマンドを使ってテーブルにデータを登録します。mysql> i
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す