Main program: SQL_Program
SQL syntax:
Count | Terminals: | |
30 | SQL_Comment: /* comment */ or -- comment to end of line | |
3 | SQL_Declare_Definition: An identifier | |
552 | SQL_Field_Definition: An identifier | |
SQL_HexString: hex string | ||
50 | SQL_Identifier: An identifier | |
349,948 | SQL_Identifier_Reference: An identifier | |
10 | SQL_Index_Definition: An identifier | |
29 | SQL_Key_Definition: An identifier | |
SQL_Label_Definition: An identifier | ||
1,779,883 | SQL_Literal: quotes:'`" escape:\ doubled:yes multiline:no | |
1,998,200 | SQL_Number: exponent_chars:Ee suffix_chars:none trailing_period:yes ignore_char:none | |
SQL_Parameter_Definition: An identifier | ||
SQL_Procedure_Definition: An identifier | ||
16 | SQL_Role_Definition: An identifier | |
67 | SQL_Synonym_Definition: An identifier | |
67 | SQL_Table_Definition: An identifier | |
8 | SQL_View_Definition: An identifier | |
Count | Statistics(*) | Tokens: |
4 | all all all | SQL_AdditiveExpression: SQL_Expression ("+"|"-") SQL_Expression |
29 | all | SQL_Builtin: ("FALSE"|"NULL"|"SYSTIMESTAMP"|"TRUE") |
SQL_CastExpression: "CAST" '(' SQL_Expression "AS" SQL_Type ')' | ||
10 | all 50% | SQL_CurrentTimeStamp: "CURRENT_TIMESTAMP" [SQL_CurrentTimeStampFunction] |
5 | all all | | SQL_CurrentTimeStampFunction: '(' ')' |
SQL_DollarVariable: '$' SQL_Number | ||
SQL_InnerSelect: '(' SQL_SelectStatement ')' | ||
SQL_InnerValues: '(' SQL_ValuesStatement ')' | ||
SQL_InnerWith: '(' SQL_WithStatement ')' | ||
6 | all all all | SQL_LogicalAndExpression: SQL_Expression SQL_AndOperator SQL_Expression |
6 | (none | all) | | SQL_AndOperator: ("&&" | "AND") |
SQL_LogicalNotExpression: '!' SQL_Expression | ||
SQL_LogicalOrExpression: SQL_Expression SQL_OrOperator SQL_Expression | ||
| SQL_OrOperator: ("||" | "OR") | ||
SQL_MultiplicativeExpression: SQL_Expression SQL_MultOperator SQL_Expression | ||
| SQL_MultOperator: (("*"|"/"|"%") | "DIV") | ||
SQL_NegativeExpression: ("-"|"+") SQL_Expression | ||
SQL_Parentheses: '(' SQL_Expression* ')' | ||
44 | all all all | SQL_RelationalExpression: SQL_Expression SQL_RelationalOperator SQL_Expression |
44 | (7% | 93%) | | SQL_RelationalOperator: (("LIKE"|"IN"|"IS") | ("="|"!="|"<"|">"|"<="|">=")) |
2 | all | SQL_Star: '*' |
154 | all | SQL_VariableExpression: SQL_Variable |
16 | all all 2.64(69%) all | SQL_BuiltinFunction: SQL_FunctionName '(' [SQL_FunctionArg]* ')' |
20 | (5% | 35% | 60%) | | SQL_FunctionArg: (SQL_FunctionColonParam | SQL_FunctionNamedArg | SQL_Expression) |
1 | all all | | | SQL_FunctionColonParam: ':' SQL_Expression |
7 | all all all | | | SQL_FunctionNamedArg: SQL_Identifier_Reference "=>" SQL_Expression |
16 | (6% | 19% | 13% | 6% | 56%) | | SQL_FunctionName: (SQL_FunctionJOB | SQL_FunctionLOB | SQL_FunctionSCHEDULER | SQL_Variable | ("COALESCE"|"COUNT"|"CURRENT_TIMESTAMP"|"MIN"|"RUN_METRIC"|"SYS_EXTRACT_UTC"|"SYS_GUID")) |
1 | all all all | | | SQL_FunctionJOB: "DBMS_JOB" '.' "REMOVE" |
3 | all all all | | | SQL_FunctionLOB: "DBMS_LOB" '.' "GETLENGTH" |
2 | all all all | | | SQL_FunctionSCHEDULER: "DBMS_SCHEDULER" '.' ("CREATE_JOB"|"DROP_JOB") |
SQL_ConcatFunction: "CONCAT" '(' SQL_Expression* ')' | ||
SQL_LeftFunction: "LEFT" '(' SQL_Expression ',' SQL_Expression ')' | ||
4 | all all all all | SQL_LengthFunction: "LENGTH" '(' SQL_Expression ')' |
SQL_SubstringFunction: "SUBSTRING" '(' SQL_Expression ',' SQL_Expression ',' SQL_Expression ')' | ||
14 | all all all all all 1.29 all 86% | SQL_Constraint: "CONSTRAINT" SQL_Key_Definition ("FOREIGN"|"PRIMARY") "KEY" '(' SQL_Identifier_Reference* ')' [SQL_ConstraintReference] |
12 | all all all 1.00 all | | SQL_ConstraintReference: "REFERENCES" SQL_Identifier_Reference '(' SQL_Identifier_Reference* ')' |
3,777,789 | (53% | 47% | none | 0% | none | none | 0% | none | none | 0% | none | 0% | none | none | 0% | 0% | none | none | none | none | none | 0% | 0% | 0% | none) | SQL_Expression: (SQL_Number | SQL_Literal | SQL_HexString | SQL_CurrentTimeStamp | SQL_NegativeExpression | SQL_LogicalNotExpression | SQL_Builtin | SQL_ConcatFunction | SQL_LeftFunction | SQL_LengthFunction | SQL_SubstringFunction | SQL_BuiltinFunction | SQL_CastExpression | SQL_DollarVariable | SQL_VariableExpression | SQL_Star | SQL_InnerSelect | SQL_InnerValues | SQL_InnerWith | SQL_Parentheses | SQL_MultiplicativeExpression | SQL_AdditiveExpression | SQL_RelationalExpression | SQL_LogicalAndExpression | SQL_LogicalOrExpression) |
25 | all all all | SQL_Filename: SQL_Identifier '.' SQL_Identifier |
65 | 5347.05 | SQL_Program: SQL_StatementOrComment* |
347,569 | (100% | 0%) | | SQL_StatementOrComment: (SQL_Statement | SQL_Comment) |
347,539 | (0% | 0% | 0% | 0% | none | 0% | 0% | none | 0% | 0% | 0% | 0% | 0% | 0% | none | 0% | 0% | 0% | none | none | none | 100% | none | 0% | 0% | 0% | 0% | none | 0% | none | none | 0%) | SQL_Statement: (SQL_Semicolon | SQL_AlterStatement | SQL_AtAtStatement | SQL_BeginStatement | SQL_CallStatement | SQL_ColumnStatement | SQL_CreateIndexStatement | SQL_CreateProcedureStatement | SQL_CreateRoleStatement | SQL_CreateSynonymStatement | SQL_CreateTableStatement | SQL_CreateViewStatement | SQL_DeclareStatement | SQL_DeleteStatement | SQL_DelimiterStatement | SQL_DropStatement | SQL_ForStatement | SQL_GrantStatement | SQL_IfStatement | SQL_LeaveStatement | SQL_LoadStatement | SQL_InsertStatement | SQL_PragmaStatement | SQL_SelectStatement | SQL_SetStatement | SQL_SlashStatement | SQL_UpdateStatement | SQL_ValuesStatement | SQL_VariableStatement | SQL_WhileStatement | SQL_WithStatement | SQL_BuiltinFunction) |
80 | all | | SQL_Semicolon: ';' |
555 | (96% | 3% | 1% | none | none) | SQL_Type: (SQL_BaseType | SQL_TypeEnum | SQL_TypeSet | SQL_TypeSize | SQL_TypeUnisgnedLong) |
535 | all 84% | | SQL_BaseType: ("BIGINT"|"BLOB"|"BOOL"|"BOOLEAN"|"CHAR"|"DATE"|"DATETIME"|"DECIMAL"|"DOUBLE"|"FLOAT"|"INT"|"INTEGER"|"INTEGER_NOT_NULL"|"LONGVARCHAR"|"NCLOB"|"NUMBER"|"NUMERIC"|"NVARCHAR2"|"RAW"|"SMALLINT"|"TEXT"|"TIME"|"TIMESTAMP"|"TINYINT"|"UNSIGNED"|"VARCHAR"|"VARCHAR2") [SQL_TypeSize] |
14 | all all 3.43 all | | SQL_TypeEnum: "ENUM" '(' SQL_Expression* ')' |
6 | all all 8.00 all | | SQL_TypeSet: "SET" '(' SQL_Expression* ')' |
451 | all all 3% 3% all | | SQL_TypeSize: '(' SQL_Number [','] [SQL_Number] ')' |
| SQL_TypeUnisgnedLong: ("UNSIGNED") ("LONG") | ||
156 | all 1.38 | SQL_Variable: ['@'] SQL_Identifier_Reference* |
9 | all all all | SQL_AlterStatement: "ALTER" SQL_AlterWhat ';' |
9 | (all) | | SQL_AlterWhat: (SQL_AlterTable) |
9 | all all all all 22% | | | SQL_AlterTable: "TABLE" SQL_Identifier_Reference ("ADD") SQL_Constraint [SQL_OnDelete] |
2 | all all all | | | | SQL_OnDelete: "ON" "DELETE" "CASCADE" |
25 | all all 12% | SQL_AtAtStatement: "@@" SQL_Filename [';'] |
4 | all all all | SQL_BeginStatement: "BEGIN" SQL_BeginWhat ';' |
4 | (all | none) | | SQL_BeginWhat: (SQL_BeginEnd | SQL_BeginTransaction) |
4 | 2.00 25% all | | | SQL_BeginEnd: SQL_StatementOrComment* [SQL_CommitStatement] "END" |
| | SQL_BeginTransaction: "TRANSACTION" ';' SQL_StatementOrComment* "COMMIT" | ||
SQL_CallStatement: "CALL" SQL_BuiltinFunction | ||
8 | all all all all all | SQL_ColumnStatement: ("COLUMN"|"COL") SQL_Identifier_Reference "NEW_VALUE" SQL_Expression ';' |
1 | all all | SQL_CommitStatement: "COMMIT" ';' |
10 | all all all none all all all all 2.00 all none all | SQL_CreateIndexStatement: "CREATE" ["UNIQUE"] "INDEX" [SQL_IfIndexNotExists] SQL_Index_Definition "ON" SQL_Identifier_Reference '(' SQL_Identifier_Reference* ')' [SQL_CreateIndexWhere] ';' |
| SQL_CreateIndexWhere: "WHERE" SQL_Expression | ||
| SQL_IfIndexNotExists: "IF" "NOT" "EXISTS" | ||
SQL_CreateProcedureStatement: "CREATE" [SQL_OrReplaceProcedure] "PROCEDURE" SQL_Procedure_Definition '(' [SQL_ProcedureParameter]* ')' "BEGIN" SQL_StatementOrComment* "END" (";"|"//") | ||
| SQL_OrReplaceProcedure: "OR" "REPLACE" | ||
| SQL_ProcedureParameter: [("IN"|"OUT")] SQL_Parameter_Definition SQL_Type | ||
16 | all all all all | SQL_CreateRoleStatement: "CREATE" "ROLE" SQL_Role_Definition ';' |
67 | all all all all all all all | SQL_CreateSynonymStatement: "CREATE" "PUBLIC" "SYNONYM" SQL_Synonym_Definition "FOR" [SQL_CreateSynonymForWhom] ';' |
67 | all all all all | | SQL_CreateSynonymForWhom: '&' SQL_Identifier_Reference ".." SQL_Identifier_Reference |
552 | all all 1.54(94%) | SQL_CreateTableField: SQL_Field_Definition SQL_Type [SQL_FieldOption]* |
45 | (11% | 27% | 53% | 7% | 2%) | | SQL_CreateFieldKey: (SQL_CreateFieldConstraint | SQL_CreateFieldPlainKey | SQL_CreateFieldPrimaryKey | SQL_CreateFieldUniqueKey | SQL_CreateUsing) |
5 | all all | | | SQL_CreateFieldConstraint: ',' SQL_Constraint |
12 | all all all all 1.67 all | | | SQL_CreateFieldPlainKey: ',' "KEY" SQL_Key_Definition '(' SQL_Identifier_Reference* ')' |
24 | all all all all 3.67 all | | | SQL_CreateFieldPrimaryKey: ',' "PRIMARY" "KEY" '(' SQL_Identifier_Reference* ')' |
3 | all all all all 2.33 all | | | SQL_CreateFieldUniqueKey: ',' "UNIQUE" [SQL_CreateFieldUniqueKeyName] '(' SQL_Identifier_Reference* ')' |
3 | all all | | | | SQL_CreateFieldUniqueKeyName: "KEY" SQL_Key_Definition |
1 | all all | | | SQL_CreateUsing: "USING" "BTREE" |
801 | (3% | 0% | 4% | 29% | none | 1% | 62% | 0% | none | 0%) | | SQL_FieldOption: (SQL_FieldCharSet | SQL_FieldCollate | SQL_FieldComment | SQL_FieldDefault | SQL_FieldDeferrable | SQL_FieldKey | SQL_FieldNotNull | SQL_FieldOnAction | SQL_FieldOnDelete | ("UNIQUE"|"AUTOINCREMENT")) |
21 | all all all | | | SQL_FieldCharSet: "CHARACTER" "SET" ("utf8") |
1 | all all | | | SQL_FieldCollate: "COLLATE" ("utf8_unicode_ci") |
36 | all all | | | SQL_FieldComment: "COMMENT" SQL_Literal |
230 | all all | | | SQL_FieldDefault: "DEFAULT" SQL_Expression |
| | SQL_FieldDeferrable: "DEFERRABLE" "INITIALLY" ("IMMEDIATE"|"DEFERRED") | ||
11 | all all | | | SQL_FieldKey: "PRIMARY" "KEY" |
496 | all all | | | SQL_FieldNotNull: [("NON"|"NOT")] "NULL" |
4 | all all all | | | SQL_FieldOnAction: "ON" ("UPDATE"|"DELETE") SQL_Expression |
| | SQL_FieldOnDelete: "REFERENCES" SQL_Expression | ||
65 | all all all none all all all | SQL_CreateTableStatement: "CREATE" [("VIRTUAL"|"TEMPORARY")] "TABLE" [SQL_IfTableNotExists] SQL_Table_Definition SQL_TableType ';' |
204 | (25% | 8% | 19% | 25% | none | 25%) | | SQL_CreateOption: (SQL_CreateCharset | SQL_CreateCollate | SQL_CreateComment | SQL_CreateEngine | SQL_CreateWithoutRowId | "DEFAULT") |
50 | all all all | | | SQL_CreateCharset: "CHARSET" '=' ("latin1"|"utf8"|"utf8mb4") |
16 | all all all | | | SQL_CreateCollate: "COLLATE" '=' ("utf8_general_ci"|"utf8mb4_unicode_ci") |
38 | all all all | | | SQL_CreateComment: "COMMENT" '=' SQL_Literal |
50 | all all all | | | SQL_CreateEngine: "ENGINE" '=' ("MyISAM"|"InnoDB") |
| | SQL_CreateWithoutRowId: "WITHOUT" "ROWID" | ||
| SQL_IfTableNotExists: "IF" "NOT" "EXISTS" | ||
65 | all 15.98 1.15(60%) all 4.08(77%) | | SQL_TableNormal: '(' SQL_CreateTableField* [SQL_CreateFieldKey]* ')' [SQL_CreateOption]* |
65 | (all | none) | | SQL_TableType: (SQL_TableNormal | SQL_TableUsing) |
| SQL_TableUsing: "USING" "SPAN_JOIN" '(' SQL_Identifier_Reference* ')' | ||
8 | all all all all all all all | SQL_CreateViewStatement: "CREATE" ["OR"] ["REPLACE"] "VIEW" SQL_View_Definition "AS" SQL_SelectStatement |
1 | all 2.00 | SQL_DeclareStatement: "DECLARE" SQL_Declaration* |
2 | all all all all all | | SQL_Declaration: SQL_Declare_Definition SQL_Type [":="] [SQL_Expression] ';' |
30 | all all all all all | SQL_DeleteStatement: "DELETE" "FROM" SQL_Identifier_Reference [SQL_DeleteWhere] ';' |
30 | all all | | SQL_DeleteWhere: "WHERE" SQL_Expression |
SQL_DelimiterStatement: "DELIMITER" (";"|"//") | ||
181 | all all all none all all | SQL_DropStatement: "DROP" ["PUBLIC"] ("FUNCTION"|"PACKAGE"|"PROCEDURE"|"ROLE"|"SYNONYM"|"TABLE"|"VIEW") [SQL_DropCondition] SQL_Identifier_Reference ';' |
| SQL_DropCondition: "IF" "EXISTS" | ||
1 | all all all all all all all 3.00 all all all | SQL_ForStatement: "FOR" SQL_Declare_Definition "IN" SQL_Expression ".." SQL_Expression "LOOP" SQL_StatementOrComment* "END" "LOOP" ';' |
90 | all all all all all | SQL_GrantStatement: "GRANT" SQL_GrantPermission "TO" SQL_Identifier_Reference ';' |
90 | (91% | 9%) | | SQL_GrantPermission: (SQL_GrantPermissionOn | SQL_Identifier_Reference) |
82 | all all all | | | SQL_GrantPermissionOn: ("EXECUTE"|"SELECT") "ON" SQL_Identifier_Reference |
SQL_IfStatement: "IF" SQL_Expression "THEN" SQL_StatementOrComment* [SQL_IfElseClause] "END" "IF" ';' | ||
| SQL_IfElseClause: "ELSE" SQL_StatementOrComment* | ||
346,901 | all none all all all all | SQL_InsertStatement: "INSERT" [SQL_OrReplace] "INTO" SQL_Identifier_Reference SQL_InsertClause ';' |
346,901 | (0% | 100%) | | SQL_InsertClause: (SQL_InsertSet | SQL_InsertValues) |
381 | all 10.21 | | SQL_InsertSet: "SET" SQL_InsertAssignment* |
2,136 | all all all | | | SQL_InsertAssignment: SQL_Identifier_Reference '=' SQL_Expression |
346,520 | none all all 20.79 all | | SQL_InsertValues: [SQL_InsertNames] "VALUES" '(' SQL_Expression* ')' |
| | SQL_InsertNames: '(' SQL_Identifier_Reference* ')' | ||
| SQL_OrReplace: "OR" "REPLACE" | ||
SQL_LeaveStatement: "LEAVE" SQL_Identifier_Reference ';' | ||
SQL_LoadStatement: "LOAD" "DATA" "LOCAL" "INFILE" SQL_Literal "INTO" "TABLE" SQL_Identifier_Reference "FIELDS" "TERMINATED" "BY" SQL_Literal "ENCLOSED" "BY" SQL_Literal "ESCAPED" "BY" SQL_Literal "LINES" "TERMINATED" "BY" SQL_Literal | ||
SQL_PragmaStatement: "PRAGMA" SQL_PragmaClause* ';' | ||
| SQL_PragmaClause: (SQL_Pragma_ForeignKeys | SQL_Pragma_JournalMode) | ||
| | SQL_Pragma_ForeignKeys: "FOREIGN_KEYS" '=' SQL_Pragma_ForeignKey | ||
| | | SQL_Pragma_ForeignKey: (SQL_Number | "OFF") | ||
| | SQL_Pragma_JournalMode: "JOURNAL_MODE" '=' "OFF" | ||
33 | (58% | none | 6% | none | 24% | 12%) | SQL_SelectClause: (SQL_SelectFrom | SQL_SelectGroup | SQL_SelectInto | SQL_SelectJoin | SQL_SelectReadOnly | SQL_SelectWhere) |
19 | all all 5% 1.00(11%) | | SQL_SelectFrom: "FROM" SQL_Identifier_Reference [SQL_Table_Definition] [SQL_SelectFromMore]* |
2 | all all 50% | | | SQL_SelectFromMore: ',' SQL_Identifier_Reference [SQL_Table_Definition] |
| SQL_SelectGroup: "GROUP" "BY" SQL_Identifier_Reference | ||
2 | all all | | SQL_SelectInto: "INTO" SQL_Identifier_Reference |
| SQL_SelectJoin: ["INNER"] "JOIN" SQL_Identifier_Reference SQL_SelectJoinClause | ||
| | SQL_SelectJoinClause: (SQL_SelectJoinOn | SQL_SelectJoinUsing) | ||
| | | SQL_SelectJoinOn: "ON" SQL_Expression | ||
| | | SQL_SelectJoinUsing: "USING" '(' SQL_Identifier_Reference ')' | ||
8 | all all all | | SQL_SelectReadOnly: "WITH" "READ" "ONLY" |
4 | all all | | SQL_SelectWhere: "WHERE" SQL_Expression |
19 | all none | SQL_SelectStatement: SQL_SelectStmt [SQL_SelectUnion]* |
19 | all 6.89 1.74(all) all | | SQL_SelectStmt: "SELECT" SQL_SelectWhat* [SQL_SelectClause]* [';'] |
| SQL_SelectUnion: "UNION" ["ALL"] SQL_SelectStmt | ||
75 | all 4% | | SQL_SelectWhat: SQL_Expression [SQL_SelectAs] |
3 | all all | | | SQL_SelectAs: ["AS"] SQL_Identifier_Reference |
19 | all all all all all | SQL_SetStatement: "SET" SQL_VariableExpression '=' SQL_Expression ';' |
4 | all | SQL_SlashStatement: '/' |
4 | all all all 1.00 all all all | SQL_UpdateStatement: "UPDATE" SQL_Identifier_Reference "SET" SQL_UpdateAssignment* "WHERE" SQL_Expression ';' |
4 | all all all | | SQL_UpdateAssignment: SQL_Identifier_Reference '=' SQL_Expression |
SQL_ValuesStatement: "VALUES" SQL_Expression* [';'] | ||
1 | all all all all | SQL_VariableStatement: "VARIABLE" SQL_Variable SQL_Type ';' |
SQL_WhileStatement: [SQL_WhileLabel] "WHILE" SQL_Expression "DO" SQL_StatementOrComment* "END" "WHILE" [SQL_Identifier_Reference] ';' | ||
| SQL_WhileLabel: SQL_Label_Definition ':' | ||
SQL_WithStatement: "WITH" SQL_Identifier_Reference '(' SQL_Identifier_Reference* ')' "AS" SQL_Expression SQL_SelectStatement |
Terminals = 17 (instances=4,128,863)
Tokens = 152 (instances=5,521,787)
(*) Statistics are shown in the same order as the Tokens.
Percentages are rounded; 'all' and 'none' mean 100% and 0% before rounding.
For lists, it shows the average number of occurrences, excluding empty lists.