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
380
データサイエンス13_解析.pdf
jnlp
0
480
データサイエンス12_分類.pdf
jnlp
0
340
データサイエンス11_前処理.pdf
jnlp
0
460
Recurrent neural network based language model
jnlp
0
140
自然言語処理研究室 研究概要(2012年)
jnlp
0
130
自然言語処理研究室 研究概要(2013年)
jnlp
0
97
自然言語処理研究室 研究概要(2014年)
jnlp
0
120
自然言語処理研究室 研究概要(2015年)
jnlp
0
190
Other Decks in Education
See All in Education
大学院進学について(2025年度版)
imash
0
120
2025年度春学期 統計学 第10回 分布の推測とは ー 標本調査,度数分布と確率分布 (2025. 6. 12)
akiraasano
PRO
0
220
Online Privacy
takahitosakamoto
0
110
2025年度春学期 統計学 第9回 確からしさを記述する ー 確率 (2025. 6. 5)
akiraasano
PRO
0
150
JPCERTから始まる草の根活動~セキュリティ文化醸成のためのアクション~
masakiokuda
0
220
情報科学類で学べる専門科目38選
momeemt
0
580
Pythonパッケージ管理 [uv] 完全入門
mickey_kubo
23
24k
OJTに夢を見すぎていませんか? ロールプレイ研修の試行錯誤/tryanderror-in-roleplaying-training
takipone
1
220
20250625_なんでもCopilot 一年の振り返り
ponponmikankan
0
350
小学校女性教員向け プログラミング教育研修プログラム「SteP」の実践と課題
codeforeveryone
0
110
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
1.8k
相互コミュニケーションの難しさ
masakiokuda
0
200
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Producing Creativity
orderedlist
PRO
347
40k
Code Review Best Practice
trishagee
70
19k
Navigating Team Friction
lara
189
15k
Docker and Python
trallard
45
3.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
A better future with KSS
kneath
239
17k
Music & Morning Musume
bryan
46
6.8k
Statistics for Hackers
jakevdp
799
220k
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) • 表明 – 複数の表にまたがる複雑な制約を定義できる