CRUD stands for Create, Read, Update, and Delete. It’s a set of basic operations that are essential for managing data in a database or any persistent storage system.
It refers to the four basic functions that any persistent storage application needs to perform. Persistent storage refers to data storage that retains information even after the device is powered off, unlike RAM which loses data when power is lost. Examples of persistent storage include hard drives and solid-state drives.
Here’s a breakdown of each CRUD operation:
- Create: This operation allows you to add new data to the storage system.
- Read: This operation allows you to retrieve existing data from the storage system.
- Update: This operation allows you to modify existing data in the storage system.
- Delete: This operation allows you to remove data from the storage system.
CRUD is fundamental for various applications, including:
- Databases: CRUD operations are the foundation of working with data in relational and NoSQL databases.
- APIs: When you build APIs, CRUD represents the essential functionalities for managing resources.
- User Interfaces: Many interfaces use CRUD functionalities behind the scenes to allow users to view, edit, and delete information through forms and reports.
Overall, CRUD provides a simple and effective way to understand the core data manipulation operations in computer programming.with appropriate privileges to create or delete databases, especially in production environments. Make sure you have the necessary permissions before attempting these operations.
CReate
Create Table
The CREATE TABLE
statement is used to define a new table in a database. It follows this general syntax:
SQL
CREATE TABLE table_name (
column1 data_type [constraint1, constraint2, ...],
column2 data_type [constraint1, constraint2, ...],
...
);
Explanation of Parts:
CREATE TABLE
: This keyword initiates the table creation process.table_name
: This is a chosen name that identifies your table.column1
,column2
, etc.: These represent the individual columns within the table, each holding a specific type of data.data_type
: This specifies the kind of data each column can store. Examples includeint
for integers,varchar
for variable-length text, anddate
for storing dates.constraint1
,constraint2
, etc.: These are optional clauses that define rules for the data within a column. Common constraints includeNOT NULL
to ensure a value must be present, andPRIMARY KEY
to uniquely identify each row.
The data types of columns or fields may vary from one database system to another. For example, NUMBER is supported in Oracle database for integer values whereas INT is supported in MySQL.
the CREATE TABLE syntax is available in the Data Definition Language (DDL) subset
Example 1: Creating a Customers Table
Let’s create a table named Customers
to store customer information:
SQL
CREATE TABLE Customers (
customer_id int NOT NULL PRIMARY KEY,
first_name varchar(50) NOT NULL,
last_name varchar(50) NOT NULL,
email varchar(100) UNIQUE,
phone_number varchar(20)
);
Explanation of the Example:
- This code creates a table named
Customers
. - It has five columns:
customer_id
: Stores a unique integer identifier for each customer (primary key).first_name
andlast_name
: Stores customer’s first and last name (not null).email
: Stores the customer’s email address (unique).phone_number
: Stores the customer’s phone number (optional).
Example 2: Creating a Products Table
Here’s another example for a Products
table:
SQL
CREATE TABLE Products (
product_id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name varchar(255) NOT NULL,
price decimal(10,2) NOT NULL,
description text,
stock int DEFAULT 0
);
Explanation of the Example:
- This code creates a table named
Products
. - It has five columns:
product_id
: Stores a unique integer identifier for each product (primary key with auto-increment).name
: Stores the product name (not null).price
: Stores the product’s price (decimal with two decimal places, not null).description
: Stores a textual description of the product (optional).stock
: Stores the current stock level (default value 0).
These are just a couple of examples. You can create tables to store any kind of data following this structure and define constraints based on your specific needs.
Creating data in a database using CRUD operations
When it comes to creating data in a database using CRUD operations (Create, Read, Update, Delete), there are several ways to perform the “Create” operation, depending on the specific requirements of the application and the capabilities of the database management system (DBMS) being used. Here are some common types of create operations:
Single Record Insertion:
This is the simplest form of the create operation, where a single record is inserted into a table.
Example INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
Bulk Insertion:
Bulk insertion involves inserting multiple records into a table in a single operation.
It is often more efficient than inserting records one by one, especially when dealing with large datasets.
Example INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'), ('Bob', 'bob@example.com'), ('Charlie', 'charlie@example.com');
Insertion from Another Table:
Data can be inserted into a table by selecting records from another table and inserting them into the target table.
This is useful for copying data or transforming data from one table to another.
Example INSERT INTO new_users (name, email) SELECT name, email FROM old_users WHERE age > 18;
Insertion with Default Values:
If certain columns have default values defined, those values are automatically used during insertion if no explicit value is provided.
Example INSERT INTO users (name) VALUES ('Jane');
Assuming ’email’ column has a default value defined, it will be used during insertion.
Insertion with Generated Values:
Some databases support generated values for columns, such as auto-incrementing primary keys or UUIDs.
These values are automatically generated by the database system during insertion.
Example (using SQL with auto-incrementing primary key): INSERT INTO users (name) VALUES ('Jane');
Insertion Using ORM (Object-Relational Mapping):
In object-oriented programming, ORM frameworks abstract away the database operations and allow developers to create and manipulate objects instead of writing SQL queries directly.
Example (using an ORM like SQLAlchemy in Python): user = User(name='John', email='john@example.com') db.session.add(user) db.session.commit()
Read
For the “Read” operation, it involves retrieving data from the database. Here are common types of read operations:
Selecting All Records:
Retrieve all records from a table.
Example SELECT * FROM users;
Selecting Specific Columns:
Retrieve specific columns from a table.
Example SELECT name, email FROM users;
Filtering with WHERE Clause:
Retrieve records that meet specific conditions using the WHERE clause.
Example SELECT * FROM users WHERE age > 18;
Sorting with ORDER BY Clause:
Retrieve records sorted in ascending or descending order based on one or more columns.
Example SELECT * FROM users ORDER BY name ASC;
Limiting Results with LIMIT Clause:
Retrieve a limited number of records from the result set.
Example SELECT * FROM users LIMIT 10;
Joining Tables:
Retrieve data from multiple tables by joining them based on related columns.
Example SELECT users.name, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id;
Aggregation Functions:
Retrieve aggregated data using functions like COUNT, SUM, AVG, MIN, MAX, etc.
Example SELECT COUNT(*) FROM users; SELECT AVG(age) FROM users WHERE country = 'USA';
Grouping Results with GROUP BY Clause:
Group rows that have the same values into summary rows.
Example SELECT country, COUNT(*) FROM users GROUP BY country;
Subqueries:
Retrieve data from a subquery and use it in the main query.
Example SELECT name, email FROM users WHERE age > (SELECT AVG(age) FROM users);
These are some common types of read operations used to retrieve data from a database using CRUD operations. The appropriate method to use depends on the specific requirements and constraints of the application.
***Create & Delete Database:-
Creating and deleting databases can vary slightly depending on the specific database management system (DBMS) you are using. Let us see some examples for MySQL and PostgreSQL, two popular relational database management systems.
1. MySQL Example:
Creating a Database:
CREATE DATABASE my_database;
Deleting a Database:
DROP DATABASE my_database;
2. PostgreSQL Example:
Creating a Database:
CREATE DATABASE my_database;
Deleting a Database:
DROP DATABASE my_database;
In both examples:
my_database
is the name of the database you want to create or delete.CREATE DATABASE
is the SQL command used to create a new database.DROP DATABASE
is the SQL command used to delete an existing database.
It’s important to exercise caution when using DROP DATABASE
because it permanently deletes the database and all of its contents.
Always double-check before executing this command to avoid accidental data loss.
Additionally, in practice, you may need to authenticate
Sources
In Spark SQL, CRUD (Create, Read, Update, Delete) operations
In Spark SQL, CRUD (Create, Read, Update, Delete) operations allow you to manage data similarly to traditional SQL databases. Here’s how CRUD can be implemented in Spark SQL:
1. Create (INSERT)
To create data in Spark SQL, you can use the CREATE TABLE
command to define the structure of a table and then insert records with INSERT INTO
or INSERT OVERWRITE
.
Operation | Command | Example |
---|---|---|
CREATE TABLE | Defines a new table schema. | CREATE TABLE employees (id INT, name STRING, age INT, department STRING); |
INSERT INTO | Adds rows to an existing table without replacing existing data. | INSERT INTO employees VALUES (1, 'Alice', 30, 'Engineering'); |
INSERT OVERWRITE | Replaces all data in the table with new data. | INSERT OVERWRITE TABLE employees SELECT * FROM new_data; |
2. Read (SELECT)
The SELECT
command is used to query data from tables. Spark SQL supports filtering, aggregating, sorting, and joining data through the SELECT
statement.
Operation | Command | Example |
---|---|---|
SELECT | Retrieves specific columns or rows based on conditions. | SELECT name, department FROM employees WHERE age > 25; |
JOIN | Combines data from multiple tables based on a key. | SELECT e.name, d.name AS dept FROM employees e JOIN departments d ON e.department = d.id; |
GROUP BY, ORDER BY | Groups and sorts data as part of the query. | SELECT department, AVG(age) FROM employees GROUP BY department ORDER BY AVG(age) DESC; |
3. Update
Updating records directly is available in Spark SQL when using Delta Lake. Delta Lake provides ACID transactions, allowing you to modify rows in a table.
Operation | Command | Example |
---|---|---|
UPDATE | Modifies existing rows in a table (Delta tables). | UPDATE employees SET age = 31 WHERE id = 1; |
Note: The
UPDATE
operation is only supported in Delta Lake tables. Standard Spark tables do not support direct row updates.
4. Delete
Similar to updates, deleting records is supported in Delta Lake for Spark SQL. The DELETE
statement removes rows that match a specified condition.
Operation | Command | Example |
---|---|---|
DELETE | Deletes specific rows based on a condition (Delta tables). | DELETE FROM employees WHERE age < 25; |
Note: Like
UPDATE
,DELETE
operations require Delta Lake tables.
Additional Delta Lake Operations for CRUD
Delta Lake tables allow Spark SQL to perform row-level operations typically found in traditional SQL databases:
Command | Description | Example |
---|---|---|
MERGE INTO | Merges updates, inserts, and deletes based on a condition. | MERGE INTO employees AS e USING updates AS u ON e.id = u.id WHEN MATCHED THEN UPDATE SET e.age = u.age WHEN NOT MATCHED THEN INSERT (id, name, age, department) VALUES (u.id, u.name, u.age, u.department); |
Upsert (Insert/Update) | Inserts new records and updates existing ones based on matching criteria (using MERGE ). | Same as the above example using MERGE INTO . |
Example: CRUD Workflow with Delta Lake
Here’s an example of how CRUD operations can be applied in a Delta Lake table:
-- Create Delta Lake table
CREATE TABLE delta.`/path/to/delta/employees` (id INT, name STRING, age INT, department STRING) USING delta;
-- Insert data
INSERT INTO delta.`/path/to/delta/employees` VALUES (1, 'Alice', 30, 'Engineering');
-- Read data
SELECT * FROM delta.`/path/to/delta/employees` WHERE department = 'Engineering';
-- Update data
UPDATE delta.`/path/to/delta/employees` SET age = 31 WHERE id = 1;
-- Delete data
DELETE FROM delta.`/path/to/delta/employees` WHERE age < 25;
These commands provide a comprehensive way to perform CRUD operations in Spark SQL using Delta Lake for full ACID compliance, enabling more robust data management within Spark.
Leave a Reply