SQLite でテーブル作成のオプションその2

SQLite でテーブル作成のオプションその2
#08 テーブル作成時のオプション (2)
http://dotinstall.com/lessons/basic_sqlite/6408
を参考に、オプションについて学習
今回はチェック機能
入力される値が0以上になるようにチェックするには
カラム名 check(カラム名>0)
というようにする
create table lessons(title,count_lessons check(count_lessons>0));
というようになる
これを
.schema で確認すると
CREATE TABLE lessons(title, count_lessons check(count_lessons>0));
となっていて
count_lessons > 0 というように0以上になるように
設定されているのが確認できる
次に、カラムにインデックスを付ける方法
これにより、検索の高速化ができる
primary key
unique
などもインデックスの役割をもつ
インデックス作成するにいは
create index カラム名 on テーブル名(対象カラム);
となる
今回は
create index age on users(age);
これで、 index ageを作成して
対象は
users テーブルの age というカラム
ということになる
あとは、実行結果を確認するため
.schema
で確認すると
CREATE INDEX age on users(age);
となっているのが確認できる

SQLite テーブル作成時のオプション

SQLite テーブル作成時のオプション
#07 テーブル作成時のオプション (1)
http://dotinstall.com/lessons/basic_sqlite/6407
を参考に
テーブル作成時のオプションについて学習
テーブルのカラムに型を指定したいなら
カラムの後にデータ型を指定する
create table users(name text, email text);
テーブルに自動連番を付けるID役のカラムをいれるには
id integer primary key autoincrement
というように
カラム id に 整数型の integer を指定して
primary key をつけることで主キーになり
さらに
autoincrement を付けることで
自動連番になる
また、名前を入力するカラム name が空なら
エラーにするというようにするには
テーブル作成のときに not null をつける
name text not null
というようになる
これは
name がカラム名
text がTEXT型
not null は空になったらエラー
という意味
あと、Web サービスなどではEメールがログインにつかったりするように重複しないようにするので
こんなときには
unique をつける
これで、被らないようにできる
email text unique
というようになる
email は カラム名
text はTEXT型
unique はユニーク(一意)であるという意味
デフォルト値の設定をしたいときには
default 値
というようにする
age integer default 20
age はカラム名
integer は整数型
default 20 はデフォルト値を20
という意味
ゲームとかで
初期値を設定するのに使える
全部つなげて、テーブルを作成すると
create table users(id integer primary key autoincrement, name text not null, email text unique, age integer default 20);
となる
id integer primary key autoincrement,
で登録ID
name text not null,
でユーザ名
email text unique,
でメールアドレス
age integer default 20
で年齢
という顧客データのようなものが作れる

SQLite のデータ型指定

SQLite のデータ型指定
#06 データ型を指定する
http://dotinstall.com/lessons/basic_sqlite/6406
を参考に学習
SQLite で扱えるデータ型は
NULL
何もはいっていない
INTEGER
整数値
REAL
浮動小数点
TEXT
文字列
BLOB
バイナリデータ(画像とか映像など)
SQLite の特徴として
データ型は指定できるけど必須でないということ
SQLite のデータ型は、データ型を指定しても
そのデータ型であることを確約しないため
間違えると思いもよらぬエラーを引き起こすリスクもある
つまり、TEXT型を指定しても
必ずしもTEXTであるとは限らないということ

SQLite のテーブル変更

SQLite のテーブル変更
#05 テーブルを変更してみよう
http://dotinstall.com/lessons/basic_sqlite/6405
を参考に
テーブル名、カラムの変更を実践
sqlite3 dotinstall.sqlite3
でDB接続
テーブル名の変更には
alter table 今のテーブル名 rename to 新しいテーブル名;
とする
今回は、 users から dotinstall_users にしたいので
alter table users rename to dotinstall_users;
また、カラムの追加を行うには
alter table テーブル名 add column カラム名;
とする
現在の状況をまず
.schema
で確認すると
CREATE TABLE users(name,email);
これに
pwd というカラムを追加したいので
alter table dotinstall_users add column pwd;
とすることで追加できる
これを .shema で確認すると
CREATE TABLE “dotinstall_users”(name,email, pwd);
というように追加されているのが確認できる
注意点としては、
MySQL のように、タイプミスしたときに
簡単にカラムの削除ができないということ
MySQL のときには drop で簡単にできたけど
sqlite の場合はこの方法が使えない
sqlite基礎的なコマンド
http://source.hatenadiary.jp/entry/2013/02/05/134604
を参考にさせていただいたけど
sqliteではカラムのdrop(削除)はできないので
削除したければ、
1. 新しいテーブルを作成
2. トランザクションで必要な部分をエクスポート
というように しないと
削除できない
とのこと
最初に入力するときに
alter table dotinstall_users add colum pwd;
というように
column

colum としたため
カラムに
colum pwd が追加され
CREATE TABLE “dotinstall_users”(name,email, colum pwd);
となっていた
簡単にまぁ削除すればいいかな
と考えていたけど、drop できず検索することになりました

SQLite のテーブル操作

SQLite のテーブル操作
#04 テーブルを操作してみよう
http://dotinstall.com/lessons/basic_sqlite/6404
を参考に
SQLite でのテーブル操作などを学習
テーブル作成は
create をつかう
create table users(name,email);
このあたりは, MySQL とおなじ
create table テーブル名(カラム名, カラム名….);
という構文になる
現在のテーブル一覧をみるときには
.tables
を実行
.exit .tables のように .をつけて始まるコマンドには
;
をつけなくてもOK
.schema を使うと、テーブル構造をみることができる
.schema テーブル名
今回なら
.schema users
これはカラム確認に使う
作成したテーブルの削除には
drop を使う
drop table テーブル名
とする
drop table users;
というように実行
確認には
.tables
で確認する

SQLite のDB操作

SQLite のDB操作
#03 データベースを操作してみよう
http://dotinstall.com/lessons/basic_sqlite/6403
を参考に
軽量なDBのSQLite の操作を実践
Ubuntu に練習用ディレクトリを作成して
そこで実践する
mkdir sqlite
cd sqlite
まずはDBの作成
これは
sqlite3 データベース名.sqlite3
とする
拡張子が .sqlite3 となるようにする
もし、すでに sqliteデータベースがあるなら
そこに接続するし、ないのなら新規作成となる
これは vim でのファイル編集とおなじ
すると、
sqlite>
という状態になるので
.help とすれば
英語のヘルプがでてくる
データベースを抜けるには
.exit
とする
MySQL のときには exit でできたけど
SQLite の場合は .exit となる
ちょっと違うので間違えやすい
一度、SQLite を抜けてから、再度
sqlite3 dotinstall.sqlite3
とすれば、再度DBへ繋がることができる
テーブル作成には
create table users(name);
とする
ただし、実行しても何も成功したなどもメッセージがでてこない
また、端末と同じように上下キーで
実行したコマンドの履歴を出すこともできるし
実行することもできる
SQLite の場合、DBの削除には
作成した SQLite ファイル
今回なら
dotinstall.sqlite3
を削除するだけでOK
同様に、DBのコピーもファイルコピーでOK
という手軽さが特徴
MySQLなどの場合、削除はもっと面倒

SQLite について

SQLite について
SQLiteの公式サイトは
http://www.sqlite.org/
軽量DBでスマホなどで使われる
リファレンスとしては
http://www.sqlite.org/lang.html
が参考になる
インストールされていて
バージョン確認したいときには
sqlite3 -version
とすれば、バージョンがでる
私の場合は
3.7.11
でした
ダウンロード&インストールは
http://www.sqlite.org/download.html
に解説があります
sudo apt-get install sqlite3
でubuntu はインストールできます
インストールについては
UbuntuにSQLite3をインストールして使ってみた。
http://javastring.blog55.fc2.com/blog-entry-48.html
を参考にさせていただきました