情報処理基礎論 a 第 12 回 (関係データベースと SQL ) 「関係データベースとSQL」 講義ノート目次

関係データベースを計算機に入れ、 前回行った演算を実行するには専用の言語を必要とする。 アプリケーションは PostgreSQL (ぽすとぐれしーける) を使う。 言語は SQL, Structured Query Language を用いる。英語では "しーける" と発音するが、日本ではアルファベット読みが通用している。

SQL で実行したいこと

である。

SQL は表に対して設定する言語と、 レコードに対して動作を行う言語から成り立っている。 表に実行を行う許可を与えることは、 データ定義言語と呼ばれる DDL, Data Definition Language を使って行い、 表の操作はデータ操作言語と呼ばれる DML, Data Manipulation Language を使う。

DML, データ操作言語

関係データベースにおいてデータを操作するのには、射影、選択、結合があった。 このような操作は、データを照会しながら行うので、query (照会) と呼ばれる。

Query には SELECT, INSERT, UPDATE, DELETE, をよく使うので覚えておこう。

ワイルドカードの文字は * を使う。 ワイルドカードとは、あらゆる文字列の代わりになる文字のこと。

SELECT 文

あるレコードを取り出すときに使う。

SELECT 属性 FROM 表 [WHERE 条件]

「キャラクタと番組」 において 以下の SELECT 文を実行せよ。

SELECT 文に使う関数

何かを取り出すのに関数を使うことができる。以下のような関数を知っておくと便利である。

関数目的使いかた
AVG平均を出すAVG(属性)
COUNT行数を出すCOUNT(*)
MAX最大値を出すMAX(属性)
MIN最小値を出すMIN(属性)
SUM合計を出すSUM(属性)

演習6-2:以下の文を実行した結果を示せ。

上の演習問題でも、順位の和や平均は意味がないが、練習のために行っている。

COUNT は、* で全てを数えること以外に、重複しない行数を数える指定ができる。 それには重複している情報を含む属性を DISTINCT で指定すればよい。

COUNT (DISTINCT (属性)):重複を排除した行数を数える

演習6-3:以下の文を実行した結果を示せ。表は前回のものを使用する。