SQLを扱う
単一のキーをPRIMARY KEYに設定する
テーブルを作成する際に、主キーにしたいカラム名の直後にPRIMARY KEYと指定する。
create table user(id int primary key, name text);
複数のキーをPRIMARY KEYに設定する
複数のカラムを組み合わせて主キーにする場合(複合主キー)は、単一のキーの場合とは書き方が異なり、テーブル定義の最後にPRIMARY KEY節を追加する。
括弧内に主キーに設定したいカラム名をカンマ区切りで記述します。例えば、idとsubIdを主キーに設定する場合は以下。
create table user(id int, subId int, value text, ..., PRIMARY KEY(id, subId));
テーブルを内部結合する (INNER JOIN)
内部結合は、結合条件に合致するレコードのみを結果として出力する。
SELECT * FROM table_a INNER JOIN table_b ON table_a.id = table_b.id
テーブルを外部結合する (OUTER JOIN)
外部結合は、結合条件に合致しないレコードもNULLとして出力する結合方法。
すべてのデータを一覧として表示したい場合などに使われる。
SELECT * FROM table_a LEFT JOIN table_b ON table_a.id = table_b.id
上記の例は左外部結合(LEFT JOINまたはLEFT OUTER JOIN)。
結合の基準となる左側のテーブル(table_a)のすべてのレコードが結果に含まれ、
右側のテーブル(table_b)に対応するレコードがない場合はNULLが返される。
外部結合には右外部結合(RIGHT JOIN)もありますが、基本的にはLEFT JOINを使用すれば、テーブルの順番を入れ替えることで同じ結果が得られる。
テーブルに新しいカラムを追加する
ALTER TABLE文を使う。
サンプル1: シンプルなALTER文
テーブル名、カラム名、型を適切な値に置き換えて使用します。
alter table テーブル名 add column カラム名 型;
サンプル2: デフォルト値付き
新しいカラムにデフォルト値を設定したい場合は、DEFAULT節を追加します。
alter table テーブル名 add column カラム名 型 default 初期値;
例: userテーブルにageカラムをINT型で追加し、デフォルト値を18に設定する場合
alter table user add column age int default 18;
参考
SQL上でビット演算する
SQLで利用可能なビット演算子は以下。
論理積 (AND)
&を使って、2つの値のビットごとの論理積を計算できる。
-- 1 & 1 -> 1
select 1 & 1;
-- 1 & 0 -> 0
select 1 & 0;
論理和 (OR)
|を使って、2つの値のビットごとの論理和を計算できる。
-- 1 | 1 -> 1
select 1 | 1;
-- 1 | 0 -> 1
select 1 | 0;
-- 0 | 0 -> 0
select 0 | 0;
反転 (NOT)
~を使って、値のすべてのビットを反転する。
-- ~0 -> -1
select ~0;
-- ~1 -> 0
select ~1;
左シフト (LEFT SHIFT)
<<を使って、指定したビット数だけ左にシフトする。
-- 1 << 2 -> 4 (2進数の01が100になる)
select 1 << 2;
右シフト (RIGHT SHIFT)
>>を使って、指定したビット数だけ右にシフトする。
-- 4 >> 1 -> 2 (2進数の100が10になる)
select 4 >> 1;
最終更新: 2025.9.7