# SQL programming tool

In the field of software, SQL programming tools provide platforms for database administrators (DBAs) and application developers to perform daily tasks efficiently and accurately.
Database administrators and application developers often face constantly changing environments which they rarely completely control. Many changes result from new development projects or from modifications to existing code, which, when deployed to production, do not always produce the expected result.
For organizations to better manage development projects and the teams that develop code, suppliers of SQL programming tools normally provide more than facility to the database administrator or application developer to aid in database management and in quality code-deployment practices.

## Features

SQL programming tools may include the following features:

### SQL editing

SQL editors allow users to edit and execute SQL statements. They may support the following features:
* cut, copy, paste, undo, redo, find (and replace), bookmarks
* block indent, print, save file, uppercase/lowercase
* keyword highlighting
* auto-completion
* access to frequently used files
* output of query result
* editing query-results
* committing and rolling-back transactions
* inside cut paper

### Object browsing

Tools may display information about database objects relevant to developers or to database administrators. Users may:
* view object descriptions
* view object definitions (DDL)
* create database objects
* enable and disable triggers and constraints
* recompile valid or invalid objects
* query or edit tables and views
Some tools also provide features to display dependencies among objects, and allow users to expand these dependent objects recursively (for example: packages may reference views, views generally reference tables, super/subtypes, and so on).

### Session browsing

Database administrators and application developers can use session browsing tools to view the current activities of each user in the database. They can check the resource-usage of individual users, statistics information, locked objects and the current running SQL of each individual session.

### User-security management

DBAs can create, edit, delete, disable or enable user-accounts in the database using security-management tools. DBAs can also assign roles, system privileges, object privileges, and storage-quotas to users.

### Debugging

Some tools offer features for the debugging of stored procedures: step in, step over, step out, run until exception, breakpoints, view & set variables, view call stack, and so on. Users can debug any program-unit without making any modification to it, including triggers and object types.

### Performance monitoring

Monitoring tools may show the database resources — usage summary, service time summary, recent activities, top sessions, session history or top SQL — in easy-to-read graphs. Database administrators can easily monitor the health of various components in the monitoring instance. Application developers may also make use of such tools to diagnose and correct application-performance problems as well as improve SQL server performance.

### Test data

Test data generation tools can populate the database by realistic test data for server or client side testing purposes. Also, this kind of software can upload sample blob files to database.