| INSERT |
テーブルに新しい行の挿入INSERT [OR 衝突時アルゴリズム] INTO [データベース名 .] テーブル名 [(カラムの並び)] VALUES(値の並び) | INSERT [OR 衝突時アルゴリズム] INTO [データベース名 .] テーブル名 [(カラムの並び)] SELECT文 |
| サンプル |
INSERT INTO account_tbl VALUES(1,1,'takahshi','yujiro@rakuto.net','abcd123'); SQLiteにはalterが無いので以下のステップで代用します。 メールマガジンの受信フラグを追加します。 CREATE TEMPORARY TABLE account_tbl_alter ( id integer, flag integer, name varchar(64), email varchar(128), password varchar(32), magazine integer ); INSERT INTO account_tbl_alter SELECT *,1 AS magazine FROM account_tbl; DROP TABLE account_tbl; CREATE TABLE account_tbl ( id integer NOT NULL, flag integer DEFAULT 1, name varchar(64) NOT NULL, email varchar(128) UNIQUE, password varchar(32), magazine integer DEFAULT 1, CONSTRAINT account_pky PRIMARY KEY (id) ); INSERT INTO account_tbl SELECT * FROM account_tbl_alter; DROP TABLE account_tbl_alter; |
| UPDATE |
テーブルの行や項目の値を更新UPDATE [ OR 衝突時アルゴリズム ] [データベース名 .] テーブル名 SET 代入式 [, 代入式]* [WHERE 評価式] 代入式 カラム名 = 評価式 |
| サンプル |
UPDATE account_tbl SET magazine=0 WHERE email = 'yujiro@rakuto.net'; |
| DELETE |
テーブルから行を削除DELETE FROM [データベース名 .] テーブル名 [WHERE 評価式] |
| サンプル |
<span style="color:blue">DELETE FROM account_tbl WHERE flag = 0; |
| SELECT |
テーブルやビューからの行の値を取得SELECT [ALL | DISTINCT] 結果セット [FROM テーブル並び] [WHERE 評価式] [GROUP BY 評価式の並び] [HAVING 評価式] [合成演算子 SELECT句]* [ORDER BY ソート評価式の並び] [LIMIT 整数 [( OFFSET | , ) 整数]] -- 結果セット -- 結果のカラム [, 結果のカラム]* -- 結果のカラム -- * | テーブル名 . * | 評価式 [ [AS] 文字列 ] -- テーブル並び -- テーブル名 [結合演算子 テーブル名 結合時の引数]* -- テーブル名 -- テーブル名 [AS 別名] | ( SELECT句 ) [AS 別名] -- 結合演算子 -- , | [NATURAL] [LEFT | RIGHT | FULL] [OUTER | INNER | CROSS] JOIN -- 結合時の引数 -- [ON 評価式] [USING ( IDの並び )] -- ソート評価式の並び -- 評価式 [ソート順] [, 評価式 [ソート順]]* -- ソート順 -- ASC | DESC -- 合成演算子 -- UNION | UNION ALL | INTERSECT | EXCEPT |
| サンプル |
最も簡単な表示クエリです。SELECT * FROM sqlite_master; SELECT sqlite_version(*); 都道府県テーブルを名前の順にソートします。 SELECT * FROM prefecture_tbl ORDER BY name; 結果の10行目から15行分を表示します。 SELECT * FROM prefecture_tbl LIMIT 15 OFFSET 10; 結果の結合 SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master; アカウント管理テーブルとユーザー情報 テーブルを連結させます。 ユーザー情報と都道府県テーブルを外部 連結させます。 都道府県情報はユーザー情報に登録され ていない場合があります。 SELECT usr.id, usr.name, pre.name as prefecture FROM account_tbl AS acc, user_tbl AS usr LEFT JOIN prefecture_tbl AS pre ON usr.prefecture = pre.id WHERE acc.id = usr.account AND acc.flag = 1; |
