CREATE TABLE STATEMENT
1. Write a SQL statement to create a simple table countries
including columns country_id,country_name and region_id.
CREATE TABLE countries(
COUNTRY_ID varchar(2),
COUNTRY_NAME varchar(40),
REGION_ID decimal(10,0)
);
2. Write a SQL statement to create a simple table countries
including columns country_id,country_name and region_id
which is already exists. CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID varchar(2),
COUNTRY_NAME varchar(40),
REGION_ID decimal(10,0)
);
3. Write a SQL statement to create the structure of a table
dup_countries similar to countries.
CREATE TABLE IF NOT EXISTS dup_countries
LIKE countries;
4. Write a SQL statement to create a duplicate copy of
countries table including structure and data by name
dup_countries
: CREATE TABLE IF NOT EXISTS dup_countries
AS SELECT * FROM countries;
5. Write a SQL statement to create a table countries set a
constraint NULL.
: CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID varchar(2) NOT NULL,
COUNTRY_NAME varchar(40) NOT NULL,
REGION_ID decimal(10,0) NOT NULL
);
6. 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.
: CREATE TABLE IF NOT EXISTS jobs (
JOB_ID varchar(10) NOT NULL ,
JOB_TITLE varchar(35) NOT NULL,
MIN_SALARY decimal(6,0),
MAX_SALARY decimal(6,0)
CHECK(MAX_SALARY<=25000)
);
7. Write a SQL statement 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.
:
CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID varchar(2),
COUNTRY_NAME varchar(40)
CHECK(COUNTRY_NAME IN('Italy','India','China')) ,
REGION_ID decimal(10,0)
);
8. 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 '--/--/----'.
: CREATE TABLE IF NOT EXISTS job_history (
EMPLOYEE_ID decimal(6,0) NOT NULL,
START_DATE date NOT NULL,
END_DATE date NOT NULL
CHECK (END_DATE LIKE '--/--/----'),
JOB_ID varchar(10) NOT NULL,
DEPARTMENT_ID decimal(4,0) NOT NULL
);
9. Write a SQL statement to create a table named countries
including columns country_id,country_name and region_id
and make sure that no duplicate data against column
country_id will be allowed at the time of insertion.
: CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID varchar(2) NOT NULL,
COUNTRY_NAME varchar(40) NOT NULL,
REGION_ID decimal(10,0) NOT NULL,
UNIQUE(COUNTRY_ID)
);
10. Write a SQL statement to create a table named jobs
including columns job_id, job_title, min_salary and
max_salary, and make sure that, the default value for
job_title is blank and min_salary is 8000 and max_salary is
NULL will be entered automatically at the time of insertion
if no value assigned for the specified columns.
: CREATE TABLE IF NOT EXISTS jobs (
JOB_ID varchar(10) NOT NULL UNIQUE,
JOB_TITLE varchar(35) NOT NULL DEFAULT ' ',
MIN_SALARY decimal(6,0) DEFAULT 8000,
MAX_SALARY decimal(6,0) DEFAULT NULL
);
11. Write a SQL statement to create a table named
countries including columns country_id, country_name and
region_id and make sure that the country_id column will be
a key field which will not contain any duplicate data at the
time of insertion.
: CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID varchar(2) NOT NULL UNIQUE PRIMARY KEY,
COUNTRY_NAME varchar(40) NOT NULL,
REGION_ID decimal(10,0) NOT NULL
);
12. Write a SQL statement to create a table countries
including columns country_id, country_name and region_id
and make sure that the column country_id will be unique
and store an auto incremented value.
: CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID integer NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,
COUNTRY_NAME varchar(40) NOT NULL,
REGION_ID decimal(10,0) NOT NULL
);
13. Write a SQL statement to create a table countries
including columns country_id, country_name and region_id
and make sure that the combination of columns country_id
and region_id will be unique.
: CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID varchar(2) NOT NULL UNIQUE DEFAULT '',
COUNTRY_NAME varchar(40) DEFAULT NULL,
REGION_ID decimal(10,0) NOT NULL,
PRIMARY KEY (COUNTRY_ID,REGION_ID));
14. Write a SQL statement to create a table job_history
including columns employee_id, start_date, end_date, job_id
and department_id and make sure that, the employee_id
column does not contain any duplicate value at the time of
insertion and the foreign key column job_id contain only
those values which are exists in the jobs table.
: CREATE TABLE job_history (
EMPLOYEE_ID decimal(6,0) NOT NULL PRIMARY KEY,
START_DATE date NOT NULL,
END_DATE date NOT NULL,
JOB_ID varchar(10) NOT NULL,
DEPARTMENT_ID decimal(4,0) DEFAULT NULL,
FOREIGN KEY (job_id) REFERENCES jobs(job_id)
)ENGINE=InnoDB;
15. Write a SQL statement to create a table employees
including columns employee_id, first_name, last_name,
email, phone_number hire_date, job_id, salary, commission,
manager_id and department_id and make sure that, the
employee_id column does not contain any duplicate value at
the time of insertion and the foreign key columns combined
by department_id and manager_id columns contain only
those unique combination values, which combinations are
exists in the departments table.
: CREATE TABLE IF NOT EXISTS employees (
EMPLOYEE_ID decimal(6,0) NOT NULL PRIMARY KEY,
FIRST_NAME varchar(20) DEFAULT NULL,
LAST_NAME varchar(25) NOT NULL,
EMAIL varchar(25) NOT NULL,
PHONE_NUMBER varchar(20) DEFAULT NULL,
HIRE_DATE date NOT NULL,
JOB_ID varchar(10) NOT NULL,
SALARY decimal(8,2) DEFAULT NULL,
COMMISSION_PCT decimal(2,2) DEFAULT NULL,
MANAGER_ID decimal(6,0) DEFAULT NULL,
DEPARTMENT_ID decimal(4,0) DEFAULT NULL,
FOREIGN KEY(DEPARTMENT_ID,MANAGER_ID)
REFERENCES departments(DEPARTMENT_ID,MANAGER_ID)
)ENGINE=InnoDB;
INSERT TABLE EXERCISE
Act 2
1. Write a SQL statement to insert a record with your own
value into the table countries against each columns.
: Here in the following is the structure of the table 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 | |
+--------------+---------------+------+-----+---------+-------+
INSERT INTO countries VALUES('C1','India',1001);
2. Write a SQL statement to insert one row into the table
countries against the column country_id and
country_name.
:
Here in the following is the structure of the table 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 | |
+--------------+---------------+------+-----+---------+-------+
INSERT INTO countries (country_id,country_name)
VALUES('C1','India');
3. Write a SQL statement to create duplicate of countries
table named country_new with all structure and data.
: Here in the following is the structure of the table 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 | |
+--------------+---------------+------+-----+---------+-------
CREATE TABLE IF NOT EXISTS country_new
AS SELECT * FROM countries;
4. Write a SQL statement to insert NULL values against
region_id column for a row of countries table.
: INSERT INTO countries (country_id,country_name,region_id)
VALUES('C1','India',NULL);
5. Write a SQL statement to insert 3 rows by a single insert
statement.
: INSERT INTO countries VALUES('C0001','India',1001),
('C0002','USA',1007),('C0003','UK',1003);
6. Write a SQL statement insert rows from country_new
table to countries table.
: Here is the rows for country_new table. Assume that, the
countries table is empty.
+------------+--------------+-----------+
| COUNTRY_ID | COUNTRY_NAME | REGION_ID |
+------------+--------------+-----------+
| C0001 | India | 1001 |
| C0002 | USA | 1007 |
| C0003 | UK | 1003 |
+------------+--------------+-----------+
INSERT INTO countries
SELECT * FROM country_new;
7. Write a SQL statement to insert one row in jobs table to
ensure that no duplicate value will be entered in the
job_id column.
: Create the table jobs.
CREATE TABLE IF NOT EXISTS jobs (
JOB_ID integer NOT NULL UNIQUE ,
JOB_TITLE varchar(35) NOT NULL,
MIN_SALARY decimal(6,0)
);
: INSERT INTO jobs VALUES(1001,'OFFICER',8000);
8. Write a SQL statement to insert one row in jobs table to
ensure that no duplicate value will be entered in the
job_id column.
: Create the table jobs.
CREATE TABLE IF NOT EXISTS jobs (
JOB_ID integer NOT NULL UNIQUE PRIMARY KEY,
JOB_TITLE varchar(35) NOT NULL,
MIN_SALARY decimal(6,0)
);
INSERT INTO jobs VALUES(1001,'OFFICER',8000);
mysql> SELECT * FROM jobs;
+--------+-----------+------------+
| JOB_ID | JOB_TITLE | MIN_SALARY |
+--------+-----------+------------+
| 1001 | OFFICER | 8000 |
+--------+-----------+------------+
INSERT INTO jobs VALUES(1001,'OFFICER',8000);
9. Write a SQL statement to insert a record into the table
countries to ensure that, a country_id and region_id
combination will be entered once in the table.
: CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID integer NOT NULL,
COUNTRY_NAME varchar(40) NOT NULL,
REGION_ID integer NOT NULL,
PRIMARY KEY (COUNTRY_ID,REGION_ID)
);
INSERT INTO countries VALUES(501,'Italy',185);
10. Write a SQL statement to insert rows into the table
countries in which the value of country_id column will be
unique and auto incremented.
: Create the table countries.
CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
COUNTRY_NAME varchar(40) NOT NULL,
REGION_ID integer NOT NULL
);
INSERT INTO countries(COUNTRY_NAME,REGION_ID) VALUES('India',185);
11. Write a SQL statement to insert records into the table
countries to ensure that the country_id column will not
contain any duplicate data and this will be automatically
incremented and the column country_name will be filled
up by 'N/A' if no value assigned for that column.
: Create the table countries.
CREATE TABLE IF NOT EXISTS countries (
COUNTRY_ID integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
COUNTRY_NAME varchar(40) NOT NULL DEFAULT 'N/A',
REGION_ID integer NOT NULL
);
INSERT INTO countries VALUES(501,'India',102);
12. Write a SQL statement to insert rows in the job_history
table in which one column job_id is containing those
values which are exists in job_id column of jobs table.
: Sample table jobs.
CREATE TABLE IF NOT EXISTS jobs (
JOB_ID integer NOT NULL UNIQUE PRIMARY KEY,
JOB_TITLE varchar(35) NOT NULL DEFAULT ' ',
MIN_SALARY decimal(6,0) DEFAULT 8000,
MAX_SALARY decimal(6,0) DEFAULT 20000
)ENGINE=InnoDB;
INSERT INTO job_history VALUES(501,1001,60);
13. Write a SQL statement to insert rows into the table
employees in which a set of columns department_id and
manager_id contains a unique value and that combined
values must have exists into the table departments.
: Sample table departments.
CREATE TABLE IF NOT EXISTS departments (
DEPARTMENT_ID integer NOT NULL UNIQUE,
DEPARTMENT_NAME varchar(30) NOT NULL,
MANAGER_ID integer DEFAULT NULL,
LOCATION_ID integer DEFAULT NULL,
PRIMARY KEY (DEPARTMENT_ID,MANAGER_ID)
)ENGINE=InnoDB;
Sample table employees.
CREATE TABLE IF NOT EXISTS employees (
EMPLOYEE_ID integer NOT NULL PRIMARY KEY,
FIRST_NAME varchar(20) DEFAULT NULL,
LAST_NAME varchar(25) NOT NULL,
JOB_ID varchar(10) NOT NULL,
SALARY decimal(8,2) DEFAULT NULL,
MANAGER_ID integer DEFAULT NULL,
DEPARTMENT_ID integer DEFAULT NULL,
FOREIGN KEY(DEPARTMENT_ID,MANAGER_ID)
REFERENCES departments(DEPARTMENT_ID,MANAGER_ID)
)ENGINE=InnoDB;
INSERT INTO employees VALUES(510,'Alex','Hanes','CLERK',18000,201,60);
INSERT INTO employees VALUES(511,'Kim','Leon','CLERK',18000,211,80);
14. Write a SQL statement to insert rows into the table
employees in which a set of columns department_id and
job_id contains the values which must have exists into
the table departments and jobs.
: INSERT INTO employees VALUES(510,'Alex','Hanes',60,1001,18000);
15.