Added mysql connectivity.
This commit is contained in:
parent
51a7f8cb49
commit
bc04babb8d
102
Practical/Practical Exam/Connectivity/C2 - MySQL Connectivity.md
Normal file
102
Practical/Practical Exam/Connectivity/C2 - MySQL Connectivity.md
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
# C1 - MySQL Connectivity
|
||||||
|
|
||||||
|
**Problem Statement:** Implement MYSQL/Oracle database connectivity with PHP /python /Java Implement Database navigation operations (add, delete, edit,).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Pre-requisites (with installation command for Ubuntu):
|
||||||
|
|
||||||
|
1. Python3 - `sudo apt install python3`
|
||||||
|
2. pip - `sudo apt install pip`
|
||||||
|
3. mysql-connector - `pip3 install mysql-connector` OR `pip3 install mysql-connector --break-system-packages` (installs it system-wide)
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
1. First, open the Terminal and log in to MySQL:
|
||||||
|
```shell
|
||||||
|
mysql -u root -p
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> Usually the password in our labs is `root`. If you don't know the password, try running `sudo mysql`. This will run the `mysql` command as root.
|
||||||
|
|
||||||
|
2. Whether you logged in as root or not, run this command to set the password for `root` user in mysql which is required for connecting to the database:
|
||||||
|
```sql
|
||||||
|
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Now, in MySQL we need to initialize the database and tables:
|
||||||
|
```sql
|
||||||
|
-- Creating the database
|
||||||
|
CREATE DATABASE connectMe;
|
||||||
|
USE connectMe;
|
||||||
|
|
||||||
|
-- Creating a table
|
||||||
|
CREATE TABLE students (
|
||||||
|
roll INT,
|
||||||
|
name VARCHAR(255)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Exit
|
||||||
|
exit
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
> We need to `exit` from MySQL shell since the work there is done for now.
|
||||||
|
|
||||||
|
5. Create a new file `connectSQL.py` with the following contents:
|
||||||
|
```python
|
||||||
|
import mysql.connector
|
||||||
|
# Connecting to MySQL database
|
||||||
|
db = mysql.connector.connect(
|
||||||
|
host="localhost",
|
||||||
|
user="root",
|
||||||
|
password="root", # Password of root user we set in step 2
|
||||||
|
database="connectMe" # Name of the database we created in step 3
|
||||||
|
)
|
||||||
|
|
||||||
|
Cursor = db.cursor()
|
||||||
|
|
||||||
|
sqlInsert = "INSERT INTO students (roll, name) VALUES (21, 'Stewie')" # insert operation
|
||||||
|
Cursor.execute(sqlInsert)
|
||||||
|
print(Cursor.rowcount, "record added to database.")
|
||||||
|
|
||||||
|
Cursor.execute(sqlInsert)
|
||||||
|
sqlInsert = "INSERT INTO students (roll, name) VALUES (22, 'Foxy')" # insert operation
|
||||||
|
print(Cursor.rowcount, "record added to database.")
|
||||||
|
|
||||||
|
sqlUpdate = "UPDATE students SET roll = 21 WHERE roll = 20"
|
||||||
|
Cursor.execute(sqlUpdate)
|
||||||
|
print(Cursor.rowcount, "record updated.")
|
||||||
|
|
||||||
|
sqlDelete = "DELETE FROM students WHERE roll = 20"
|
||||||
|
Cursor.execute(sqlDelete)
|
||||||
|
print(Cursor.rowcount, "record deleted.")
|
||||||
|
|
||||||
|
db.commit()
|
||||||
|
Cursor.close()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Open Terminal and run the above program:
|
||||||
|
```shell
|
||||||
|
python3 connectSQL.py
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This step assume you have stored the file in home directory or you know how to change the current working directory.
|
||||||
|
|
||||||
|
7. That's it! You can view the changes in MySQL by logging in using `mysql -u root -p` (Password: `root`) and viewing the table:
|
||||||
|
```sql
|
||||||
|
USE connectMe;
|
||||||
|
SELECT * FROM students;
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Never use `root` as password in production. Use a strong password. This guide uses `root` as password for simplicity and educational purposes.
|
||||||
|
|
||||||
|
---
|
@ -10,7 +10,7 @@ This folder contains all the problem statements expected for practical examinati
|
|||||||
- [SQL](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/SQL) // 9 problem statements
|
- [SQL](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/SQL) // 9 problem statements
|
||||||
- [PL-SQL](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/PL-SQL) // 10 problem statements
|
- [PL-SQL](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/PL-SQL) // 10 problem statements
|
||||||
- [MongoDB](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/MongoDB) // 6 problem statements
|
- [MongoDB](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/MongoDB) // 6 problem statements
|
||||||
- [Connectivity]() // coming soon
|
- [Connectivity](https://git.kska.io/sppu-te-comp-content/DatabaseManagementSystems/src/branch/main/Practical/Practical%20Exam/Connectivity) // 2 problem statements
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user