w3resource

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?



Follow us on Facebook and Twitter for latest update.