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)があるべき