1
si-2. テーブル定義,
データ型,主キー,SQL
問い合わせ
金子邦彦
SQL 入門演習(SQLite3
利用)(全3回)
SQL の入門者へ
https://www.kkaneko.jp/de/sqlite3/index.html
第2回のアウトライン
テーブル
テーブル定義
データ型
主キー
NULL
テーブルへのレコードの挿入
SQL 問い合わせ
2
テーブルの例
3
テーブル名: products
id
name
price
1
orange
50
2
apple
100
3
melon
500
テーブル定義
4
テーブル定義では,
テーブル名
属性属性名
属性データ型
などを設定して,テーブル定義する
CREATE TABLE products (
id INTEGER PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
price REAL);
テーブル名: products
id name price
1
orange
50
2
apple
100
3
melon
500
属性のデータ型
5
テーブル
の本体
属性名
それぞれの属性データ型
整数 長いテキスト 浮動小数点数
SQL のキーワード
INTEGER
TEXT
REAL
id name price
1
50
2
100
3
500
属性のデータ型
6
Access
の主なデー
タ型
SQL のキーワー
NULL
空値
短いテキスト
CHAR
文字列
長いテキスト
TEXT
文字列
数値
INTEGER,
REAL
整数や浮動小数
点数
日付/時刻
DATETIME
日付や時刻など
Yes
No
BIT, BOOL
ブール値
整数 INTEGER, 浮動小数点数(小数付きの数)
REAL
短いテキスト半角 255文字分までが目安
それ以上になる可能性があるときは長いテキスト
id
name
price
1
orange
50
2
apple
100
3
melon
500
主キー
7
通し番号,学生番号のように,1つのテーブルの中で
同じ値が2回以上出ないと前もって分かっている属性
主キー
リレーショナルデータベースの NULL
NULL は「ヌル」あるいは「ナル」と読む
リレーショナルデータベース NULL は,次の場
合に使う
1. 未定,未知,不明(分からない場合)
2. 非存在(もともと存在しない場合)
8
テーブル定義と一貫性制約
9
SQL プログラム】
id:
主キー (PRIMARY KEY)
NULL になることはない (NOT NULL)
name:
NULL になることはない (NOT NULL)
テーブルの制約について記述.
データベースの一貫性を維持するのに役立つ.
CREATE TABLE products (
id INTEGER PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
price REAL);
テーブル定義 products
10
SQL プログラム】
CREATE TABLE products (
id INTEGER PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
price REAL);
新しいレコードの挿入
11
テーブル名
値の並び.半角のカンマ「,」で区切る
文字列は半角の「'」で囲む
INSERT INTO products VALUES(4, 'apple', 150);
id name price
1
orange
50
2
apple
100
3
melon
500
id name price
1
orange
50
2
apple
100
3
melon
500
4
apple
150
テーブル名: products
問い合わせ(クエリ)の仕組み
12
データの種類ごとに分かれ
た,たくさんのテーブル
問い合わせ
(クエリ)
コマンド
問い合わせ(クエリ)
結果は,テーブル形式の
データ
リレーショナル
データベースシステム
INSERT INTO products VALUES( 1, 'orange', 50 );
INSERT INTO products VALUES( 2, 'apple', 100 );
INSERT INTO products VALUES( 3, 'melon', 500 );
SELECT * FROM products;
レコードの挿入,SQL 問い合わせ
13
SQL プログラム
SELECT * FROM products WHERE price > 90;
SQL 問い合わせ
14
SQL プログラム
SQL を用いたテーブルの削除
15
drop table products;
SQL プログラム
テーブル products の削除
ここで使用した SQL
テーブル定義
CREATE TABLE ...
問い合わせ
SELECT ... FROM ...
SELECT ... FROM ... WHERE ...
レコードの挿入
INSERT INTO ...
16