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