概要
SQL を久しぶりに(1年ぶり以上前に授業で軽くやって以来)触ったので(軽くだが)簡単にまとめておく
環境構築(Sqlite3のダウンロード)
sqllite3はc言語で書かれたSQLの環境DBMSらしいです。
https://www.sqlite.org/download.html から自分の環境にあったものをダウンロードする。
僕はMacなので
Precompiled Binaries for Mac OS X (x86)
をダウンロードした。
export PATH=~/Downloads/tmp/install/sqlite-tools-osx-x86-3290000/sqlite3:$PATH
みたいな感じで
パスを通すと、sqlite3と打つだけで使えるようになる。
SQLとは?
関係データベース管理システム (RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)、ドメイン固有言語である。
wikiより
ということである。
要するに、DBを扱うときの標準的な(国際規格が決まっている)DB用の言語である。(という認識でいいと思う)
また、SQLでデータベース(DBMS)に行う処理をクエリと言います。
SQLは基本的には、1つの文で1つの処理が完結するように作られています。
(全てワンライナーと考えると不思議)
また、理由は不明だが、SQLの命令は全て大文字で記述します。
データベースとテーブルの定義
SQLは複数のテーブルを連携して扱うことができます。(例えば、生徒と期末試験の関係のテーブルと、生徒と出席日数の関係のテーブル の2つから、試験の成績と出席日数の関係の表を作るなど)
この、関連した複数のテーブル(表)のまとまりをデータベースと言います。
データベースの操作
作成
CREATE DATABASE を使います.
中身のテーブルはベット作る必要があります。
(スペースが入るのが気持ち悪い。。)
CREATE DATABASE name_db;
削除
DROP DATABASE を使います。
DROP DATABASE name_db;
現在対象とするデータベースの指定
USE
USE name_db
テーブル操作
テーブルの作成
CREATE TABLE
でカラムの内容(それぞれの列の内容(カラム名とデータ型など)、primary keyをどれにするかなどを指定します)を指定します(フィールド定義)。
DESC
(descrive)でテーブルの内容を確認することができます。
新規の行(行データ)挿入
INSERTを使う。ただし、
INSERT table_name SET cullum_name=value
で設定する方法と
INSERT INTO table_name(cullum1,cullum2..) VLAUES(val1,val2..)
行データの更新
UPDATE table_name SET cullum2=val2,... WHERE cullum1=val1
行データの削除
DELETE FROM table_name WHERE cullum1=val1
データの検索
SLECT * FROM table_name WHERE cullum=val1
一部のカラムのみを取ってきたい場合は、欲しいカラムの名前を列挙する
その他
sqlite3での実行方法
sqllite3 DBname
で対話環境に入る。
スクリプトを実行したい場合は
対話環境内で
sqlite> .read script.sql
の形で実行するか
sqlite3のコマンドに直接渡す
sqlite3 test.db < select.sql
などの方法があります。
また、追記します。
参考
https://ja.wikipedia.org/wiki/SQL
https://rfs.jp/sb/sql/s01/03-13.html
https://l-w-i.net/t/sqlite/ext_001.txt