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などの場合、削除はもっと面倒

リポジトリ共有時のトラブル解決

リポジトリ共有時のトラブル解決
#22 共有時のトラブルを解決する
http://dotinstall.com/lessons/basic_git/6722
を参考に、
共有ゆえに起こるトラブルの解決方法の学習
これは共有であるために起きるトラブルとして
ありえるのが
ユーザBが編集し commit までしたことを知らず
ユーザAが同じ場所を編集し
このためコンフリクトが発生して
エラーがでる
というもの
とりあえず、実践したほうがわかりやすかったので
cd ~/myweb2/

ディレクトリを移動して
vim index.html
で最終行へ
share test
と記述して保存
git add.
git commit -m “share test added”
git push origin master
で変更した内容を共有リポジトリに送ります
ここまでは問題なしです
次に、ユーザA体験をします
cd ~/myweb
で移動して
vim index.html

share start !
と追記して保存します
そして、今回は git add と git commit を同時に行います
git commit -am “shared start”
というように
git commit のオプションに
-am
をつけるだけです
実際に git commit までできているか確認するには
git log
とすれば
commit 2a08e46f36ed7d10a431adc6fdf227548212902c
Author: snowpool
Date: Fri May 31 21:33:01 2013 +0900
shared start
というように、無事に commit されているのが
確認できます
ここまでは問題ないのですが
ここから共有リポジトリに送ろうとすると
エラーで止まります
git push origin master
を実行すると
To /home/snowpool/ourweb.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘/home/snowpool/ourweb.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. ‘git pull’)
hint: before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.
となり、エラーがおきて先にすすめません
hint: its remote counterpart. Merge the remote changes (e.g. ‘git pull’)
とあるように、
先に git pull するように促されます
この場合、
git push origin master
を実行します
修正箇所が異なっている分には問題があまりないのですが
修正箇所が同じ場合コンフリクトが発生します
このため、修正することが必要になります
今回、 vim index.html でファイルを開くと
以前、コンフリクトの修正をしたときのように
line 1st
line2
line3
line end
<<<<<<< HEAD share start! ======= share test >>>>>>> c11d37315a0378907809998e842de7b1a59ffbde
となっているので、
line 1st
line2
line3
line end
share start!
というように修正し、保存します
あとは、インデックス化とコミットを両方一気に行うので
git commit -am “conflict fixed”
そして再び
git push origin master
を実行すると、無事に実行できます
このように、共有リポジトリの場合
git push
git pull
を多用することになりそうです
あと、Git サーバー – プロトコルがあって
Local
SSH
Git
HTTP/S
といったプロトコルが使えます
それぞれ利点、欠点がありますので
用途により使い分けすることになると思います
プロトコルに関しては
Git サーバー – プロトコル
に詳細がかかれています

git のリポジトリ内容の共有

git のリポジトリ内容の共有
#21 リポジトリの内容を共有してみよう
http://dotinstall.com/lessons/basic_git/6721
をもとに、
複数ユーザでの内容の共有について学習
今回は、共有リポジトリの内容を
myweb2
というディレクトリの中に作成する
これには
git clone
を使う
git clone ~/ourweb.git/ myweb2
と実行すると
Cloning into ‘myweb2’…
done.
となり、
新しく myweb2 というディレクトリが作成され
その中にリポジトリも作成されている
書式としては
git clone 共有リポジトリのURL 新しいディレクトリ
というかんじになる
内容ができているか、確認するには
cd myweb2/
git log
で確認できる
そして、今度は、myweb2 の中でファイルを編集して
それを 共有リポジトリに追加する
vim index.html
でファイルを開いて
line end
と追記して保存
git add .
でインデックス化
git commit -m “line end added”
でリポジトリ登録
git clone したときに、リモート情報も
引き継ぎできているので
git push で共有リポジトリに追加することができる
今回なら
git push origin master
とすれば、URLの指定をせずに、そのまま送ることができる
これは、リモート情報も引き継ぎしているため
とりあえず、ユーザB役での編集などはできたので
今度は
ユーザA役の myweb ディレクトリで操作する
Linux なら端末を
Ctrl + Alt + t で開けるので
新しい端末を開いて
cd myweb/
で移動
共有リポジトリの内容をマージするには
git pull
を使う
でも、違いを理解するために
まずは git log で内容の確認
commit 0180f5a3844aa7df2cb4c231f03df5e61f36efe9
Author: snowpool
Date: Thu May 30 20:51:12 2013 +0900
line3 added
が最新の内容
確認したら、 git pull で内容を共有リポジトリから引っ張ってくる
今回なら
git pull origin master
とする
これで、git log で内容を確認すると
commit b3c348a6f9fa5416831020ad5649fbdf09050acc
Author: snowpool
Date: Fri May 31 20:57:41 2013 +0900
line end added
とでているので、
ユーザB役の myweb2 ディレクトリで編集したものも
しっかりと反映されていることが確認できる
これらのことから、
git clone で共有リポジトリを作成
git push で編集した内容をアップする
git pull で編集された内容をダウンロードして編集する
というような流れで複数の人による共同開発が可能となる
もっとも、複数人数での開発以外にも
git サーバーを構築して
自分の複数マシンでソースを共有することで
外出先でもソースの編集を容易にするという使い方もできるので
git 関連をやっておくと便利だと思う

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
を参考にさせていただきました

git の共有リポジトリの設定

git の共有リポジトリの設定
#19 はじめての共同作業
http://dotinstall.com/lessons/basic_git/6719
を参考に
git での共有リポジトリを作成
これを使い、後々複数人で共同作業できるようにする予定
これを使えば、他の人とソースを共有して開発ができる
共有リポジトリは、本来ならネットに公開して使うもの

.git と名前を付ける
今回は ourweb.git という名前にする
今回は
ユーザAが myweb ディレクトリ
ユーザBが myweb2 ディレクトリで作成している状態
まず、共有ディレクトリにするために
mkdir ourweb.git

ourweb.git というディレクトリを作成する
cd ourweb.git
でディレクトリを移動して
共有リポジトリを作成する
共有リポジトリを作成するには
git init –bare
とする
–bare オプションをつけることで
これにより管理ファイルだけの管理となり
ここでは commit などをしないようになる
とりあえず、共有の設定はできたので
さっきまで作業していたディレクトリへ移動する
cd ../myweb
これでユーザA役のディレクトリに移動したので
#20 共有リポジトリにpushしてみよう
http://dotinstall.com/lessons/basic_git/6720
を参考にすすめていく
まずは、共有のリポジトリを登録するので
別のリポジトリを登録する
git remote
を使う
追加には add をつけるので
git remote add origin ~/ourweb.git
となる
書式としては
git remote add origin gitのパス
となる
git のパスは http:// というようなURLでもOK
git config -l
で状態確認できるので
ここで remote.origin のURLの確認もできます
core.editor=vim
alias.co=checkout
alias.st=status
alias.br=branch
alias.ci=commit
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=/home/snowpool/ourweb.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
が実行結果で
remote.origin.url=/home/snowpool/ourweb.git
がURLとなります
もし、削除したいのなら
git remote rm origin gitのパス
で削除も可能
ここまでで設定ができたので
master ブランチの内容を
共有リポジトリにいれる
これは
git push origin master
とすればできる
成功すると
Counting objects: 20, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (20/20), 1.76 KiB, done.
Total 20 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.
To /home/snowpool/ourweb.git
* [new branch] master -> master
というメッセージがでてくる
転送の書式は
git push origin ブランチ名

git で短縮名のエイリアスを使う

git で短縮名のエイリアスを使う
#18 エイリアスを使ってみよう
http://dotinstall.com/lessons/basic_git/6718
を参考に
エイリアスについて学習
これは git のコマンドを短縮名でつかうというもの
例えば
git checkout
これを短縮したいなら
git config –global alias.co checkout
とする
これと同様に
status
branch
commit
これらも短縮で使えるように登録しておく
git config –global alias.st status
git config –global alias.br branch
git config –global alias.ci commit
こうしておくことで
bit branch を
git br
で行うことができる
Linux の場合、Tab キーによる補完機能を使えば
ある程度は楽できるけど
このエイリアスを設定することでよりやりやすくできる
設定したエイリアスについては
git config -l
とすることで確認が可能
私の環境の場合だと
core.editor=vim
alias.co=checkout
alias.st=status
alias.br=branch
alias.ci=commit
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
となっています

git でのタグ

git でのタグ
git をわかりやすくするためのタグについて学習
参考サイトは
#17 タグを使ってみよう
http://dotinstall.com/lessons/basic_git/6717
git のタグは
git commit したときのID
commit cce3862b9c30a544c772e675ccd5f6a98e345022
というような数字の羅列ではわかりにくいので
これをわかりやすくするために
タグを使う
まずは、実践したほうがわかりやすいので
vim index.html
で最後に
line3 を追記して保存
そして
git add .
git commit -m “line3 added”
でリポジトリ作成
これで git log で確認すると
commit 0180f5a3844aa7df2cb4c231f03df5e61f36efe9
Author: snowpool
Date: Thu May 30 20:51:12 2013 +0900
line3 added
が追加されているのを確認できる
今回は、まずここへ version 1.0 というタグをつける
直近の commit に対してタグを付けるには
git tag v1.0
というようにする
書式は
git tag タグ名
また
git tag
とすれば、タグの一覧をみることができる
また、タグを付けることで
タグからcommit 内容をみることも可能
git show v1.0
というように
git show タグ名
とすれば
commit 0180f5a3844aa7df2cb4c231f03df5e61f36efe9
Author: snowpool
Date: Thu May 30 20:51:12 2013 +0900
line3 added
diff –git a/index.html b/index.html
index fc3bbf4..705cd1f 100644
— a/index.html
+++ b/index.html
@@ -1,2 +1,3 @@
line 1st
line2
+line3
というように、タグをつけた commit の内容をみることができる
タグ名は git tag で確認できる
git tag タグ名は、直近の commit だけで
もっと前のものにもタグをつけたいのなら
git tag タグ名 commitのID
とする
commit のIDは、全部ではなく
最初から7行ぐらいまででOK
例えば
commit 0180f5a3844aa7df2cb4c231f03df5e61f36efe9
のIDのところに v0.9 としたいのなら
git tag v0.9 0180f5a3844aa7
というようにする
これで、git tag
とすれば
v0.9
v1.0
となる
あとかた追加したタグでも
git show v0.9
とすることで
commit 0180f5a3844aa7df2cb4c231f03df5e61f36efe9
Author: snowpool
Date: Thu May 30 20:51:12 2013 +0900
line3 added
diff –git a/index.html b/index.html
index fc3bbf4..705cd1f 100644
— a/index.html
+++ b/index.html
@@ -1,2 +1,3 @@
line 1st
line2
+line3
というように、問題なく追加できる
また、タグを削除したいときには
git tag -d v0.9
というように
git tag -d タグ名
とすれば消す事ができる
成功すると
Deleted tag ‘v0.9’ (was 0180f5a)
というようなメッセージがでる
消えているか確認するには
git tag
で一覧がでるので、ここからなくなっていれば消去成功