MySQL中国語リファレンスマニュアル--MySQLチュートリアル(2)--入力クエリー
5367 ワード
前の章で説明したように、サーバに接続していることを確認します.これ自体はデータベースを選択して作業しませんが、それはいいです.この点から、テーブルの作成にすぐにジャンプしたり、データをロードしたり、データを取得したりするよりも、どのように質問するかについての知識を知ることが重要です.このセクションでは、コマンドを入力する基本原則について説明します.いくつかのクエリーを使用して、
これは簡単なコマンドで、サーバーにバージョン番号と現在の日付を教えるように要求します.
この質問はコマンドは通常、SQL文で構成され、セミコロンが続きます.(いくつかの例外はセミコロンを必要としません.先に述べた コマンドを発行すると、
キーワードは任意の大文字と小文字で入力できます.次の質問は等価です.
これまでに表示されたコマンドはかなり短く、単行文です.1行に複数の文を入力することもできます.1つのセミコロンで各文を終了します.
1つのコマンドはすべて1つの行で与える必要はありません.したがって、複数の行を必要とする長いコマンドは問題ではありません.
ここでは、単純な複数行文の例を示します.
この例では、複数行のクエリの最初の行を入力した後、プロンプトが
入力中に入力したコマンドを実行したくない場合は、
ここでもプロンプトに注意してください.
次の表は、各プロンプトが表示され、
プロンプト
意味
1つのローでコマンドを発行しようとすると、複数のローの文は通常「偶然」に表示されますが、終了したセミコロンを忘れます.この場合、
もしこれがあなたに起こったら(文を負けたと思いますが、唯一の反応は
ここまで来たら、何をするべきですか.最も簡単なのはコマンドをキャンセルすることです.しかし、この場合、
プロンプトは
mysql
がどのように動作しているかを試してみましょう.これは簡単なコマンドで、サーバーにバージョン番号と現在の日付を教えるように要求します.
mysql>
プロンプトで次のコマンドを入力し、Enterキーを押します.mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>
この質問は
mysql
件について説明します.QUIT
は彼らの一人です.後で他のものを見ます.)mysql
がサーバに送信して結果を表示し、別のmysql>
を発行して別のコマンドを受け入れる準備ができていることを示します.mysql
クエリー出力を1つのテーブル(行と列)で表示します.最初の行には列のラベルが含まれ、その後の行は質問結果です.通常、カラムラベルは、データベース・テーブルから取得したカラムの名前です.テーブル列の値ではなく式を取得している場合(前述の例のように)、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(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+
これまでに表示されたコマンドはかなり短く、単行文です.1行に複数の文を入力することもできます.1つのセミコロンで各文を終了します.
mysql> SELECT VERSION(); SELECT NOW();
+--------------+
| version() |
+--------------+
| 3.22.20a-log |
+--------------+
+---------------------+
| NOW() |
+---------------------+
| 1999-03-19 00:15:33 |
+---------------------+
1つのコマンドはすべて1つの行で与える必要はありません.したがって、複数の行を必要とする長いコマンドは問題ではありません.
mysql
入力行の終わりを探すのではなく、終了したセミコロンを探すことで、文がどこで終わるかを決定します.(言い換えれば、mysql
はフリーフォーム入力を受け入れます.入力行を収集しますが、セミコロンが見えるまで実行します.)ここでは、単純な複数行文の例を示します.
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+--------------------+--------------+
| USER() | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18 |
+--------------------+--------------+
この例では、複数行のクエリの最初の行を入力した後、プロンプトが
mysql>
から->
にどのように変化するかに注意してください.これは、mysql
が完全な文が見えず、残りの部分を待っていることをどのように指摘しているかです.プロンプトはあなたの友达です.価値のあるフィードバックを提供しているので、このフィードバックを使用すると、mysql
が何を待っているかをいつも知っています.入力中に入力したコマンドを実行したくない場合は、
/c
に入力してキャンセルします.mysql> SELECT
-> USER()
-> /c
mysql>
ここでもプロンプトに注意してください.
/c
に入力した後、mysql>
に戻り、mysql
が新しいコマンドを受け入れる準備ができていることを示すフィードバックを提供します.次の表は、各プロンプトが表示され、
mysql
がどのような状態にあるかをまとめています.プロンプト
意味
mysql>
新しい命令を受け入れる準備ができています->
複数行命令の次の行を待つ'>
次の行を待って、単一引用符(')で始まる文字列を収集します.">
次の行を待って、二重引用符(""")で始まる文字列を収集します.1つのローでコマンドを発行しようとすると、複数のローの文は通常「偶然」に表示されますが、終了したセミコロンを忘れます.この場合、
mysql
は、さらなる入力を待つ.mysql> SELECT USER()
->
もしこれがあなたに起こったら(文を負けたと思いますが、唯一の反応は
->
プロンプトです)、mysql
がセミコロンを待っている可能性があります.プロンプトが何を教えているのか気づかなかったら、何をする必要があるかを認識する前に、しばらく座っているかもしれません.セミコロン完了文に入り、mysql
が実行します.mysql> SELECT USER()
-> ;
+--------------------+
| USER() |
+--------------------+
| joesmith@localhost |
+--------------------+
'>
および">
プロンプトは、文字列収集中に表示される.MySQLでは、「'」または「」の文字列で囲まれた文字列(たとえば、'hello'
または"goodbye"
)を書くことができ、mysql
は複数の行にまたがる文字列に入ることができます.'>
または">
プロンプトを見ると、「'」または「」の括弧文字で始まる文字列を含む行を入力したが、終了文字列の一致引用符は入力されていません.もしあなたが確かに複数行の文字列を入力しているなら、いいですが、本当にそうですか?必ずしもそうではない.より一般的には、'>
と">
のプロンプトは、引用符文字を省略したことを示します.例:mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30;
">
SELECT
, , 。 ,“ ?”, ">
。 mysql
。( ? "Smith
。)
ここまで来たら、何をするべきですか.最も簡単なのはコマンドをキャンセルすることです.しかし、この場合、
/c
を入力するだけではいけません.mysql
は収集中の文字列の一部として解釈されているからです.逆に、閉じた引用符文字(文字列が完了したことを示すmysql
)を入力し、/c
に入力します.mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30;
"> "/c
mysql>
プロンプトは
mysql>
に戻り、mysql
が新しいコマンドを受け入れる準備ができていることを示します.'>
と">
プロンプトが何を意味するかを知ることが重要です.もしあなたが間違って終了していない文字列を入力したら、次の入力よりもmysql
に無視されるようです.QUIT
を含む行が含まれています.これは、特に現在のコマンドをキャンセルできる前に、終了引用符を提出する必要があることを知らない場合は、かなり曖昧かもしれません.