> For the complete documentation index, see [llms.txt](https://dshub.gitbook.io/ds-hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dshub.gitbook.io/ds-hub/sql/sql-basics.md).

# SQL Basics

## What is SQL?

SQL stands for **Structured Query Language** and lets you **access** and **manipulate** **databases.** It is an ANSI (American National Standards Institute) standard.

## SQL lets you

* create new databases
* delete databases
* insert records in a database
* update records in a database
* delete records from a database
* execute queries against a database
* retrieve data from a database
* create new tables in a database
* create stored procedures in a database
* create views in a database
* insert records in a table
* update records in a table
* delete records from a table
* delete tables
* set permissions on tables, procedures, and views

## SQL Extensions

Several DBMS vendors have expanded the capabilities of SQL by introducing new statements or instructions to the language. These extensions serve the purpose of enhancing functionality or simplifying specific operations. While these extensions can be highly beneficial, they are often specific to a particular DBMS and are typically not supported by multiple vendors. On the other hand, the **standard SQL** governed by ANSI committee, is commonly referred to as **ANSI SQL**. It is noteworthy that all major DBMSs, including those with their own extensions, support ANSI SQL as a common standard.

## SQL Statements

An SQL statement is a command or instruction written in the Structured Query Language (SQL) to perform a specific action on a database. SQL statements are used to interact with databases by retrieving, manipulating, or managing data stored in them.

There are several types of SQL statements, including:

1. **Data Manipulation Language (DML) statements:** These statements are used to retrieve, insert, update, and delete data from a database. Examples include SELECT, INSERT, UPDATE, and DELETE.
2. **Data Definition Language (DDL) statements:** DDL statements are used to define or modify the structure and schema of database objects such as tables, indexes, and constraints. Examples include CREATE, ALTER, and DROP.
3. **Data Control Language (DCL) statements:** DCL statements are used to control access permissions and security settings in a database. Examples include GRANT and REVOKE.
4. **Transaction Control Language (TCL) statements:** TCL statements are used to manage transactions within a database. Examples include COMMIT, ROLLBACK, and SAVEPOINT.

## Keywords

SQL statements are made up of one or more English terms, called keywords. For example `CREATE`, `SELECT`, `INSERT INTO`, `GRANT` are only a few of the statements. Columns or tables should never be named using a keyword.

## Clauses

Clauses are keywords and/or built-in functions that help fetch the records from a table. A clause is used with a conditional expression, i.e. a threshold number to limit the number of rows being displayed (**LIMIT 20**) or column(s) to perfom aggragration (**GROUP BY year**). Some of the widely used clauses including.

* CONSTRAINT clause&#x20;
* FROM clause
* WHERE clause&#x20;
* GROUP BY clause&#x20;
* HAVING clause&#x20;
* ORDER BY clause&#x20;
* WITH clause
* USING clause&#x20;
* LIMIT clause
* OFFSET clause
* AND / OR clause

Do not use clauses to name a column or field!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://dshub.gitbook.io/ds-hub/sql/sql-basics.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
