読者です 読者をやめる 読者になる 読者になる

リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

8-7. MySQL入門⑦MySQLデータベースの照会 続き

MySQL 初心者

続きをやります。
ぐじゃぐじゃと、かきつらねます。


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の前後はなんでもいいということです。

各々の結果はこちら。
f:id:taro-blog2323:20160907224039p:plain

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';の場合

フィクションをクラッシックフィクションに変えています。

結果はこちら。
f:id:taro-blog2323:20160907232542p:plain


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を入れると降順なのか。。

結果はこちら。
f:id:taro-blog2323:20160907233408p:plain

いじょーーー
あともう1回やったら、9章いける。。。