take95
@take95

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

SQL 演算子と句って何か違うのでしょうか?

Q&A

Closed

現在SQLについて学習をしており、ふと疑問に思ったことがあったため質問させていただきます。

内容はタイトルの通りなのですが、演算子と句は何か違いがあるのでしょうか?
具体的にはLIKE(曖昧検索)について学習をしていたところLIKE演算子と書いてある記事やLIKE句と書いてある記事があり、自分の中で違いがわからずモヤモヤしています。

個人的には、演算子は比較や計算を行うための記号(+, >=, &&など)だと思っていたためLIKE演算子という言葉に疑問を覚えました。

差して大きな違いはないと思いますが、なにか違いがあるなら教えていただきたいです。
よろしくお願い致します。

0

1Answer

SQL 標準仕様の SQL-92 では LIKE は演算子と定義されています。

4.2.2.2  Other operators involving character strings

[...]

<like predicate> uses the triadic operator LIKE (or the inverse,
NOT LIKE), operating on three character strings and returning
a Boolean. 

演算子は記号に限らず、値を受け取って値を返すもの(そして関数ではないもの)と考えてください。 a = b がaとbを比較して1か0を返すように、 a LIKE b もaとbを比較して1か0を返します。

mysql> SELECT 'foo' = 'foo';
+---------------+
| 'foo' = 'foo' |
+---------------+
|             1 |
+---------------+
1 row in set (0.01 sec)

mysql> SELECT 'foo' LIKE 'foo';
+------------------+
| 'foo' LIKE 'foo' |
+------------------+
|                1 |
+------------------+
1 row in set (0.03 sec)

値を返すということは式の一部として使うこともできます: (a LIKE b) = 1 (こう書く意味はありませんが)

一方、句は不可分な文の構成要素です。書く場所が決まっていて単独で使うことがない、値を返さないようなものです。

1Like

Comments

  1. @take95

    Questioner

    > 値を受け取って値を返すもの(そして関数ではないもの)

    すごくしっくりきました!!


    ご返答ありがとうございました。

Your answer might help someone💌