LDBC 支持的语法
( 1 ) Insert 语句
插入单行数据: INSERT INTO tableName [ (columnName [,...] ) ] VALUES ( value [,...] )
比如: INSERT INTO HELLO_WORLD VALUES(1)
使用结果集插入数据: INSERT INTO tableName [ (columnName [,...] ) ] SELECT ...
比如: INSERT INTO HELLO_WORLD(ID, NAME) SELECT ID, NAME FROM OLD_TABLE
( 2 ) UPDATE 语句
UPDATE tableName
SET columnName=expression [,...]
[ WHERE condition ]
比如: UPDATE HELLO_WORLD SET ID=ID+1
( 3 ) DELETE 语句
DELETE FROM tableName
[ WHERE condition ]
比如: DELETE FROM HELLO_WORLD
( 4 ) SELECT 语句
SELECT [DISTINCT] { * | selectList }
FROM tableList
[ WHERE condition ]
[ GROUP BY columnName [,...] ]
[ HAVING condition ]
[ ORDER BY columnName [{ASC|DESC}] [,...] ]
比如: SELECT ID, COUNT(*) FROM TEST GROUP BY ID HAVING COUNT(*)>1
( 5 ) CREATE TABLE 语句
CREATE TABLE [IF NOT EXISTS] tableName (
columnDefinition [,...]
[,PRIMARY KEY(column [,...])]
[,FOREIGN KEY(column [,...]) REFERENCES tableName ( column [,...])]
)
其中列定义 columnDefinition 的语法为: columnName dataType [[NOT] NULL] [PRIMARY KEY] [DEFAULT value]
dataType 为可取的数据类型,目前支持下面的数据类型: INT 、 INT AUTOINCREMENT 、 VARCHAR(size) 、 DECIMAL(precision,scale) 、 DATETIME 、 BLOB 、 CLOB 。
比如: CREATE TABLE ORDERLINE(ORDER_ID INT,LINE INT,TEXT VARCHAR(255),AMOUNT DECIMAL(10,2),PRIMARY KEY(ORDER_ID,LINE))
( 6 ) CREATE INDEX 语句
CREATE INDEX indexName ON tableName ( columnName [,...] )
比如: CREATE INDEX IDXID ON HELLO_WORLD (ID)
( 7 ) DROP TABLE 语句
DROP TABLE [IF EXISTS] tableName
比如: DROP TABLE HELLO_WORLD
( 8 ) DROP INDEX 语句
DROP INDEX indexName ON tableName
比如: DROP INDEX IDXID ON HELLO_WORLD
( 9 ) ALTER TABLE 语句
ALTER TABLE tableName DROP CONSTRAINT constraintName
比如: ALTER TABLE CHILD DROP CONSTRAINT FK_1
ALTER TABLE tableName RENAME TO newTableName
比如: ALTER TABLE TEST RENAME TO TESTING
ALTER TABLE tableName ADD COLUMN columnName dataType [[NOT] NULL] [DEFAULT value]
比如: ALTER TABLE TEST ADD COLUMN Y INT NOT NULL
( 10 ) COMMIT 、 ROLLBACK 、 SET AUTOCOMMIT [ TRUE | FALSE ]
LDBC 支持的函数:
函数 |
函数描述 |
举例 |
CAST(value AS type) |
类型转换 |
CAST('5' AS INT) = 5 |
LENGTH(text) |
取得字符串长度 |
LENGTH('Hello') = 5 |
MOD(value,dividend) |
取余运算 |
MOD(10, 3) = 1 |
CONCAT(s1,s2) |
字符串连接 |
CONCAT('A', 'B') = 'AB' |
LOWER(s) |
字符串转化为小写 |
LOWER('Hello') = 'hello' |
UPPER(s) |
字符串转化为大写 |
UPPER('Hello') = 'HELLO' |
NOW() |
得到当前时间戳 |
NOW() = '2002-08-16' |
LDBC 支持的聚集函数: Count 、 Min 、 Max 、 Sum 、 Avg 。
LDBC 支持的数据库
数据库 |
状态 |
说明 |
Oracle 9.2.0 |
可用 |
Varchar null 支持有问题 |
Oracle 8.1.7 |
可用 |
不支持 outer join , Blob 类型有限制 |
Microsoft SQL Server 2000 |
可用 |
|
MySQL |
可用 |
Varchar 支持有问题, FOREIGN KEY 支持有问题 INSERT INTO .. SELECT .. 语句支持有问题 |
IBM DB2 |
可用 |
|
PostgreSQL |
可用 |
Blob 类型有限制 |
InterBase |
未测试 |
|
Firebird |
未测试 |
|
PointBase |
可用 |
|
HSQLDB |
可用 |
事务不隔离, HAVING 子句不支持 |