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
470
データサイエンス12_分類.pdf
jnlp
0
330
データサイエンス11_前処理.pdf
jnlp
0
460
Recurrent neural network based language model
jnlp
0
130
自然言語処理研究室 研究概要(2012年)
jnlp
0
130
自然言語処理研究室 研究概要(2013年)
jnlp
0
93
自然言語処理研究室 研究概要(2014年)
jnlp
0
110
自然言語処理研究室 研究概要(2015年)
jnlp
0
180
Other Decks in Education
See All in Education
2025年度春学期 統計学 第10回 分布の推測とは ー 標本調査,度数分布と確率分布 (2025. 6. 12)
akiraasano
PRO
0
140
新卒交流ワークショップ
pokotyamu
0
430
SkimaTalk Introduction for Students
skimatalk
0
380
AIの時代こそ、考える知的学習術
yum3
2
170
SkimaTalk Teacher Guidelines Summary
skimatalk
0
790k
Gamified Interventions for Composting Behavior: A Case Study Using the Gamiflow Framework in a Workplace Setting
ezefranca
1
130
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visualisation (4019538FNR)
signer
PRO
1
2.4k
人になにかを教えるときに考えていること(2025-05版 / VRC-LT #18)
sksat
4
1k
Tutorial: Foundations of Blind Source Separation and Its Advances in Spatial Self-Supervised Learning
yoshipon
1
120
SkimaTalk Tutorial for Students
skimatalk
0
1.8k
教員向け生成AI基礎講座(2025年3月28日 東京大学メタバース工学部 ジュニア講座)
luiyoshida
1
570
Common STIs in London: Symptoms, Risks & Prevention
medicaldental
0
130
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Designing Experiences People Love
moore
142
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
What's in a price? How to price your products and services
michaelherold
246
12k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Rails Girls Zürich Keynote
gr2m
94
14k
A better future with KSS
kneath
239
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
How to train your dragon (web standard)
notwaldorf
94
6.1k
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) • 表明 – 複数の表にまたがる複雑な制約を定義できる