mysql对表的修改_复制与删除.doc_第1页
mysql对表的修改_复制与删除.doc_第2页
mysql对表的修改_复制与删除.doc_第3页
mysql对表的修改_复制与删除.doc_第4页
mysql对表的修改_复制与删除.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mysql对表的修改,复制与删除MySQL表的复制创建表的副本:创建一个完全和上表表结构一样,数据也一样的新表,即直接复制原表的表结构可以用如下语句/*用子查询,创建表,表的结构呢完全和nickname一致,并且数据也相同*/create table new_nickname select * from nickname;只创建含有特定字段的表副本:有的时候呢,我需要一个新表,只需要有昵称表的name与desc两个字段即可,不需要id字段,同样使用子查询,不过不再是select * 而是直接select 想要的字段即可/*因为只想要name和desc字段,所以我只查询原表的这两个字段即可*/create table new_nickname select name, desc from nickname;只创建含有约束条件的值的表副本:比如说,突然间我只想要那个id 3的昵称表的所有数据咋办呢?(我不是 矫情啊,是为了举例啊!)这个时候,我们就需要为子查询加上条件限制,where 语句大家没有忘吧?/*限定条件,只要id3的数据*/create table new_nickname select * from nickname where id 3;只复制表结构,咱爷们不要表数据:有的时候呢,我只想复制旧表的表结构,至于里面的数据呢?已经old了,我是不想要的,即我只想复制一个表的表结构,这个时候咋办呢?别怕,我教你三种方法,均可解决此问题。/*和上面复制特定数据一样,只不过呢,咱这个条件弄个恶心点的,当0=1的时候我才要你的数据,显然不会复制任何数据了*/create table new_nickname select * from nickname where 0 = 1;上面的方法是取巧,因为没有合格的数据符合限制条件,所以被复制的当然只有表结构了。另外MySQL提供了一个现成的语法,那就是:create table new_table_name like old_table_name;/*应用create table like 语法,只复制表结构*/create table new_nickname like nickname;第三种方法就是用咱们之前取过外键key_id的方法,显示创建表时的SQL语句然后复制,显示建表语句的方法为:show create table table_name;复制旧表部分结构,同时增加新字段:人都要创新嘛,社会在进步,如果还停留不前的话是会淘汰的,所以咱也不能单纯的复制,也要有点自己的个性,在我的地盘听我的嘛。比如说复制昵称表的同时呢,我要创建一个新的字段,就是昵称创建日期字段。嗯。/*咱也个性点,新字段咋的也得先声明一下,再复制想要的那部分字段,嘿嘿*/create table new_nickname (create_time date not null, status enum(1,2) select name, desc from nickname;MySQL表的修改修改表结构语法:ALTER IGNORE TABLE tbl_name alter_spec , alter_spec .alter_specification:ADD COLUMN create_definition FIRST | AFTER column_name or ADD INDEX index_name (index_col_name,.)or ADD PRIMARY KEY (index_col_name,.)or ADD UNIQUE index_name (index_col_name,.)or ALTER COLUMN col_name SET DEFAULT literal | DROP DEFAULTor CHANGE COLUMN old_col_name create_definitionor MODIFY COLUMN create_definitionor DROP COLUMN col_nameor DROP PRIMARY KEYor DROP INDEX index_nameor RENAME AS new_tbl_nameor table_optionsMySQL可以使用ALTER TABLE 语法来更改已存在的表,它允许在不重建整个表的情况下,添加删除或者修改表字段。其完整结构为:ALTER TABLE table-name (action field-definition, action field-definition, .);这里面的action包括关键字:ADD,DROP,ALTER或者是CHANGE中的任何一个,而且后面跟的是与创建表CREATE TABLE命令使用的相同的字段定义。这个定义包含要修改的字段的名字和由新字段名字、类型和约束组成的字段定义。向表中添加新字段:这回咱也不复制表了,搞的那么郁闷干什么?咱直接在昵称表上面更改,为昵称表添加新的字段创建时间create_time/*我相信不用我说您也知道应该用上面说的action中的ADD,嗯,都是联明的孩子啊*/alter table nickname add create_time date not null ;为表添加主键:咱可不是仅能改表的字段描述,添加新字段啥的。咱还能为表添加主键及索引。不信咱就试一下,将昵称表的id添加为主键。/*主键的描述是PRIMARY KEY*/alter table nickname add primary key (id);修改字段名及类型:把昵称表的字段name改为nick_name,嗯,说干咱就干。该出手时咱就得出手不是?要不软柿子都让别人捏走了。alter table nick_name change name nick_name varchar(255);在修改字段类型时,MySQL允许使用modify关键字来替换change。二者惟一的区别就是change需要同时指定新字段与旧字段的名字,而modify因为只能用在修改字段类型上,而不能改变字段名字,所以自然就没有新字段名称这一概念/*将nick_name表中的id由原来的int(3)改为bigint(18)*/alter table nick_name change id id bigint(18) auto_increment unique;alter table nick_name modify id bigint(18) auto_increment unique;删除字段:呃,本来字段就不多,行啊,为了日志,删除id吧。嗯。/*聪明 的孩子这回都知道action应该选择DROP 了*/alter table nick_name drop id;给表重命名:把昵称表的名字改为new_nickname,重命名表的名字,MySQL提供了一个方法RENAME TO,有两种用法,注意看示例alter table nick_name rename to new_nickname;rename table nick_name to new_nickname;给表增加外键:MySQL提供了一种给表增加外键的语法:ADD FOREIGN KEY/*把nick_name表中的name添加为外键,外键参照于user表*/alter tabgle nick_name add foreign key (name ) references users (user_name) on delete cascade on update cascade;更改表类型:前面的日志介绍了MySQL表的不同表类型,并简单谈了一下它们的区别,及何时应用哪种格式,现在让我们来看一下,如果不小心选错了MySQL的表类型,如何更改/*将nick_name表类型由InnoDB改为MyISAM*/alter table nick_name type = myisam;为字段设置或删除默认值:表字段是可以设置默认值的,那么如何更改呢?假设我要把nick_name的desc设默认值为“丫头,我爱你”咋办呢?MySQL提供了设置和删除默认值的方法:SET DEFAULT 和 DROP DEFAULT,还有在我新增加字段的时候,比如我增加create_time字段,我想把这个字段放在name字段的后面咋办?MySQL提供给我们FIRST和AFTER子句控制字段的位置。/*为表增加默认值*/alter table nick_name alter desc set default = 丫头,我爱你;/*为表删除默认值*/alter table nick_name alter desc drop default;/*将create_time字段放在name后面*/alter talbe nick_name add create_time datetime after name;/*将creat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论