8-7. MySQL入門⑦MySQLデータベースの照会 続き
続きをやります。
ぐじゃぐじゃと、かきつらねます。
1. MySQLデータベースの照会 続き
1-1. WHEREとLIKE修飾子
1-2.LIMIT修飾子
1-3. MATCH...AGAINST
1-4. UPDATE...SET
1-5. ORDER BY
1-1. WHEREとLIKE修飾子
WHERE修飾子はクエリの範囲を指定することが出来ます。
SELECT author,title FROM classics WHERE author="Mark Twain";
のauthor="Mark Twain"をみると、等価演算子=を使っています。
これは、Mark Twainと完全に一致するものの列だけ返してね、という意味です。
また、LIKE演算子を使ったパターンマッチングでも行えます。この修飾子はテキストの前か後に%文字をつけて使用します。
キーワードの前に%を置くと、その前はなんでもよいという意味で、後に%を置くとその後はなんでもよいという意味になります。
①SELECT author,title FROM classics WHERE author LIKE "Charles%";の場合
Charlesの後についているので、Charles佐藤でもCharles加藤でもなんでもいいから、冒頭がCharlesのものを抽出してねということです。
②SELECT author,title FROM classics WHERE title LIKE "%Species";の場合
Speciesの前に%がついてるので、前はなんでもいいよということですね。Speciesで終わるものを抽出します。
③SELECT author,title FROM classics WHERE title LIKE "%and%";の場合
%で挟んでいる場合は、andの前後はなんでもいいということです。
各々の結果はこちら。
1-2. LIMIT修飾子
LIMIT修飾子は、クエリに返す行数を選ぶことができ、その時に取得を開始する位置を設定することもできます。
配列の時と同様にテーブルの最初の行は0です。
①SELECT author,title FROM classics LIMIT 3;の場合
テーブルの先頭から3つの行を返します。
②SELECT author,title FROM classics LIMIT 1,2;の場合
テーブルの位置1(先頭から2番目)から開始した2つの行を返します。
③SELECT author,title FROM classics LIMIT 3,1;の場合
テーブルの位置3(先頭から4番目)から開始した1つの行を返します。
ややこしいわ。。。
1-3. MATCH...AGAINST
MATCH...AGAINSTはFULLTEXTインデックスが設定された列に使用できます。これを使うと、検索エンジンで自然言語検索(話し言葉のような文章の入力で結果が得られる)が可能となります。
すげーーーー
WHEREやWHERE...LIKEと違い、MATCH...AGAINSTでは検索クエリに複数のワードを入力することができます。
1-4. UPDATE...SET
UPDATE...SETを使用するとフィールドの内容を更新することができます。1つのまたは複数のフィールドの内容を変更したい場合には、SELECコマンドと同じように、UPDATEの後で変更する1つまたは複数のフィールドを指定します。
①UPDATE classics SET author='Mark Twain (Samuel Langhorne Clemens)'
WHERE author='Mark Twain';の場合
ark Twainに名前を追加しています。
②UPDATE classics SET category='Classic Fiction'
WHERE category='Fiction';の場合
フィクションをクラッシックフィクションに変えています。
結果はこちら。
1-5.ORDER BY
ORDER BYは、1つまたは複数の列で返された結果を昇順または降順でソートします。
①SELECT author,title FROM classics ORDER BY author;の場合
これはauthorのアルファベット昇順で返します。
②SELECT author,title FROM classics ORDER BY title DESC;の場合
こちらは降順で返します。DESCを入れると降順なのか。。
結果はこちら。
いじょーーー
あともう1回やったら、9章いける。。。