質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

1805閲覧

sqlの英語について

nahanihana

総合スコア13

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2015/11/15 11:55

いつもお世話になっております。
sqlで使用される英語でhaving句がありますがこれはなぜhavingを用いるのでしょうか。
where句がレコードに対する条件でhaving句がグループに対する条件と言うのは分かっているんですが英語のhavingを用いるのが釈然としません。
どうでもいいと言えばどうでもいいのかもしれませんが、なぜhavingという単語を使用するのかご存知の方がいらっしゃればご教授願いたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

selectが選択する、という意味だから、choice, read, get でも良いようなもので、
having を使うというのはそういう文法、つまり、掟や決まりだからです。
nahanihanaさんがパフォーマンスや使いやすさで現在のSQLの文法を越えるものを作ることができれば、DBのアクセスはそちらに変わるかもしれません。

投稿2015/11/15 12:07

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nahanihana

2015/11/16 09:53

文法だからそうと言われれば確かにそうなんですが、完全に適当に決めている訳ではないと思うので、何か意図するところがあればそれを知りたかったのです。 回答していただきありがとうございます。
guest

0

色々考えてみました。


Having (SQL)
https://en.wikipedia.org/wiki/Having_(SQL)

A HAVING clause in SQL specifies that an SQL SELECT statement should only return rows where aggregate values meet the specified conditions. It was added to the SQL language because the WHERE keyword could not be used with aggregate functions.[1]

SQLでHAVING句は、集計値が指定された条件を満たしている場合は、SQLのSELECT文は、行のみを返すように指定します。 WHEREキーワードは集約関数で使用することができませんでしたので、それは、SQL言語に追加されました。

WHEREがあって、GROUP BYが出来たのでしょうかね…。

HAVING を GROUP BY(が仮に過去分詞として) にかけて考えると
「GROUP BYをした後の条件」と読み取れるので、HAVINGなのかもしれないですね。
実際、HAVINGはGROUP BYの後の条件なので…。

投稿2015/11/16 01:54

anonymouskawa

総合スコア856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nahanihana

2015/11/16 09:50

sqlの実行順序としてもgroup by の後というのはいいアイディアだと思います。 回答してくださりありがとうございました。
guest

0

ベストアンサー

まぁ、強いて言うなら、
「"グループ化した仮想テーブル"を、保って(having)さらに」という様な意味合いでしょうね。

投稿2015/11/15 15:39

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nahanihana

2015/11/16 09:49

仮想テーブルを主語にすれば何となく感じがつかめそうですね。 主語having~で「~の条件を保持した仮想テーブル」みたいに。 何となく感覚がつかめました。いいアイディアありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問