mysql_guide
mysql_guide
Database Management
Show databases:
```sql
SHOW DATABASES;
```
Use a database:
```sql
USE mini_ecommerce;
```
2. Table Management
Creating a Table
Altering a Table
- Modify a column:
```sql
ALTER TABLE products MODIFY COLUMN price DECIMAL(12, 2);
```
- Drop a column:
```sql
ALTER TABLE products DROP COLUMN category;
```
Dropping a Table
```sql
DROP TABLE products;
```
3. Data Manipulation
Inserting Data
- Add a product:
```sql
INSERT INTO products (name, price, stock)
VALUES ('Cool T-Shirt', 19.99, 50);
```
- Multiple rows:
```sql
INSERT INTO products (name, price, stock)
VALUES ('Jeans', 49.99, 30), ('Sneakers', 79.99, 20);
```
Querying Data
- All products:
```sql
SELECT * FROM products;
```
- Specific columns:
```sql
SELECT name, price FROM products;
```
- With conditions:
```sql
SELECT * FROM products WHERE stock > 10;
```
- Sorted:
```sql
SELECT * FROM products ORDER BY price DESC;
```
- Limited:
```sql
SELECT * FROM products LIMIT 2;
```
Updating Data
- Update stock:
```sql
UPDATE products SET stock = 45 WHERE name = 'Cool T-Shirt';
```
Deleting Data
- Delete a product:
```sql
DELETE FROM products WHERE id = 1;
```
- Clear table:
```sql
TRUNCATE TABLE products;
```
4. User Management
Creating a User
- Grant privileges:
```sql
GRANT ALL PRIVILEGES ON mini_ecommerce.* TO 'simoxdev'@'localhost';
FLUSH PRIVILEGES;
```
- Dropping a User
```sql
DROP USER 'simoxdev'@'localhost';
```
5. Stored Procedures
Calling a Procedure
```sql
CALL UpdateStock(1, 5);
```
Dropping a Procedure
```sql
DROP PROCEDURE UpdateStock;
```
6. Functions
Using a Function
```sql
SELECT name, GetDiscountedPrice(price, 20) AS discounted_price
FROM products;
```
Dropping a Function
```sql
DROP FUNCTION GetDiscountedPrice;
```
- Creating an Index
```sql
CREATE INDEX idx_name ON products(name);
```
- Dropping an Index
```sql
DROP INDEX idx_name ON products;
```
8. Joins
9. Transactions
```sql
START TRANSACTION;
INSERT INTO orders (product_id, quantity) VALUES (1, 3);
CALL UpdateStock(1, 3);
COMMIT; -- Or ROLLBACK if something fails
```
- Backup
```bash
mysqldump -u root -p mini_ecommerce > mini_ecommerce_backup.sql
```
- Restore
```bash
mysql -u root -p mini_ecommerce < mini_ecommerce_backup.sql
```