parent
40dd6130d5
commit
e7d5810bd3
2 changed files with 66 additions and 1 deletions
@ -0,0 +1,65 @@ |
|||||||
|
--- |
||||||
|
title: Modifying Tables |
||||||
|
description: Practice modifying table structure using ALTER TABLE statements |
||||||
|
order: 350 |
||||||
|
type: challenge |
||||||
|
setup: | |
||||||
|
```sql |
||||||
|
CREATE TABLE products ( |
||||||
|
id INTEGER, |
||||||
|
product_name VARCHAR(100), |
||||||
|
description TEXT, |
||||||
|
price DECIMAL(10,2), |
||||||
|
stock_quantity INTEGER, |
||||||
|
last_updated TIMESTAMP, |
||||||
|
|
||||||
|
CONSTRAINT pk_products PRIMARY KEY (id), |
||||||
|
CONSTRAINT chk_price CHECK (price > 0), |
||||||
|
CONSTRAINT chk_stock CHECK (stock_quantity >= 0) |
||||||
|
); |
||||||
|
``` |
||||||
|
--- |
||||||
|
|
||||||
|
Given the following `products` table structure: |
||||||
|
|
||||||
|
| Column | Type | Constraints | |
||||||
|
| -------------- | ------------- | --------------------------- | |
||||||
|
| id | INTEGER | PRIMARY KEY | |
||||||
|
| product_name | VARCHAR(100) | | |
||||||
|
| description | TEXT | | |
||||||
|
| price | DECIMAL(10,2) | CHECK (price > 0) | |
||||||
|
| stock_quantity | INTEGER | CHECK (stock_quantity >= 0) | |
||||||
|
| last_updated | TIMESTAMP | | |
||||||
|
|
||||||
|
Write SQL statements to make the following modifications to the table structure: |
||||||
|
|
||||||
|
1. Remove the `description` column as it's no longer needed |
||||||
|
2. Add a new `category` column of type `VARCHAR(50)` that cannot be NULL |
||||||
|
3. Change the data type of `price` to `DECIMAL(12,2)` to allow for higher prices |
||||||
|
4. Remove the constraint named `chk_stock` |
||||||
|
5. Add a new `UNIQUE` constraint on the `product_name` column named `unq_product_name` |
||||||
|
|
||||||
|
## Expected Output |
||||||
|
|
||||||
|
After executing your query, the table should be modified successfully with all specified changes. You can verify the result of your changes under the `Schema` tab. |
||||||
|
|
||||||
|
> Note, click the `Reset` button to reset to initial state if you want to try again. |
||||||
|
|
||||||
|
## Solution |
||||||
|
|
||||||
|
```sql |
||||||
|
-- Remove the description column |
||||||
|
ALTER TABLE products DROP COLUMN description; |
||||||
|
|
||||||
|
-- Add the category column |
||||||
|
ALTER TABLE products ADD COLUMN category VARCHAR(50) NOT NULL DEFAULT 'Uncategorized'; |
||||||
|
|
||||||
|
-- Modify the price column type |
||||||
|
ALTER TABLE products ALTER COLUMN price TYPE DECIMAL(12,2); |
||||||
|
|
||||||
|
-- Remove the stock quantity check constraint |
||||||
|
ALTER TABLE products DROP CONSTRAINT chk_stock; |
||||||
|
|
||||||
|
-- Add unique constraint on product_name |
||||||
|
ALTER TABLE products ADD CONSTRAINT unq_product_name UNIQUE (product_name); |
||||||
|
``` |
@ -1,5 +1,5 @@ |
|||||||
--- |
--- |
||||||
title: Data Analysis Challenge |
title: Sales Data Analysis |
||||||
description: Practice querying temporal data from a bookstore's sales records |
description: Practice querying temporal data from a bookstore's sales records |
||||||
order: 340 |
order: 340 |
||||||
type: challenge |
type: challenge |
Loading…
Reference in new issue