Create a MySQL table named countries and enforce a constraint to allow only entries for Italy, India, and China
MySQL Create Tables: Exercise-7 with Solution
7. Write a MySQL query to create a table named countries including columns country_id, country_name and region_id and make sure that no countries except Italy, India and China will be entered in the table.
Sample Solution:
-- Creating a table named 'countries' if it doesn't already exist to store information about countries
CREATE TABLE IF NOT EXISTS countries(
-- Column to store the two-letter country code
COUNTRY_ID varchar(2),
-- Column to store the name of the country (up to 40 characters)
COUNTRY_NAME varchar(40)
-- CHECK constraint to ensure that the country name is limited to 'Italy', 'India', or 'China'
CHECK(COUNTRY_NAME IN('Italy','India','China')),
-- Column to store the region ID with decimal precision of 10, 0
REGION_ID decimal(10,0)
);
Let execute the above code in MySQL command prompt
Here is the structure of the table:
mysql> DESC countries; +--------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+-------+ | COUNTRY_ID | varchar(2) | YES | | NULL | | | COUNTRY_NAME | varchar(40) | YES | | NULL | | | REGION_ID | decimal(10,0) | YES | | NULL | | +--------------+---------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)
Explanation:
The said MySQL code creates a table named "countries" if it doesn't already exist. The table has three columns:
- COUNTRY_ID: Stores two-letter country codes.
- COUNTRY_NAME: Stores the names of countries (up to 40 characters), and it includes a CHECK constraint to ensure that only specific country names ('Italy', 'India', 'China') are allowed in this column.
- REGION_ID: Stores region IDs with decimal precision of 10, 0.
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a SQL statement to create a table named jobs including columns job_id, job_title, min_salary, max_salary and check whether the max_salary amount exceeding the upper limit 25000.
Next: Write a SQL statement to create a table named job_histry including columns employee_id, start_date, end_date, job_id and department_id and make sure that the value against column end_date will be entered at the time of insertion to the format like '--/--/----'.
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics