O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

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

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 29 Anúncio

Mais Conteúdo rRelacionado

Semelhante a データベース技術 7(Database 7) (20)

Anúncio

Mais de Yuka Obu (19)

Mais recentes (20)

Anúncio

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

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

×