ALTER Table
- Alter table command is used to change the structure of an existing table
    
- To add or delete columns
 - To create or destroy indexes
 - To change the type of existing columns
 - To rename columns or the table itself
 
 
# Create a table "mytable "
CREATE TABLE mytable (
id INT,
name VARCHAR(50)
 );
 # to rename the table : mytable >> table1
 ALTER TABLE mytable RENAME to table1;
 
 # You can also rename as below:  mytable >> table1
 ALTER TABLE mytable RENAME table1;
 
# to change the data type of a column : lets change the data type of id column from INTEGER to TINYINT
ALTER TABLE table1 MODIFY id TINYINT NOT NULL;
# renaming the column name, name to fullname
ALTER TABLE table1 CHANGE name fullname VARCHAR(25);
# Adding a new TimeStamp column : by default it is added as the last column
ALTER TABLE table1 ADD createdon TIMESTAMP;
# adding a new column as the first column 
ALTER TABLE table1
ADD groupid varchar(10)  FIRST;
# adding a new column or columns after a specific column 
ALTER TABLE table1
ADD emailid varchar(50)  AFTER fullname,
ADD city varchar(50)  AFTER emailid;
# in table1 we do not have a primary key so lets make id as a primary key
ALTER TABLE table1
ADD PRIMARY KEY (id);
# dropping a primary key
ALTER TABLE table1
DROP PRIMARY KEY;
#Dropping a column 
ALTER TABLE table1 drop column createdon;
# ALter changing column definition
# To change column ”name” from char(20) to char(40)
ALTER TABLE test MODIFY name CHAR(40);
# To change column ”name”  into ”fname” from char(40) to char (30)
ALTER TABLE test CHANGE name fname char(30);
# To make id NOT NULL with default value
ALTER TABLE test MODIFY id INT NOT NULL DEFAULT 1000;
# Changing column’s default value
ALTER TABLE test ALTER id SET DEFAULT 100;
# To remove default constraint
ALTER TABLE test ALTER id DROP DEFAULT;
Update
- UPDATE statement is used to update columns of existing rows in a table with new values.
 - For a single table, the UPDATE statement updates columns of existing rows in the named table with new values.
 - Specific columns can be modified using the SET clause by supplying new values for that column.
 - The WHERE clause can be used to specify the conditions those identify which rows to update. Without using WHERE clause, all rows are updated.
 - The ORDER BY clause is used to update the order that is already specified.
 - The LIMIT clause specifies a limit on the number of rows that can be updated.
 
Syntax: UPDATE table_name SET columnname=value condition;
MySQL Update Examples
# lets use the classicmodels database and the author table
use classicmodels;
/* this will update the entire column country with a new value Finland however by 
 by default the safe update mode is used and wont update values. If you want you can disable it. */
UPDATE author SET country='Finland'; # this won't work as we have safe update
#the following won't work either as we have multiple records with country UK
UPDATE author SET country='Finland' WHERE country = 'UK'; 
# lets try to limit thr result set to 4
UPDATE author SET country='Finland' WHERE country = 'UK' limit 4;
# lets update Contry for author whose aut_id = 'AUT002'
UPDATE author SET country='Finland' WHERE aut_id = 'AUT002';
#lets feth products from Motorcycles productline.
select * from products;
select productLine, buyPrice from products
where productLine = 'Motorcycles';
#lets increase the buy price by 10%
update products set buyPrice = buyPrice + (0.1*buyPrice) where productLine = 'Motorcycles' ;
#lets add a new column called oldbuyPrice to the table 
alter table products 
add column oldbuyPrice decimal(10,2) 
after  buyPrice;
#lets get the old price to the column 
update products set oldbuyPrice = buyPrice - (0.2*buyPrice) 
where productLine = 'Motorcycles' ;
#lets check the record
select productLine, buyPrice, oldbuyPrice from products
where productLine = 'Motorcycles';
Delete
- The MySQL Delete statement is used to delete data from a table
 
Syntax:
Delete from table_name 
where condition;
# Examples: 
# to delete products 
delete from table1 where id = 1;