32 lines
1.4 KiB
Plaintext
32 lines
1.4 KiB
Plaintext
Select A, B, C From X Where A = '1' AND B <> 2
|
|
Insert Into X Set A = '1', B = 2, C = 'C'
|
|
Update X Set A = '2' Where A = '1'
|
|
Delete From X Where A = '1'
|
|
Create Table X (A String(50) Index, B Int, C String(5))
|
|
Drop Table X
|
|
|
|
StatementList = StatementList, Statement | Statement ;
|
|
Statement = SelectStmt | InsertStmt | UpdateStmt | DeleteStmt | CreateStmt | DropStmt ';' ;
|
|
|
|
SelectStmt = 'Select', FieldList, 'From', Identifier, ['Where', ComparisonGroup] ;
|
|
InsertStmt = 'Insert Into', Identifier, 'Set', AssignmentList ;
|
|
UpdateStmt = 'Update', Identifier, 'Set', AssignmentList, 'Where', ComparisonGroup ;
|
|
DeleteStmt = 'Delete From', Identifier, 'Where', ComparisonGroup ;
|
|
CreateStmt = 'Create Table', Identifier, '(', ColumnSpecList, ')' ;
|
|
DropStmt = 'Drop Table', Identifier ;
|
|
|
|
ColumnSpecList = ColumnSpec | ColumnSpecList, ',', ColumnSpec ;
|
|
ColumnSpec = Identifier, ColumnType | Identifier, ColumnType, ColumnOption ;
|
|
ColumnType = 'String', '(', integer, ')' | 'Int' | 'Integer' ;
|
|
ColumnOption = 'Index' ;
|
|
|
|
FieldList = Identifier | FieldList, ',', Identifier ;
|
|
AssignmentList = Assignment | AssignmentList, ',', Assignment ;
|
|
Assignment = Identifier, '=', Value ;
|
|
|
|
ComparisonGroup = Comparison | ComparisonList, 'AND', Comparison
|
|
Comparison = Identifier, Comparator, Value;
|
|
Comparator = '=' | '<>';
|
|
|
|
Identifier = { letter, '_' } , { letter | digit | '_' } ;
|
|
Value = "'", string, "'" | '"', string, '"' | integer ; |