区别:
1.不同的客户端可以创建名字相同的临时表而没有冲突
2.一个临时表被创建仅仅在连接期间,当客户端断开连接时自动删掉临时表。
3.一个临时表可以和一个非临时表有同样的名字。
4.一个临时表可以被重新命名只能使用alter而不能使用rename table。
临时表和内存表的区别是,内存表在服务器重启是丢失。
8.3 修改表
在创建表后,修改表增加一列
alter table HeadOfState ADD Inauguration DATE Not NULL;
Describe输出,当你增加一列到一个表,MySQL放置他在所有存在的列,可以使用FIRST或者AFETR+column_name到指定的位置。
8.3.2 修改为存在列
有两种方式:
1.使用MODIFY语句,你必须指定列名。如 alter table headOfState modify ID BIGINT unsigned not null;
2. 使用Change语句,Change语句能够使你来修改列的定义和它的名字。但是改变列是,必须指定原来的表或列两次,如:改变LastName列from CHAR(30) to CHAR(40)没有重新命名指定的:alter table HeadOfState Change LastName CHar(40) not NULL;重新命名列明如下:
alter table HeadOfState Change LastName Surname Char(40) NOT NULL;
8.3.3 重新命名表
1.alter table t1 ranme to t2;
另外的一种方式是rename table t1 to t2;对于临时表rename table不能起到作用必须使用alter
8.3.4 指定多个表的修改
你可以指定多个修改对于一张表使用一个单独altertable语句,使用,分隔。如:
alter table HeadOfState RENAME TO CountryLeader,Modify ID BiGINT unsigned not null,Add Salutation CHAR(30) NULL after FirstName;
8.4 删除表
为了移除不使用drop table t;
drop table t1,t2,t3;
8.5 把一张表设置为空
delete from it;
Truncate table t;
delete from t where status='exipred';