Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースと応用システム:SQL(1)表の作成と整合性制約
Search
自然言語処理研究室
May 24, 2013
Education
1
520
データベースと応用システム:SQL(1)表の作成と整合性制約
自然言語処理研究室
May 24, 2013
Tweet
Share
More Decks by 自然言語処理研究室
See All by 自然言語処理研究室
データサイエンス14_システム.pdf
jnlp
0
390
データサイエンス13_解析.pdf
jnlp
0
490
データサイエンス12_分類.pdf
jnlp
0
350
データサイエンス11_前処理.pdf
jnlp
0
470
Recurrent neural network based language model
jnlp
0
140
自然言語処理研究室 研究概要(2012年)
jnlp
0
140
自然言語処理研究室 研究概要(2013年)
jnlp
0
100
自然言語処理研究室 研究概要(2014年)
jnlp
0
120
自然言語処理研究室 研究概要(2015年)
jnlp
0
200
Other Decks in Education
See All in Education
授業レポート:共感と協調のリーダーシップ(2025年上期)
jibunal
0
120
「実践的探究」を志向する日本の教育研究における近年の展開 /jera2025
kiriem
0
110
2026 g0v 零時政府年會啟動提案 / g0v Summit 2026 Kickstart
rschiang
0
360
20250830_本社にみんなの公園を作ってみた
yoneyan
0
130
AI for Learning
fonylew
0
200
尊敬語「くださる」と謙譲語「いただく」の使い分け
hysmrk
0
110
ÉTICA, INCLUSIÓN, EDUCACIÓN INTEGRAL Y NEURODERECHOS EN EL CONTEXTO DEL NEUROMANAGEMENT
jvpcubias
0
120
みんなのコード 2024年度活動報告書/ 2025年度活動計画書
codeforeveryone
0
340
中央教育審議会 教育課程企画特別部会 情報・技術ワーキンググループに向けた提言 ー次期学習指導要領での情報活用能力の抜本的向上に向けてー
codeforeveryone
0
320
QR-koodit opetuksessa
matleenalaakso
0
1.7k
あなたの言葉に力を与える、演繹的なアプローチ
logica0419
1
190
[FUN Open Campus 2025] 何でもセンシングしていいですか?
pman0214
0
250
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
What's in a price? How to price your products and services
michaelherold
246
12k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
How to Ace a Technical Interview
jacobian
280
24k
Fireside Chat
paigeccino
40
3.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Mobile First: as difficult as doing things right
swwweet
224
10k
Thoughts on Productivity
jonyablonski
70
4.9k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Transcript
(c)長岡技術科学大学 電気系 1 データベースと応用システム SQL(1) ~表の作成と整合性制約~ 山本和英 長岡技術科学大学 電気系
(c)長岡技術科学大学 電気系 2 SQLの概要 • IBMが開発した関係データモデルに基づくデータ ベース言語 • JIS規格(JIS X
3005) • ほとんどのRDBMSで採用されている • アクセスだけでなくテーブルなどの管理機能も標 準化されている • 条件を満たすデータに対して一括処理が可能
(c)長岡技術科学大学 電気系 3 SQLの2言語 • データ定義言語(Data Definition Language, DDL) –
テーブルやビューの作成、権限の定義 – CREATE, DROP, GRANT, REVOKE など • データ操作言語(Data Manipulation Language, DML) – データの参照・更新・追加・削除など – SELECT, UPDATE, INSERT, DELETE など ※青字部分をデータ制御言語(Data Control Language, DCL)として3言語とする分類もある。
(c)長岡技術科学大学 電気系 4 表定義 CREATE TABLE 商品 ( 商品コード CHAR(4) PRIMARY
KEY, 商品名 NCHAR(10) NOT NULL, 単価 INT, 仕入先コード CHAR(4), FOREIGN KEY (仕入先コード) REFERENCES (仕入先), CHECK (単価 <= 500) ) 商品コード 商品名 単価 仕入先コード 1320 マウス 300 P200 【商品】
(c)長岡技術科学大学 電気系 5 表定義 CREATE TABLE 商品 ( 商品コード CHAR(4) PRIMARY
KEY, 商品名 NCHAR(10) NOT NULL, 単価 INT, 仕入先コード CHAR(4), FOREIGN KEY (仕入先コード) REFERENCES (仕入先), CHECK (単価 <= 500) ) 商品コード 商品名 単価 仕入先コード 1320 マウス 300 P200 【商品】 主キーである 4文字の文字列 必ず値がある 整数である 【仕入先】の仕入れ先コードが 外部キーである 単価に制約をかける
(c)長岡技術科学大学 電気系 6 表の削除 DROP TABLE テーブル名 例: DROP TABLE
商品
(c)長岡技術科学大学 電気系 7 整合性制約 • データがデータベース管理者の想定している通りに 入力されることを保証するための仕組み • 表定義時に(CREATE文中に)一緒に定義する。 •
テーブルに対しての制約(テーブル制約)とテーブ ル中の列に対しての制約(列制約)がある。
(c)長岡技術科学大学 電気系 8 形式制約 入力するデータの型(数字/文字)や文字数(桁)を 指定する。 • 数値型 – INT:大整数、SMALLINT:小整数、NUMERIC(n,m):全
桁数nで小数点以下m桁、DECIMAL:NUMERICと同じ • 文字列型 – CHAR(n):固定長文字列n桁(nは省略可能) – VARCHAR(n):可変長文字列n桁(nは省略可能) • 日付型 – DATE:年月日、TIMESTAMP:年月日と時刻
(c)長岡技術科学大学 電気系 9 デフォルト値 • データを追加する時に値を指定しないと、この値が 設定される。 ... 電話番号 CHAR(15)
DEFAULT '0258-46-6000', ... ※デフォルト値は整合性制約ではないが、記述方法が同じ ためここで紹介しています。
(c)長岡技術科学大学 電気系 10 非ナル(NOT NULL)制約 • ある列にNULL値が入らないようにする。 ... 電話番号 CHAR(15)
NOT NULL, ...
(c)長岡技術科学大学 電気系 11 一意性(UNIQUE)制約 • 指定列が一意である (=同一なものが存在 しない)ことを強制す る。 •
列に対して: ... 電話番号 UNIQUE, ... • テーブルに対して: CREATE TABLE 商品 (商品名 NCHAR(20), … UNIQUE(商品名), ...
(c)長岡技術科学大学 電気系 12 主キー制約 • 指定した列、または列の 組み合わせに一つだけ主 キーとしての指定をする。 • 主キー制約
= 一意性制 約 + 非ナル制約 • 列制約: CREATE TABLE 受注 (受注ID CHAR(5) PRIMARY KEY, … • テーブル制約 CREATE TABLE 受注明細 (受注ID CHAR(5), 連番 CHAR(2), ... PRIMARY KEY(受注ID, 連番), …
(c)長岡技術科学大学 電気系 13 検査(CHECK)制約 • 指定した列の内容に条件 を加える。 • 列制約: ...
単価 INT CHECK(単価>=100), ... • テーブル制約 CREATE TABLE 商品 (単価 INT, ... CHECK(単価>=100) ...
(c)長岡技術科学大学 電気系 14 参照制約(外部キー制約) • 複数の表に参照関係がある場合の制約。以下、A 表のある列がB表のある列を参照しているとする。 • A表にデータを追加する際はB表にある値かNULLし か追加できない
• B表のデータを削除や更新する際は、A表にその値 が存在しない時にのみ可能となる
(c)長岡技術科学大学 電気系 15 参照制約の例 • 列制約: CREATE TABLE 受注 (得意先ID
CHAR(5) REFERENCES 得意先(得 意先ID), ... • テーブル制約 CREATE TABLE 受注 (得意先ID CHAR(5), ... FOREIGN KEY (得意先 ID) REFERENCES 得意先(得 意先ID), ...
(c)長岡技術科学大学 電気系 16 参照制約:オプション • NO ACTION – 参照元にあると参照先を削除・更新できない –
デフォルト • CASCADE – 参照元にあると参照先も連携して削除する • SET NULL – 参照元にあると参照先も連携して削除し、参照元の列 にNULLを設定する
(c)長岡技術科学大学 電気系 17 参照制約オプションの例 CREATE TABLE 受注 (得意先ID CHAR(5), ...
FOREIGN KEY (得意先ID) REFERENCES 得意先(得意先ID), ON DELETE SET NULL ...
(c)長岡技術科学大学 電気系 18 その他の制約 • 存在制約 – あるデータが存在するためには、別のデータが必要で ある •
更新制約 – 値を更新する場合、適当な値を入力しなければならな い(例:月の欄は1~12) • 表明 – 複数の表にまたがる複雑な制約を定義できる