ホーム » 2017 » 10月 » 26

日別アーカイブ: 2017年10月26日

2017年10月
« 9月   11月 »
1234567
891011121314
15161718192021
22232425262728
293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

SQLの基礎とデータ定義文

前回のデータベースの説明で、最も中心的な機能のSQLについて説明を行ったが、その続き。

SQLの基礎

データベースでは、記録されているデータの読み書きは、SQLという言語を用いる。 SQLでは、射影・結合・選択を表す処理で構成される。

SELECT S.業者番号       -- 必要とされるデータを抽出する射影 --
FROM S                  -- 複数のテーブルを組合せる結合 --
WHERE S.優良度 >= 20 ;  -- 対象となるデータを選び出す選択 --

// C言語なら
for( int i = 0 ; i < sizeofarray( S ) ; i++ ) {
   if ( S[i].優良度 >= 20 )
      printf( "%d¥n" , S[i].業者番号 ) ;
}

Sは、テーブル名であり、文脈上対象テーブルが明らかな場合、フィールド名の前の テーブルは省略可能である。

SELECT 業者番号 FROM S WHERE 優良度 >= 20 ;

ここで、SQLの最も便利な機能は、直積による結合処理。2つの表を組み合わせる処理。

PERSON 個人の情報                 ((C言語の構造体をイメージ))
id  | name    | age | work     |  struct PERSON {
----+---------+-----+--------- |     int  id ;
101 | tsaitoh | 52  | teacher  |     char name[10] ;
102 | tomoko  | 41  | worker   |     int  age ;
203 | mitsuki | 18  | student  |     char work[10] ;
                               |  } table_person[3] ;
GRAD 卒業した学校
id  | graduate   # idは外部キー
----+-----------               |  struct GRAD {
203 | manyo-jh                 |     int  id ;
102 | fukui-nct                |     char graduate[10] ;
101 | univ-fukui               |  } table_grad[3] ;

※ ER図的に言うと、実体(PERSON),関係(GRAD) の他に実体(SCHOOL)があるべき

(さらに…)