前のセクションで説明したように,サーバーに接続していることを確認します。それだけでは操作するデータベースは選択されていませんが,それでかまいません。この時点では、テーブルの作成、テーブルへのデータのロード、テーブルからのデータの取り出しに今すぐ進むのではなく、クエリーの発行方法を学ぶことが重要です。このセクションでは、mysqlの动作にするため,いくつかのクエリーを使使てコマンドコマンドの基本原则について说明しし。
mysql >
プロンプトに続けて,次に示すように入力してから进入を押します。
mysql> SELECT VERSION(), CURRENT_DATE;+--------------+--------------+ | 版本()|当前日期 | +--------------+--------------+ | 5.6.1-m4-log | 2010-08-06 | +--------------+--------------+ 1行集(0.01秒)mysql >
このクエリーには,mysqlに関するいくつかの事項が示されています。
通常,コマンドはSQLステートメントとそれに続くセミコロンで構成されます。(セミコロンを省略できる例外もいくつかあります。前述の
辞职
もその1つです。ほかのものについてはあとで説明します)。コマンドを発行すると,mysqlはそれをサーバーに送信して実行し,結果を表示してから,もう1つの
mysql >
プロンプトを出力して,次のコマンドの準備ができたことを示します。mysqlは,クエリーの出力を表形式(行とカラム)で表示します。最初の行には,カラムのラベルが表示されます。以降の行はクエリーの結果です。通常,カラムラベルは,データベーステーブルからフェッチされるカラムの名前です。次の例のように,テーブルカラムではなく式の値を取得する場合,mysqlではカラムのラベルとして式自身がが使さます。
mysqlでは,返された行の数とクエリーの実行にかかった時間が表示されるため,サーバーの大まかなパフォーマンスがわかります。これらの値は、CPU時間やマシン時間ではなく時計の時間で表されるため,また,サーバー負荷やネットワーク待機時間などの要因に影響されるため,正確ではありません。(簡略化のために,この章のほかの例では「行设置」の行が省略されている場合もあります)。
キーワードは大文字でも小文字でも入力できます。次のクエリーは同等です。
mysql> SELECT VERSION(), CURRENT_DATE;Mysql > select version(), current_date;mysql> SeLeCt vErSiOn(), current_DATE;
次に,別のクエリーを示します。これは,mysqlを簡単な計算機として使用できることを示しています。
mysql> SELECT SIN(PI()/4), (4+1)*5;+------------------+---------+ | SIN(π()/ 4)| (4 + 1)* 5 | +------------------+---------+ | 0.70710678118655 | 25 | +------------------+---------+ 1行集(0.02秒)
これまでに示したクエリーは,比較的に短い,1行のステートメントでした。1行に複数のステートメントを入力することもできます。各ステートメントの末尾にはセミコロンを付加してください。
mysql> select版本();立即选择();+ -------------- + |版本()|+ -------------- + |5.6.1-M4-log |+ -------------- + 1行套(0.00秒)+ -------------------- + |现在()|+ -------------------- + |2010-08-06 12:17:13 | +---------------------+ 1 row in set (0.00 sec)
1つのコマンド全体を1行に入力する必要はないため,複数の行を必要とする長いコマンドでも問題ありません。mysqlは,入力行末尾探すのではなくのではなく,终端のセミコロンを探すによってステートメントのをを判定ししますしますし。(つまり,mysqlは自由形式のの受け入れをますますますします,セミコロンが见つかるはは実しん。)
次に,単纯単纯分数行ステートメント示します。
mysql> SELECT -> USER() ->, -> CURRENT_DATE;+---------------+--------------+ | 用户()|当前日期 | +---------------+--------------+ | jon@localhost | 2010-08-06 | +---------------+--------------+
この例では,複数行にわたるクエリーの最初の行を入力したあと,プロンプトがmysql >
から- >
に変化することに注意してください。これは,mysqlがまだ完全なステートメントを検出しておらず,残りの入力を待機していることを示しています。プロンプトは貴重なフィードバックを提供してくれる味方です。そのフィードバックを使用すれば,mysqlが何を待機しているのかを,常に認識することができます。
入力途中のコマンドの実行を取り消すには,\ c
と入力します。
mysql> SELECT -> USER() -> \c mysql>
ここでもプロンプトに注目してください。\ c
の入力後にmysql >
に戻り,mysqlが新しいコマンドに対して準備できていることを示すフィードバックが与えられます。
次の表に,表示される各プロンプトとそれらが示すmysqlの状態をまとめます。
プロンプト | 意味 |
---|---|
mysql > |
新しいコマンドを入力できます。 |
- > |
複数行コマンドの次の行を待機しています。 |
' > |
単一引用符 (「' 」)で始まった文字列完了するまで次のを待するています。 |
"> |
二重引用符 (「" 」)で始まった文字列完了するまで次のを待するています。 |
`> |
逆引用符 (「` 」)で始まった識別子が完了するまで次の行を待機しています。 |
/ *> |
/ * で始まったコメントが完了まで次の行をしいいます。 |
一般に1行のコマンドを発行しようとして終端のセミコロンを忘れると,複数行ステートメントが発生します。この場合,mysqlは追加の入力を待機します。
mysql> select user() - >
これが起きたた合(ステートメントステートメントを力したのに- >
プロンプトの応答が示されはる),mysqlがセミコロンを待機している可能性が高くなります。プロンプトの意味に気付かなければ、何をするべきか理解するまでに時間がかかるかもしれません。セミコロンを入力してステートメントを完了すると、mysqlで実行されます。
mysql> SELECT USER() ->;+---------------+ | 用户 () | +---------------+ | jon@localhost | +---------------+
' >
および">
プロンプトは,文字列の収集中に発生します(MySQLが文字列の完了を待機しているという意味です)。MySQLでは,「'
」文字または「"
」文字で囲んで文字列を記述でき(たとえば,“你好”
や“再见”
など),mysqlでは,複数行にわたって文字列を入力することができます。' >
または">
プロンプトが表示される場合,それは「'
」または「"
」引用符で始まる文字列を含む行を入力したが,その文字列を終了させる対応する引用符をまだ入力していないことを意味します。このような場合,引用符の入力を忘れていることがよくあります。例:
mysql> SELECT * FROM my_table WHERE name = 'Smith ' AND age < 30;' >
この选择
ステートメントを入力し,输入を押して結果を待っても,何も起きません。このクエリーがなぜそれほど時間がかかるのかと不思議に思うのではなく、' >
プロンプトで示される手がかりに注目してください。このプロンプトは,mysqlが完了していない文字列の残りを待機していることを示しています。(このステートメントの間違いに気付きましたか。文字列“史密斯
には2番目の一重引用符がありません)。
では,どうしますか。もっとも簡単なのは,コマンドを取り消すことです。ただし,この場合は単に\ c
と入力することはできません。なぜなら,mysqlで収集中の文字列の一部とみなされるからです。代わりに,閉じる引用符を入力して(つまり,文字列が完了したことをmysqlに認識させ),次に\ c
と入力します。
mysql> SELECT * FROM my_table WHERE name = 'Smith ' AND age < 30;' > ' \ c mysql >
プロンプトがmysql >
に戻り,mysqlが新しいコマンドに対して制备できできいることが示され。
`>
プロンプトは' >
および">
プロンプトプロンプト同様です,逆引用符を开放したまだ终了していないを示してますますことこと
' >
、">
,および`>
の各プロンプトが何を意味するかを理解することが重要です。なぜなら,誤って未終了の文字列を入力した場合、それ以降の入力行は辞职
を含む行も含めて,mysqlに无视されるように见えるからです。特色,现任のコマンド取り消すにまずののをををををとをししないと,これとかなり困惑するとがあり困惑する性性性ありありあり性性があり