MySQL LAB
MySQL LAB
Date:
Aim:
To demonstrate the functionality of the MySQL MERGE storage engine by creating and
manipulating tables that combine data from multiple MyISAM tables.
Procedures and Commands:
1. Create a new MyISAM table called t1:
sql
CREATE TABLE t1(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
) ENGINE=MyISAM;
2. Create another MyISAM table called t2 with identical columns and data types:
sql
CREATE TABLE t2(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
) ENGINE=MyISAM;
3. Insert rows into the t1 and t2 tables:
sql
INSERT INTO t1(name) VALUES('John');
INSERT INTO t1(name) VALUES('Jane');
INSERT INTO t2(name) VALUES('Bob');
INSERT INTO t2(name) VALUES('Alice');
4. Create a MERGE table that includes the MyISAM tables t1 and t2:
sql
CREATE TABLE t(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
) ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;
5. Query data from the MERGE table:
sql
SELECT id, name FROM t;
6. Insert a new row into the MERGE table:
sql
INSERT INTO t(name) VALUES("Peter");
a. Note: The storage engine inserts the row into the t2 table because
INSERT_METHOD is set to LAST.
7. Query data from the t2 table to verify the insertion:
sql
SELECT * FROM t2;
8. Delete a row from the MERGE table with id of 2:
sql
DELETE FROM t WHERE id = 2;
a. Initially, this deletes from t1.
9. Query data from t1 to check the deletion:
sql
SELECT * FROM t1;
10. Delete another row with id 2 from t2:
sql
DELETE FROM t WHERE id = 2;
11. Query data from t2 to confirm the deletion:
sql
SELECT * FROM t2;
Output:
After querying the MERGE table (Step 5): After inserting "Peter" into the MERGE table
(Step 7):
+----+-------+
| id | name | +----+-------+
+----+-------+ | id | name |
| 1 | John | +----+-------+
| 2 | Jane | | 1 | Bob |
| 1 | Bob | | 2 | Alice |
| 2 | Alice | | 3 | Peter |
+----+-------+ +----+-------+
4 rows in set (0.00 sec) 3 rows in set (0.00 sec)
After deleting id 2 from t1 (Step 8): After second deletion of id 2 from t2 (Step 9):
+----+------+ +----+-------+
| id | name | | id | name |
+----+------+ +----+-------+
| 1 | John | | 1 | Bob |
+----+------+ | 3 | Peter |
1 row in set (0.00 sec) +----+-------+
2 rows in set (0.00 sec)
Experiment No: MySQL MEMORY storage engine
02
Date:
Aim:
To demonstrate the use of the MySQL MEMORY storage engine by creating a table, inserting
data into it, and querying the data, highlighting the temporary nature of this storage engine.
Procedures and Commands:
1. Creating a MEMORY table:
sql
CREATE TABLE caches (
id INT
) ENGINE = MEMORY;
o The caches table is created with one column id of type INT using the MEMORY
storage engine.
2. Insert data into a MEMORY table:
sql
INSERT INTO caches(id) VALUES (1), (2), (3);
o Three rows are inserted into the caches table.
+------+
| id |
+------+
|1 |
|2 |
|3 |
+------+
3 rows in set (0.00 sec)
Experiment No: 03 Using the SHOW GRANTS statement to display the privileges granted
Date: to a user
Aim:
To illustrate how to create a database, user, table, and manage user privileges using MySQL,
specifically demonstrating the use of the SHOW GRANTS statement.
Procedures and Commands:
1. Create a new database named vehicles:
sql
CREATE DATABASE vehicles;
2. Select the vehicles database:
sql
USE vehicles;
3. Create a new table called cars in the vehicles database:
sql
CREATE TABLE cars (
id INT AUTO_INCREMENT,
make VARCHAR(100) NOT NULL,
model VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
4. Create a new user called musk@localhost:
sql
CREATE USER musk@localhost IDENTIFIED BY 'Super1Pass!';
5. Show the default privileges granted to the user musk@localhost:
sql
SHOW GRANTS FOR musk@localhost;
o The output here would show GRANT USAGE ON *.* TO 'musk'@'localhost',
indicating no privileges are granted by default.
6. Grant all privileges on the vehicles database to the user musk@localhost:
sql
GRANT ALL ON vehicles.* TO musk@localhost;
7. Show the updated privileges granted to the user musk@localhost:
sql
SHOW GRANTS FOR musk@localhost;
Output:
+--------------------------------------------------------------------------+
| Grants for musk@localhost |
+--------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'musk'@'localhost' |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)
+--------------------------------------------------------------------------+
| Grants for musk@localhost |
+--------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'musk'@'localhost' |
| GRANT ALL PRIVILEGES ON `vehicles`.* TO 'musk'@'localhost' |
+--------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Experiment No: 04 Using the SHOW GRANTS statement to display the privileges granted
Date: for a role
Aim:
To demonstrate how to create a role, assign privileges to it, and use the SHOW GRANTS
statement to display those privileges in MySQL.
3. Grant SELECT, INSERT, UPDATE, and DELETE privileges on the vehicles database to the
writer@localhost:
sql
GRANT SELECT, INSERT, UPDATE, DELETE ON vehicles.* TO writer@localhost;
4. Show privileges granted for the role writer@localhost
sql
SHOW GRANTS FOR writer@localhost;
Output:
+--------------------------------------------------------------------------+
| Grants for writer@localhost |
+--------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'writer'@'localhost' |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)
+--------------------------------------------------------------------------+
| Grants for writer@localhost |
+--------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'writer'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `vehicles`.* TO 'writer'@'localhost' |
+--------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Experiment No: The mysqladmin common command
05
Date:
Aim:
To demonstrate various administrative tasks using the mysqladmin command-line tool in
MySQL.
Procedures and Commands:
1. Checking MySQL Server Status:
sql:
mysqladmin status
Output:
Uptime: 83279 Threads: 2 Questions: 3162 Slow queries: 0 Opens: 396 Flush tables: 3
Open tables: 265 Queries per second avg: 0.037
3. Deleting a Database:
sql:
mysqladmin drop sample
o Before deletion, it prompts:
Dropping the database is potentially a very bad thing to do. Any data stored in the database will
be destroyed. Do you really want to drop the 'sample' database [y/N]
o Confirm with 'Y' to proceed or 'N' to cancel.
o +----+-----------------+-----------------+----+---------+-------+------------------------
+------------------+
o | Id | User | Host | db | Command | Time | State | Info |
o +----+-----------------+-----------------+----+---------+-------+------------------------
+------------------+
o | 5 | event_scheduler | localhost | | Daemon | 84165 | Waiting on empty queue |
|
o | 41 | root | localhost:61467 | | Query | 0 | init | show processlist |
+----+-----------------+-----------------+----+---------+-------+------------------------+------------------+
9. Shutting down the MySQL Server:
sql:
mysqladmin shutdown
o Gracefully shuts down the MySQL server.