SlideShare a Scribd company logo
データベース技術
第7回(2015.11.10)
1
データベースを構築する
•DBMS(Database Management System)を使う
- SQLによるアクセス機能
• SQLにより条件指定、ソートなど高度な検索が可能
- 高速な検索機能
• インデックスを持つことにより、高速に検索可能
- 排他制御機能
• 行単位、ファイル単位のロック機能により、排他制御が可能
- トランザクション管理機能
• トランザクション単位の更新や復帰が可能
- ログ管理機能
• アクセスログにより復旧が可能
2
SQLの機能
•SQL:リレーショナルデータベースを操作する
ためのデータベース言語
- データ定義言語DDL(Data Definition Language)
• 表を作成する、変更する、削除する
- データ操作言語DML(Data Management Language)
• データを入力する、抽出する、削除する、変更する
- データ制御言語DCL(Data Control Language)
• ユーザのアクセスなどを管理する
3
SQLiteの基礎知識(1)
•コマンドラインツールを使って操作する
•起動方法:SQLiteアイコンをクリック
※大学の環境とは
見た目が違います
4
SQLiteの基礎知識(2)
•SQL文は最後に「;」が入力されるまでがひとつ
のSQL文として扱われる
•「;」の後にEnterキーを押すことで実行される
•長いSQL文の場合は、途中でEnterキーを押して
もOK(「;」が入力されるまでが1文)
5
SQLiteの基礎知識(3)
•識別子
- テーブル名、カラム名、データベース名
•SQLiteのキーワード
- Database、Table、Create、Selectなどなど
•SQLiteのキーワードは識別子に使用しない
6
SQLiteを操作してみよう
•SQLiteを起動する
•接続中のデータベースを確認する
•接続していたデータベースから切断する
•データベースを作成する
•テーブルを作成する←今日はこの続き
7
データベースに接続する
•コマンドプロンプトを起動する
•データベースを指定してSQLiteを起動する
- コマンドプロンプト上で下記のように入力する
• sqlite3 データベース名
• 例:”C:¥Program Files¥sqlite3¥sqlite3.exe” U:¥shop.sqlite3
- 「.database」と入力して目的のデータベースに接続できた 
ことを確認してみましょう
- 先週の復習として「.tables」「.schema」コマンドも実行 
してみましょう
8
テーブルの確認
•テーブル一覧を表示する
- 「.tables」コマンドを実行
•テーブルの構造を確認
- 「.schema」コマンドを実行
- テーブル作成時のCreate文が表示される
9
SQLiteのデータ型
•SQLiteでは、カラムのデータ型指定は必須では
ない
•SQLiteで指定できるデータ型
型 説明
TEXT テキスト
INTEGER 符号付整数
REAL 浮動小数点数
NONE 入力データをそのまま格納
NUMERIC 上記以外
10
テーブルの作成(先週の復習)
•基本構文
- CREATE TABLE テーブル名(カラム名1, カラム名2, ...);
•カラムにデータ型を指定してテーブルを作成
- CREATE TABLE テーブル名(カラム名1 データ型, カラ
ム名2 データ型, ...);
•テーブルとカラム
- 名前には任意の名前を指定できる
- テーブルには少なくとも1つのカラムが必要
11
テーブル名の変更
•ALTER TABLE文を使う
- ALTER TABLE テーブル名 RENAME TO 新テーブル名;
•練習:下記を実行してみましょう
- create table person(id, name);
- alter table person rename to myfriend;
.tablesでテーブル名が
変更されたことを確認
12
カラムの追加(1)
•ALTER TABLE文を使う
- ALTER TABLE テーブル名 ADD COLUMN カラム名[ デ
ータ型];
- 追加したカラムはテーブルの最後に追加される
- 追加するカラムは次の条件を満たす必要がある
• PRIMARY KEY や UNIQUE 制約は設定できない
• DEFAULT 制約を設定する時は、CURRENT_TIME/CURRENT_DATE/
CURRENT_TIMESTAMPは指定できない
• NOT NULL 制約を設定する時は、NULL以外のデフォルト値の設定が 
必要
13
カラムの追加(2)
•練習:下記を実行してみましょう
- .schema myfriend
- alter table myfriend add column address text;
- .schema myfriend
.schema myfriendで
カラムが追加されたことを確認
14
テーブルの削除
•DROP TABLE文を使う
- DROP TABLE テーブル名;
•練習:下記を実行してみましょう
- .tables
- drop table myfriend;
- .tables
.tablesでテーブルが削除
されたことを確認
15
制約の指定
•PRIMARY KEY制約
- INTEGER PRIMARY KEYの設定
- AUTOINCREMENTの設定
•NOT NULL制約
•UNIQUE制約
•DEFAULT制約
•CHECK制約
16
PRIMARY KEY制約(1)
•カラムが主キーであることを示す
- 主キーが1つの場合:              
CREATE TABLE テーブル名(カラム名 PRIMARY KEY, ・・・);
- 複数で主キーの場合:              
CREATE TABLE テーブル名(カラム名1, カラム名2, ・・・, 
PRIMARY KEY(カラム名1, カラム名2, ・・・) );
•例:
- create table users(id int primary key, name text);
17
PRIMARY KEY制約(2)
•実行例
primary keyに指定したカラム「id」は重複が許されないため、
既に入力済みの1を入力しようとするとエラーが表示される。
18
INTEGER PRIMARY KEYの設定
•カラムに自動的に連番で数値が格納される
- 自動的に格納される値は、対象のカラムに格納されて
いる最大の値に1を加えた値となる
• カラムのデータ型は「INT」が含まれる場合、全て
INTEGER型となる
• 連番が自動的に割り振られるのは「INTEGER
PRIMARY KEY」と記述した場合のみ
19
INTEGER PRIMARY KEY実行例
•idカラムに自動で連番が格納されている
テーブルを作成
データを格納
データを表示
20
INTEGER PRIMARY KEYの値
•データの入力時に値を省略せずに入力も可能
- 例:insert into myfriend values(10, ‘Inoue’);     
※この次に「id」の値を省略してinsertすると、「id」は「11」となる
•値の再割り当て
- 自動的に数値が設定される際、以前に格納されていた
値(データは削除済)と同じ値が割り当てられること
がある
- 一度使われた値が二度使われないためには、
「AUTOINCREMENT」を使用する
21
AUTOINCREMENTの設定
•カラムに自動的に連番で数値が格納される
- 自動的に格納される値は、対象のカラムに今までに格
納されたことのある最大の値に1が加えられた値となる
•AUTOINCREMETNを設定する書式
- CREATE TABLE テーブル名(カラム名 INTEGER PRIMARY
KEY AUTOINCREMENT, ...);
22
NOT NULL制約
•カラムのNULL値を禁止したい場合に使う
•書式
- CREATE TABLE テーブル名(カラム名 NOT NULL, ...);
•実行例
「name」にnull値を入力→エラー
「address」にnull値を入力→OK
「name」の値を省略→エラー
23
UNIQUE制約
•カラムの値の重複を禁止したい場合に使う
•書式
- CREATE TABLE テーブル名(カラム名 UNIQUE, ...);
•UNIQUE制約が設定されていてもNULL値だけは
重複が可能
- NULL値を避けたい場合は、同時にNOT NULLを設定
24
複数カラムのUNIQUE制約
•書式
- CREATE TABLE テーブル名(カラム名1, カラム名2, ... , 
UNIQUE(カラム名1, カラム名2, ...));
•それぞれのカラムは重複しても良いが、指定した
複数カラムの組み合わせの重複が禁止される
•実行例
25
DEFAULT制約
•値を省略した際にデフォルトで格納される値を
指定したい場合に使う
•書式
- CREATE TABLE テーブル名(カラム名 DEFAULT 値, ...);
- 値にはNULL、数値、文字列が指定できる
•例:「name」と「price」にデフォルト値を指定
- create table product(id integer, name text default 'no
name', price integer default 0);
26
CHECK制約
•カラムに格納する値が条件に一致しているか 
判定したい場合に使う
•書式
- CREATE TABLE テーブル名(カラム名 CHECK(条件式), ...);
•例:カラム「old」は負の値はNGとする
- create table user(id integer, name text, old integer
check(old > 0));
27
Work:小テストテーブルの作成
•下記の2つのテーブルを作成してみましょう
「sales」表
「sales_detail」表
フィールド名 データ型 制約
id INT PRIMARY KEY, NOT NULL, AUTO_INCREMENT
date TEXT NOT NULL
country INT
フィールド名 データ型 制約
report_id INT PRIMARY KEY, NOT NULL
item_id INT PRIMARY KEY, NOT NULL
count INT NOT NULL
28
参考文献
•SQLite入門 http://www.dbonline.jp/sqlite/
29

More Related Content

PDF
達人に学ぶSQL徹底指南書 第2版勉強会 #0
PDF
今さら聞けない!Active Directoryドメインサービス入門
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
PPT
Цифровой киоск выпусков газет ИД "КП" для планшетных устройств: первый шаг на...
達人に学ぶSQL徹底指南書 第2版勉強会 #0
今さら聞けない!Active Directoryドメインサービス入門
Śniadanie Daje Moc
Śniadanie Daje Moc
Śniadanie Daje Moc
Śniadanie Daje Moc
Śniadanie Daje Moc
Цифровой киоск выпусков газет ИД "КП" для планшетных устройств: первый шаг на...

Viewers also liked (12)

PPT
Presentation
PPT
Śniadanie Daje Moc
PDF
Proverbios
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
PDF
Raçadores para corte 2009 Tabapua
PPT
Śniadanie Daje Moc
PDF
[2012 체인지온] 농사가 진화한다 박호진
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
PPTX
diapositivas de ontologia-Narenn alvarado
PPT
Hobbim az olvasás
Presentation
Śniadanie Daje Moc
Proverbios
Śniadanie Daje Moc
Śniadanie Daje Moc
Raçadores para corte 2009 Tabapua
Śniadanie Daje Moc
[2012 체인지온] 농사가 진화한다 박호진
Śniadanie Daje Moc
Śniadanie Daje Moc
diapositivas de ontologia-Narenn alvarado
Hobbim az olvasás
Ad

Similar to データベース技術 7(Database 7) (20)

PDF
データベース技術 11(Database 11)
PDF
データベース技術 10(Database 10)
PDF
データベース技術 8(Database_8)
PDF
データベース技術 14(Database 14)
PDF
データベース技術 1(Database_1)
PPTX
千葉大学情報検索演習2018 データベースとは何か(事前学習教材)
PDF
リレーショナルデータベースとの上手な付き合い方 long version
PDF
データベース技術 3(Database_3)
PDF
データベース01 - データベースとは
PDF
データベース技術 2(Database_2)
PDF
FMDBの利用方法
PDF
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
PDF
データベース入門1
PDF
20200629 データベース基礎~データベースの扱いとデータ設計~
PPTX
Webアプリケーション入門(3)
PPT
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
PDF
データベースシステム論01 - ガイダンス
PDF
Cocoa勉強会#6-SQLiteをCocoaで使う
PPTX
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
PPT
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
データベース技術 11(Database 11)
データベース技術 10(Database 10)
データベース技術 8(Database_8)
データベース技術 14(Database 14)
データベース技術 1(Database_1)
千葉大学情報検索演習2018 データベースとは何か(事前学習教材)
リレーショナルデータベースとの上手な付き合い方 long version
データベース技術 3(Database_3)
データベース01 - データベースとは
データベース技術 2(Database_2)
FMDBの利用方法
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース入門1
20200629 データベース基礎~データベースの扱いとデータ設計~
Webアプリケーション入門(3)
今年こそ始めたい!SQL超入門 セミナー資料 2024年5月22日 富士通クラウドミートアップ
データベースシステム論01 - ガイダンス
Cocoa勉強会#6-SQLiteをCocoaで使う
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
今年こそ始めたい!SQL超入門 MIRACLE Linux Meetup版 0620
Ad

More from Yuka Obu (12)

PDF
データベース技術 13(Database 13)
PDF
データベース技術 12(Database 12)
PDF
データベース技術 9(Database 9)
PDF
データベース技術 6(Database_6)
PDF
データベース技術 5(Database_5)
PDF
データベース技術 4(Database_4)
PDF
ソーシャルメディアワークショップ1
PDF
企業によるソーシャルアカウント運用のために
PDF
Sns 2
PDF
Twitter in Hitachiohta 3
PDF
Twitter in Hitachiohta 2
PDF
Twitter in Hitachiohta 1
データベース技術 13(Database 13)
データベース技術 12(Database 12)
データベース技術 9(Database 9)
データベース技術 6(Database_6)
データベース技術 5(Database_5)
データベース技術 4(Database_4)
ソーシャルメディアワークショップ1
企業によるソーシャルアカウント運用のために
Sns 2
Twitter in Hitachiohta 3
Twitter in Hitachiohta 2
Twitter in Hitachiohta 1

Recently uploaded (10)

PDF
6_「老いることは不幸なこと?」植草学園大学附属高等学校森 珠貴さんinspirehigh.pdf
PDF
9_前田音葉さん:「Yakushima Islandってなんか変じゃない?」.pdf
PDF
3_「本当の『悪者』って何?」鷗友学園女子中学校_福島 雪乃さんinspirehigh.pdf
PDF
外国人が日本のテーブルマナーに驚く理由は?_公文国際学園高等部 角田 恵梨佳さん
PDF
5_「AIと仲良くなるには?」日本大学東北高等学校南梨夢乃さんinspirehigh.pdf
PDF
「なぜ、好きなことにいつかは飽きるの?」大塚莉子 - My Inspire High Award 2024.pdf
PDF
My Inspire High Award 2024(岡田秀幸).pptx.pdf
PDF
8_「世の中の流行はどのようにして生まれるのか」学校法人聖ドミニコ学園竹野はるいpptx.pdf
PPT
日本語test日本語test日本語test日本語test日本語test日本語test.ppt
PDF
7_「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」明治大学付属中野八王子中学校宮本ゆりかさん.pdf
6_「老いることは不幸なこと?」植草学園大学附属高等学校森 珠貴さんinspirehigh.pdf
9_前田音葉さん:「Yakushima Islandってなんか変じゃない?」.pdf
3_「本当の『悪者』って何?」鷗友学園女子中学校_福島 雪乃さんinspirehigh.pdf
外国人が日本のテーブルマナーに驚く理由は?_公文国際学園高等部 角田 恵梨佳さん
5_「AIと仲良くなるには?」日本大学東北高等学校南梨夢乃さんinspirehigh.pdf
「なぜ、好きなことにいつかは飽きるの?」大塚莉子 - My Inspire High Award 2024.pdf
My Inspire High Award 2024(岡田秀幸).pptx.pdf
8_「世の中の流行はどのようにして生まれるのか」学校法人聖ドミニコ学園竹野はるいpptx.pdf
日本語test日本語test日本語test日本語test日本語test日本語test.ppt
7_「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」明治大学付属中野八王子中学校宮本ゆりかさん.pdf

データベース技術 7(Database 7)