A universal command-line interface for SQL and NoSQL databases, inspired by PostgreSQL's psql.
usql is a universal command-line interface for SQL and NoSQL databases. It provides a single tool to interact with multiple database systems using a syntax inspired by PostgreSQL's psql, eliminating the need to switch between different database clients.
Database administrators and developers who work with multiple database systems and prefer command-line tools. It's particularly useful for those familiar with PostgreSQL's psql who need similar functionality for other databases.
Developers choose usql because it offers a consistent interface across different databases, reduces tool fragmentation, and provides advanced features like syntax highlighting and cross-database copying that aren't available in most native clients.
Universal command-line interface for SQL databases
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 30 SQL and NoSQL databases, including PostgreSQL, MySQL, Oracle, and Cassandra, as detailed in the extensive driver table, reducing tool fragmentation.
Emulates PostgreSQL's psql with core features like variables, backslash commands, and backticks, making it intuitive for users familiar with that tool.
Includes syntax highlighting, context-based tab completion, and terminal graphics, improving the command-line experience beyond basic database clients.
The \copy command enables copying data between different database systems, a unique feature not commonly found in native clients, as demonstrated in the examples.
Drivers like ODBC and godror require CGO, complicating cross-platform builds and setup, as noted in the build tags section, which can hinder easy installation.
While aiming for psql compatibility, it may not support all database-specific commands or advanced features, limiting use for specialized tasks.
Requires understanding build tags (e.g., 'most', 'all') to include specific drivers, adding overhead compared to using simple, pre-packaged native clients.