Table can be created using create statement. We can create table using following statement like
create table employee (id int(11) not null auto_increment primary key, name varchar(255));
But sometime we need to create a new table based on the content of old table. We use following statement to create new tables based on old tables.
Table can be created using create statement. We can create table using following statement like
create table employee (id int(11) not null auto_increment primary key, name varchar(255));
But sometime we need to create a new table based on the content of old table. We use following statement to create new tables based on old tables.
Syntax
create table employee_new like employee
Explanation:
It will create an empty table with same structure as old table. Here it will create a table employee_new having same columns as employee. It will copy indexes from old table to new table as well. create table statement with 'Like' works with table only not for views.
Syntax
create table employee_new as select * from employee
CREATE table employee_new SELECT * FROM employee
CREATE table employee_new (SELECT * FROM employee)
Explanation:
It will create a new table, employee_new with both structure and content of old table, employee. It will not copy indexes from old table
Syntax
Create table employee_new (select a,b from employee);
Explanation:
It will create a new table employee_new having two columns as 'a' and 'b'. It will copy structure as well as data from table employee.
Syntax
Create table employee_new (userName varchar(255)) select * from employee
Explanation:
It will create a new table employee_new, having structure and data same as old table employee. In addition to data and structure of old table it will have additional column 'userName'. If same name present in new column name and in old table, then it uses content of old tables. Currently if userName exists in employee table, it will use content of employee table only. It will not copy indexes from old table
Syntax
create table employee_new as select * from employee where id<300
create table employee_new select * from employee where id<300
CREATE table employee_new (SELECT * FROM employee where id<300)
Explanation:
It will create a table a new table having same column name and data of old table employee with records using condition having id less than 300. It will not copy indexes from old table
Syntax
CREATE table employee_new (SELECT em.id,em.name,lc.place FROM employee em, location lc where em.id=lc.emp_id)
Explanation:
It will create a new table employee_new having two columns from employee table and one column from location table. It will not copy indexes from old table