Computer Science > Databases > SQL
Structured Query Language (SQL) is a fundamental aspect of the field of databases within computer science. SQL is essential for managing and manipulating relational databases, which store data in tables consisting of rows and columns. It enables users to define, manipulate, and query the data stored in these relational database management systems (RDBMS).
Data Definition Language (DDL):
SQL provides commands for creating, modifying, and deleting database structures, such as tables, indexes, and schemas. These commands are part of the Data Definition Language subset of SQL. Key DDL commands include:
- CREATE TABLE
: Defines a new table and its columns.
- ALTER TABLE
: Modifies an existing table, such as adding or deleting columns.
- DROP TABLE
: Deletes a table and all of its data.
Data Manipulation Language (DML):
SQL also includes commands for interacting with the data stored within the tables. These commands form the Data Manipulation Language subset of SQL and include:
- INSERT INTO
: Adds new rows of data to a table.
- UPDATE
: Modifies existing data within a table.
- DELETE
: Removes rows from a table.
Data Query Language (DQL):
One of SQL’s most powerful features is its ability to query and retrieve specific data from a database. The primary DQL command is:
- SELECT
: Retrieves data from one or more tables. This command can include various clauses to filter, sort, and join data.
Example Query:
SELECT first_name, last_name
FROM employees
WHERE department = 'Engineering'
ORDER BY last_name ASC;
This example selects the first and last names of employees who work in the ‘Engineering’ department and orders the results by last names in ascending order.
Transaction Control:
SQL provides mechanisms to ensure the integrity and consistency of data through transaction control commands, such as:
- BEGIN TRANSACTION
: Starts a new transaction.
- COMMIT
: Saves all changes made during the current transaction.
- ROLLBACK
: Undoes all changes if an error occurs during the transaction.
Joins:
SQL supports various types of joins, which allow the combination of rows from two or more tables based on related columns. Common types of joins include:
- INNER JOIN
: Returns rows that have matching values in both tables.
- LEFT JOIN
: Returns all rows from the left table, and the matched rows from the right table; non-matching rows will have NULL values.
- RIGHT JOIN
: Similar to LEFT JOIN but returns rows from the right table.
Normalization:
Normalization is a database design technique aimed at minimizing redundancy and avoiding undesirable characteristics like insertion, update, and deletion anomalies. It involves organizing the database into tables and columns and is guided by various normal forms (1NF, 2NF, 3NF, etc.).
ACID Properties:
A critical aspect of database systems is their adherence to ACID properties, which ensure reliable processing of database transactions:
- Atomicity: Ensures that each transaction is all-or-nothing.
- Consistency: Guarantees that a transaction can only bring the database from one valid state to another.
- Isolation: Ensures that the concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially.
- Durability: Ensures that once a transaction has been committed, it will remain so, even in the event of a system failure.
Overall, SQL is a powerful and versatile language indispensable for database management and manipulation in fields ranging from academic research to industrial applications. Its standardized nature allows for widespread use across various database systems, making it a critical skill for aspiring computer scientists and database administrators.