リレーショナルデータベース 超入門 文部省核融合科学研究所 プラズマ計測系 江本雅彦 平成11年度東海北陸地区教室系術職員合同研修 1 核融合研で使用されているRDB システム名 データベース OS 目的 LMS Oracle7 Windows NT 実験管理 解析情報 PostgreSQL6.5 RedHat 6.0 リアルタイム Sybase System 11 平成11年度東海北陸地区教室系技術職員合同研修 Solaris 2.6 解析情報イン デックス 装置管理 データ管理 2 代表的なリレーショナルデータベース 商用データベース Oracle8、Microsoft SQL Server7、 Informix、DB2 等 フリーデータベース PostgreSQL、MySQL、mSQL、 GNUSQL等 平成11年度東海北陸地区教室系技術職員合同研修 3 SQL リレーショナルデータベースの問い合わせ 言語 ISO/JIS による標準化 SQL92が現在の標準他言語から利用する 時は埋め込みSQL等が必要 平成11年度東海北陸地区教室系技術職員合同研修 4 歴史 1970 1976 1987 E.F.Coddリレーショナルデータモデ ル発表 IBM SanJose研究所 SEQUEL2発 表 SQL-87規格化 1989~1990 SQL-89規格化 1992~1995 SQL-92規格化 SQL3策定中 平成11年度東海北陸地区教室系技術職員合同研修 5 テーブル …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 21型TV 234 41,800 1236 ポータブル MD 234 21,800 1237 ノート型PC 236 198,000 平成11年度東海北陸地区教室系技術職員合同研修 カラム 価格 ロウ 6 抽出 select * from 製品 where メーカコード=’234’ 製品テーブル …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 21型TV 234 41,800 1236 ポータブルMD 234 21,800 1237 ノート型PC 236 198,000 平成11年度東海北陸地区教室系技術職員合同研修 価格 7 select 文 select 列名1,列名2,…. from テーブル名 where 条件 平成11年度東海北陸地区教室系技術職員合同研修 8 条件 <条件>: <式> <オペレータ> <式> 比較オペレータ =,!=,<,<=,>,>= 文字オペレータ like その他 in,between 平成11年度東海北陸地区教室系技術職員合同研修 9 条件(例) 売上 >= 100000 売上が10000以上の行にマッチ 製品名 like ‘%TV%’ %は任意の文字列にマッチするため、 ‘14型TV’、’壁掛けTV’、’TVモニタ‘等にマッ チ 製品コード in (‘1234’,’1235’) 製品コードが 1234 または 1235 の行にマッチ 平成11年度東海北陸地区教室系技術職員合同研修 10 複雑な条件 select * from 製品 where メーカコード=’234’ and 価格>30000 …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 15型TV 234 41,800 1236 ポータブル MD 234 21,800 1237 ノート型PC 236 198,000 平成11年度東海北陸地区教室系技術職員合同研修 価格 11 合計、平均 売上テーブル 日付 製品番号 数量 1999/8/1 1234 234 1999/8/2 1235 123 1999/8/3 1235 20 1999/8/3 1237 34 …. select sum(数量) from 売上 where 日 付 = ‘19990801’ select avg(数量) from 売上 where 日 付 = ‘19990801’ 平成11年度東海北陸地区教室系技術職員合同研修 12 最大・最小 売上テーブル 日付 製品番号 数量 1999/8/1 1234 234 1999/8/2 1235 123 1999/8/3 1235 20 1999/8/3 1237 34 …. select max(数量) from 売上 where 日 付 = ‘19990801’ select min(数量) from 売上 where 日 付 = ‘19990801’ 平成11年度東海北陸地区教室系技術職員合同研修 13 create 文 create テーブル名 ( カラム名1 タイプ [ not null], カラム名2 タイプ [ not null], ……….. カラム名n タイプ [ not null] ) 平成11年度東海北陸地区教室系技術職員合同研修 14 create 文(例) create table 製品 (製品番号 char(4) not null, メーカコード char(3) not null, 価格 money not null, コメント varchar(255) ) 平成11年度東海北陸地区教室系技術職員合同研修 15 代表的なデータタイプ タイプ名 説明 範囲 表現 int 整数 -2147483648 ~2147483647 1, 2343,… float 8バイト浮動小数 機種依存 0.13,6.02e23,… char(n) nバイト 固定長文字列 varchar(n) n バイト 可変長文字列 money 4バイト 固定小数 21474836.48 ~ +21474836.47 ‘24.00’,‘3234.00’ datetime 日付時間 μsec単位 4713 BC ~1465001 AD ‘19990805 235959’ 平成11年度東海北陸地区教室系技術職員合同研修 ‘a’,’abc’,… 16 NULL NULL はデータが存在しないことを表す。 NULL であるカラムと‘=’、‘<=’等の比較 を行うと偽となるあるカラムがNULLである かどうかを比較するには‘is null’を使用す る。 平成11年度東海北陸地区教室系技術職員合同研修 17 insert 文 構文1 insert into テーブル名 values (値1、値2、値3、・・・) 構文2 insert into テーブル名 (カラム1、カラム2、・・・) values (値1、値2、値3・・・) 平成11年度東海北陸地区教室系技術職員合同研修 18 insert文(例) …. 製品番号 製品名 メーカコード 価格 1234 14型TV 234 38,000 1236 ポータブルMD 234 21,800 1237 ノート型PC 236 198,000 insert into 製品 values (‘1236’,’21型TV’,…’41800’) …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 21型TV 234 41,800 1236 ポータブルMD 234 21,800 1237 ノート型PC 236 198,000 平成11年度東海北陸地区教室系技術職員合同研修 価格 19 delete 文 delete from テーブル名 where 条件 平成11年度東海北陸地区教室系技術職員合同研修 20 delete文(例) …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 21型TV 234 41,800 1236 ポータブルMD 234 21,800 1237 236 delete from ノート型PC 製品 where 製品番号=‘1235’ …. 価格 198,000 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1236 ポータブルMD 234 21,800 1237 ノート型PC 236 198,000 平成11年度東海北陸地区教室系技術職員合同研修 価格 21 update 文 update テーブル名 set カラム1=値1、 カラム2=値2、 ・・・・ where 条件 平成11年度東海北陸地区教室系技術職員合同研修 22 update 文(例) …. 製品番号 製品名 メーカコード 価格 1234 14型TV 234 38,000 1235 21型TV 234 41,800 1236 ポータブルMD 234 21,800 1237 236 198,000 update 製品ノート型PC set 価格=‘39800’ where 製品コード=‘1235’ …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 21型TV 234 39,800 1236 ポータブルMD 234 21,800 1237 ノート型PC 236 198,000 平成11年度東海北陸地区教室系技術職員合同研修 価格 23 distinct …. 製品番号 製品名 メーカコード 1234 14型TV 234 38,000 1235 21型TV 234 41,800 1236 ポータブルMD 234 21,800 1237 ノート型PC 236 198,000 select distinct メーカコード from 製品 メーカコード メーカコード 234 234 234 236 価格 234 236 平成11年度東海北陸地区教室系技術職員合同研修 24 結合(join) 売上テーブル 製品テーブル 日付 製品番号 数量 1999/8/1 1234 234 1999/8/2 1999/8/3 1999/8/3 1235 1235 1237 …. 製品番 号 製品名 メーカコード 1234 14型TV 234 1235 21型TV 234 1236 ポータブ ルMD 234 1237 ノート型 PC 236 …. 123 20 34 Foreign キー 平成11年度東海北陸地区教室系技術職員合同研修 Primary キー 25 結合 続き select 日付,売上.製品番号,製品名,数量 from 売上,製品 where 売上.製品番号=製品.製品番号 and 日付 >= ‘19990801’ 日付 製品番号 製品名 数量 1999/8/1 1234 14型TV 234 1999/8/2 1235 21型TV 123 1999/8/3 1235 21型TV 20 1999/8/3 1237 ノート型PC 34 平成11年度東海北陸地区教室系技術職員合同研修 26 Group 日付 製品番号 数量 1999/8/1 1234 234 1999/8/2 1235 123 1999/8/3 1235 20 …. select 製品番号,sum(数量) 1999/8/3 1237 34 as 合計 from 売上 where 日付 between ‘19990801’ and ‘19990831’ group by 製品番号 製品番号 合計 1234 234 1235 143 1237 34 平成11年度東海北陸地区教室系技術職員合同研修 27 Order select カラム from テーブル where 条件 order by カラム1 [DESC|ASC]、カラム2,・・・ 平成11年度東海北陸地区教室系技術職員合同研修 28 Order 日付 製品番号 数量 1999/8/1 1234 234 1999/8/2 1235 123 1999/8/3 1235 20 …. select 製品番号,sum(数量) 1999/8/3 1237 34 as 合計 from 売上 where 日付 between ‘19990801’ and ‘19990831’ group by 製品番号 order by 合計 製品番号 合計 1237 34 1235 143 1234 234 平成11年度東海北陸地区教室系技術職員合同研修 29 副問合せ(サブキュエリ) 日付 製品番号 製品名 数量 1999/8/1 1234 14型TV 234 1999/8/2 1234 21型TV 123 1999/8/3 1235 21型TV 20 1999/8/3 1237 ノート型PC 34 select 製品番号 from 売上 where 数量 = ( select max(数量) from 売上) 平成11年度東海北陸地区教室系技術職員合同研修 30 多言語との接続 ODBC (VisualBasic 他) JDBC (Java) PHP (HTML) DBI(Perl) 平成11年度東海北陸地区教室系技術職員合同研修 31
© Copyright 2025 ExpyDoc