16. SQLライクにデータベースを操作可能
スキーマ定義(DDL)
CREATE TABLE Item (
id AS INTEGER,
description AS INTEGER,
deadline as DATE_TIME,
done as BOOLEAN,
PRIMARY KEY ON ('id')
);
CREATE INDEX idxDeadLine ON
Item.deadline DESC;
schemaBuilder.createTable('Item').
addColumn('id', lf.Type.INTEGER).
addColumn('description', lf.Type.STRING).
addColumn('deadline', lf.Type.DATE_TIME).
addColumn('done', lf.Type.BOOLEAN).
addPrimaryKey(['id']).
addIndex('idxDeadline', ['deadline'],
false, lf.Order.DESC);
17. SQLライクにデータベースを操作可能
データ操作(DML)
//INSERT OR REPLACE
INSERT OR REPLACE INTO Item
VALUES row;
!
//SELECT
SELECT * FROM Item WHERE
Item.done = false;
!
//DELETE
DELETE FROM infoCard WHERE
lang = 'es';
//INSERT OR REPLACE
db.insertOrReplace().into(item).values([row]).
exec();
!
!
//SELECT
db.select().from(item).where(item.done.eq(fals
e)).exec();
!
//DELETE
db.delete().from(infoCard).where(infoCard.lang
.eq('es')).exec();
18. Lovefieldのその他の機能
テーブル結合/グループ化
INNER JOIN innerJoin()
LEFT OUTRER JOIN leftOuterJoin()
GROUP BY groupBy()
検索索条件
= eq
<> neq
< lt
<= lte
> gt
>= gte
SIMILAR match(regex)
BETWEEN between
IN in
IS NULL isNull
IS NOT NULL isNotNull
AND lf.op.and
OR lf.op.or
NOT lf.op.not
フィルタ/ソート
LIMIT limit()
SKIP skip()
ORDER BY orderBy()
集合関数
AVG lf.fn.avg
COUNT lf.fn.count
DISTINCT lf.fn.distinct
MAX lf.fn.max
MIN lf.fn.min
STDDEV lf.fn.stddev
SUM lf.fn.sum
制約(実装中)
FOREIGN KEY addForeignKey()