arongsoft 发表于 2018-10-6 07:59:24

16.MySQL修改字段与复制表

  修改表ALTER TABLE

[*]  修改表名
  ALTER TABLE 表名
  RENAME 新表名;
[*]  增加字段
  ALTER TABLE 表名
  ADD 字段名数据类型[完整性约束条件…],
  ADD 字段名数据类型[完整性约束条件…];
  ALTER TABLE 表名
  ADD 字段名数据类型[完整性约束条件…] FIRST;
  ALTER TABLE 表名
  ADD 字段名数据类型[完整性约束条件…] AFTER 字段名;
[*]  删除字段
  ALTER TABLE 表名
  DROP 字段名;
[*]修改字段  ALTER TABLE 表名
  MODIFY 字段名数据类型[完整性约束条件…];
  ALTER TABLE 表名
  CHANGE旧字段名新字段名旧数据类型[完整性约束条件…];
  ALTER TABLE 表名
  CHANGE旧字段名新字段名新数据类型[完整性约束条件…];
  示例:

[*]  修改存储引擎

  mysql>>  -> engine=innodb; //engine=myisam|memory|....
[*]添加字段  mysql> create table student10 (id int);

  mysql>>  -> add name varchar(20) not null,
  -> add age int not nulldefault 22;

  mysql>>  -> add stu_num int not null after name; //添加name字段之后

  mysql>>  -> add sex enum('male','female')default 'male' first; //添加到最前面

[*]删除字段
  mysql>>  -> drop sex;

  mysql>>  -> drop mac;

[*]修改字段类型modify
  mysql>>  -> modifyage tinyint not null default 22; //注意保留原有的约束条件

  mysql>>
  -> modify>
[*]增加约束(针对已有的主键增加auto_increment)
  mysql> >  已经是primary key
  ERROR 1068 (42000): Multipleprimary key defined

  mysql>>  Query OK, 0 rows affected (0.01 sec)
  Records: 0 Duplicates: 0 Warnings: 0

[*]  增加复合主键

  mysql>>  -> add primary key(host_ip,port);
[*]  增加主键

  mysql>>  -> add primary key(id);
[*]  增加主键和自动增长

  mysql>>
  -> modify >
[*]  删除主键
  a. 删除自增约束

  mysql>>  b. 删除主键

  mysql>>  -> drop primary key;
  五、复制表
  复制表结构+记录(key不会复制: 主键、外键和索引)
  mysql> create table new_service select * from service;
  只复制表结构
  mysql>create table new1_service select * from servicewhere 1=2; //条件为假,查不到任何记
  录
  复制表结构,包括Key
  mysql> create table t4 like employees;
  六、删除表
  DROP TABLE 表名;

页: [1]
查看完整版本: 16.MySQL修改字段与复制表