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?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/mysql-exercises/create-table-exercises/create-table-exercise-7.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics