SQLいろいろ

簡単なO/Rマッパーを作りたいので,SQL 文について自分なりにまとめてみる。

SQL には,

  1. データ定義言語(CREATE, DELETE, ALTER)
  2. データ操作言語(SELECT, INSERT, UPDATE, DELETE)
  3. データ制御言語(GRANT, REVOKE, etc...)

と3つの種類に分けられるらしい。

データ定義,データ操作のみ実装すればとりあえずよさそう。

文法

いろいろ省いてます。

CREATE DATABASE
CREATE DATABASE db_name
DROP DATABASE
DROP DATABASE db_name
CREATE TABLE
CREATE TABLE table_name (
  column_name data_type
    [ ( NULL | NOT NULL ) ]
    [ UNIQUE ]
    [ DEFAULT default_value ]
    [ AUTO_INCREMENT ]
    [ [PRIMARY] KEY ]
  {, ... }
);

data_type:
  INTEGER[(length)] [UNSIGNED] [ZEROFILL]
| VARCHAR[(length)]
| TEXT
| TIMESTAMP
| BOOL
DROP TABLE
DROP TABLE table_name {, table_name }
ALTER

SELECT
SELECT column_name {, column_name } FROM table_name {, table_name }
[ WHERE where_condition ]
[ LIMIT limit [, OFFSET offset] ]
[ GROUP BY column_name {, column_name } ]
[ ORDER BY column_name [ ASC | DESC ] {, column_name [ ASC | DESC ] } ]

GROUP BY ワカンネ。

INSERT
INSERT INTO table_name
[ (column_name { ,column_name } ) ]
VALUES ( VALUE_A1 {, VALUE_A2 } ) {, ( VALUE_B1 {, VALUE_B2 } ) } ;
UPDATE
UPDATE table_name SET column_name = value {, ... } [ WHERE condition ];
DELETE
DELETE FROM table_name { WHERE condition }