sql-parser - A validating SQL lexer and parser with a focus on MySQL dialect.

  •        107

A validating SQL lexer and parser with a focus on MySQL dialect. The API documentation is available at https://develdocs.phpmyadmin.net/sql-parser/.

https://packagist.org/packages/phpmyadmin/sql-parser
https://github.com/phpmyadmin/sql-parser

Tags
Implementation
License
Platform

   




Related Projects

querybuilder - SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql and Firebird

  •    CSharp

SqlKata Query Builder is a powerful Sql Query Builder written in C#. It's secure and framework agnostic. Inspired by the top Query Builders available, like Laravel Query Builder, and Knex.

Parser SQL Query

  •    C++

Class C++ of parse SQL query. Simple, but effective to add a condition to the SQL query of any complexity or replace a variable by its value. Variable begins with a '$'.

Sqlparse - A non-validating SQL parser module for Python

  •    Python

sqlparse is a non-validating SQL parser for Python. It provides support for parsing, splitting and formatting SQL statements.

PHPMyAdmin

  •    PHP

phpMyAdmin is a free software tool written in PHP intended to handle the administration of MySQL over the World Wide Web. phpMyAdmin supports a wide range of operations with MySQL. The most frequently used operations are supported by the user interface (managing databases, tables, fields, relations, indexes, users, permissions, etc), while you still have the ability to directly execute any SQL statement.

WowPacketParser - World of Warcraft Packet Parser

  •    CSharp

Optionally, WPP can connect to two kinds of MySQL databases: world from TrinityCore and its own database, WPP. This can be enabled by setting <add key="DBEnabled" value="true" /> in the .config file. Remember to set <add key="TargetedDatabase" value="1"/> in accordance with the targeted version of the core. The world database is used when creating SQL files after parsing to produce the mimimum number of changes needed to update the database. For example, if only the faction of a creature that appears in the sniff needs to be updated, the produced SQL files will contain an UPDATE query, instead of a full INSERT to the table creature_template. WPP does not modify this database directly, all the tentative changes will be written to the output SQL files.


sql-parser - A SQL parser written in pure JS

  •    Javascript

SQL Parser is a lexer, grammar and parser for SQL written in JS. Currently it is only capable of parsing fairly basic SELECT queries but full SQL support will hopefully come in time. See the specs for examples of currently supported queries. The package is distributed on NPM and can be installed with...

knex - A SQL query builder that is flexible, portable, and fun to use!

  •    Javascript

Knex.js is a "batteries included" SQL query builder for Postgres, MSSQL, MySQL, MariaDB, SQLite3, and Oracle designed to be flexible, portable, and fun to use. It features both traditional node style callbacks as well as a promise interface for cleaner async flow control, a stream interface, full featured query and schema builders, transaction support (with savepoints), connection pooling and standardized responses between different query clients and dialects.

rdb - Javascript ORM

  •    Javascript

ORM for nodejs. Supports postgres, mySql and sqlite. 1.7.1 Support for schemas (postgres only). 1.7.0 sqlite3 is now a peer dependency. Add it to your own package.json if you intend to use it. 1.6.9 Bugfix: one-to-many relation returns empty if strategy is included. 1.6.8 Bugfix: one-to-many relation returns empty if insert/update is done earlier in transaction. 1.6.7 Bugfix in relations. 1.6.6 Bugfix. 1.6.5 Improved performance on relations. 1.6.4 Bugfix. 1.6.3 Bugfix: potential incorrect timeZoneOffset when serializing date to JSON. Got timeZoneOffset from now() instead of on actual date. 1.6.2 Removed es6 syntax to ensure backwards compatability. Fixed global var leak. 1.6.1 Now supporting sqlite. 1.6.0 Bugfix: potential ambigous column error when using limit and relating to other tables. 1.5.9 Bugfix: using multipleStatements in mySql could sometimes cause an error when updates are run right before a select. Improved performance on limit when relating to other tables. Using uuid instead of node-uuid Updated all dependencies but generic-pool to latest. (Generic-pool has some breaking changes in latest. I will update it in next release.) 1.5.8 Cleanup line breaks in documentation. 1.5.7 Bugfix: getById.exclusive and tryGetById.exclusive did not lock if row was cached. Improved performance on tryGetFirst. 1.5.6 Raw sql filters can accept sql both as string and as function. E.g. var filter = {sql: function() {return 'foo > 1';}}. 1.5.5 Optional locks for getMany, tryGetFirst and tryGetById. Instead of calling getMany(params) just call getMany.exclusive(params). Same syntax goes for tryGetFirst and tryGetById. This will result in SELECT FOR UPDATE. Bugfix: bulk deletes now accepts raw sql filters too. 1.5.4 Transaction locks. Postgres only. 1.5.3 Upgraded to pg 6.0.3 1.5.2 Improved performance and reduced memory footprint. 1.5.1 Documented JSON column type. Bug fix: Insert and foreign key violation. 1.5.0 JSON column type. Postgres json type does not support rdb filters. 1.4.1 Empty filter would sometimes cause invalid filter. 1.4.0 Raw SQL query. 1.3.0 getMany() now supports limit and orderBy - same syntax as in streaming. 1.2.3 Bugfix: iEqual gave incorrect sql when parameterized. 1.2.2 Exlusive no longer returns a clone of table. It has changes current table to exclusive locking. 1.2.1 Bugfix: Exclusive row locks 1.2.0 Exclusive row locks 1.1.0 Now supporting streaming. Requires postgres or MySQL >=5.7.7 1.0.8 README fixup. 1.0.7 Better performance on insert and update. 1.0.6 Bugfix: Transaction domain should not forward rdb singleton from old domain. 1.0.5 Documentation cleanup. 1.0.4 orderBy in toDto(). 1.0.3 toDto() using next tick on every thousandth row to avoid maximum call stack size exceeded. 1.0.2 Reduced number of simultaneous promises in order to avoid maximum call stack size exceeded. 1.0.1 Bugfix: Incorrect insert/updates on timestamp without timezone. The time was converted utc instead of stripping the timezone. 1.0.0 Transaction domain forwards properties from old domain. Semantic versioning from now on. 0.5.1 Improved performance 0.5.0 Logging: rdb.log(someFunc) logs sql and parameters. Raw sql filters. 0.4.9 New method: tryGetById. New filter: iEqual, postgres only. Bugfix: rows.toJSON() without strategy did not include any children. 0.4.8 Explicit pooling with size and end(). Bugfix: mySql did not release client to pool. 0.4.7 Upgraded to pg 4.3.0 Upgraded to mysql 2.5.5 0.4.6 Upgraded pg 4.2.0. 0.4.5 Oops. Forgot to use pg.js instead of pg. 0.4.4 Upgraded all dependencies to latest. Using pg.js instead of pg. 0.4.3 Can ignore columns when serializing to dto. 0.4.2 Bugfix: update on a row crashes when a delete occurs earlier in same transaction. 0.4.1 Bugfix: more global leaks. 0.4.0 Bugfix: global leak. 0.3.9 Bugfix: eager loading joins/hasOne with non unique column names was not handled correctly. 0.3.8 Supports mySql. Bulk deletes. 0.3.7 Bugfix: eager loading manyRelation on a join/hasOne returned empty array #11 0.3.6 Fixed sql injection vulnerability. 0.3.5 Built-in fetching strategies for lazy loading. Works best in readonly scenarios. 0.3.4 Docs and examples split moved to separate file. 0.3.3 Fixed documentation layout again. 0.3.2 Fixed documentation layout. 0.3.1 Case insensitive filters: iStartsWith, iEndsWith and iContains. 0.3.0 Fix broken links in docs. 0.2.9 Support for row.delete(). Rollback only throws when error is present. 0.2.8 Guid accepts uppercase letters. Bugfix: null inserts on guid columns yielded wrong sql. 0.2.7 New method, toDto(), converts row to data transfer object. Bugfix: toJSON returned incorrect string on hasMany relations. 0.2.6 Fixed incorrect links in README. 0.2.5 Bugfix: caching on composite keys could give a crash #7. Improved sql compression on insert/update. 0.2.4 Bugfix: getMany with many-strategy and shallowFilter yields incorrect query #6. 0.2.3 Reformatted documentation. No code changes.

goqu - SQL builder and query library for golang

  •    Go

In order to start using goqu with your database you need to load an adapter. We have included some adapters by default. Adapters in goqu work the same way as a driver with the database in that they register themselves with goqu once loaded.

Objection.js - An SQL-friendly ORM for Node.js

  •    Javascript

Objection.js is an ORM for Node.js that aims to stay out of your way and make it as easy as possible to use the full power of SQL and the underlying database engine while keeping magic to a minimum.Objection.js is built on an SQL query builder called knex. All databases supported by knex are supported by objection.js. SQLite3, Postgres and MySQL are thoroughly tested.

datafusion - SQL Query Execution against Apache Arrow, in Rust

  •    Rust

DataFusion is a SQL parser, planner, and query execution library for Rust. A DataFrame API is also provided. DataFusion can be used as a crate dependency in your project to add SQL support for custom data sources.

pypika - PyPika is a SQL query builder with a pythonic syntax that doesn't limit the expressiveness of SQL

  •    Python

PyPika is a Python API for building SQL queries. The motivation behind PyPika is to provide a simple interface for building SQL queries without limiting the flexibility of handwritten SQL. Designed with data analysis in mind, PyPika leverages the builder design pattern to construct queries to avoid messy string formatting and concatenation. It is also easily extended to take full advantage of specific features of SQL database vendors. PyPika supports python 2.7 and 3.3+. It may also work on pypy, cython, and jython, but is not being tested for these versions.

Open SQL Parser

  •    Javascript

Open SQL Parser is a database independant SQL parser written in PHP.

sqlparser - Simple SQL parser meant for querying CSV files

  •    Go

Simple SQL parser meant for querying CSV files

.NET Dynamic SQL Generator

  •    CSharp

A Database agnostic SQL query builder and Data Access Layer for .NET. Build safe SQL Statements using familiar syntax and execute on any database with minimal effort. Written in C# using VS 2008

Aura.SqlQuery - Independent query builders for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server.

  •    PHP

Provides query builders for MySQL, Postgres, SQLite, and Microsoft SQL Server. These builders are independent of any particular database connection library, although PDO in general is recommended. This package is installable and PSR-4 autoloadable via Composer as aura/sqlquery.

jinjasql - Simplify creation and maintenance of complex SQL queries by using Jinja based template language

  •    Python

JinjaSQL is a template language for SQL statements and scripts. Since it's based in Jinja2, you have all the power it offers - conditional statements, macros, looping constructs, blocks, inheritance, and many more. JinjaSQL doesn't actually execute the query - it only prepares the query and the bind parameters. You can execute the query using any database engine / driver you are working with.

SQL Bandwidth Meter Log Parser

  •    

Parses the log files created by the Hosts Tools SQL Bandwidth Meter application

SQL Buddy - Web based MySQL administration

  •    PHP

SQL Buddy is a phpMyAdmin alternative with a focus on usability. It supports to create and drop databases and tables, View, edit, insert and delete table rows, Execute custom SQL and view the output, Import and export databases and tables to SQL and CSV formats, Add, edit and delete MySQL users.

SQL Parser for Delphi

  •    Delphi

Develope a string parser that is capable to parse SQL statements into tokens, allows changing theese tokens and rebuilding (modified) SQL statement






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.