oracle ,mysql5.7 数据库表字段添加、修改、删除等DDL操作


oracle ,mysql 5.7 数据库表字段添加、修改、删除等操作

1. 创建表

创建MySQL数据表需要基本要素有:

1. 1,表名

1.2,表字段名

1. 3,定义每个表字段

1.4.创建表单的代码

CREATE TABLE IF NOT EXISTS `dc3688_tbl`(
   `dc3688_id` INT UNSIGNED AUTO_INCREMENT,
   `dc3688_title` VARCHAR(100) default  'www.oceanoemchina.com',
   `dc3688_author` VARCHAR(40) NOT NULL,
   `s_date` DATE,
   PRIMARY KEY ( `dc3688_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

1. 5.表参数说明

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
在这里插入图片描述

AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,在表结尾加 engine=myisam 或 engine=innodb;
或者直接操作:
mysql> alter table table_name engine=myisam;

mysql> alter table table_name engine=innodb;

CHARSET 设置编码。

– Create table

create table TB_PERMISSION_ORGANIZATION
(
  id           VARCHAR2(150) not null,
  parent_id    VARCHAR2(150),
  name         VARCHAR2(200) not null,
  org_code     VARCHAR2(200) not null,
    org_type     NUMBER(2) default 0,
  create_date  date  not null,
  update_date  date  NOT null,
  is_delete    NUMBER default 0 not NULL
);
alter table TB_PERMISSION_ORGANIZATION add constraint PK_TB_PERMISSION_ORGANIZATION primary key (ID);
  alter table TB_PERMISSION_ORGANIZATION  add constraint UNIQUE_ORG_CODE unique (ORG_CODE);
COMMIT;

-- Create table
create table TB_PERMISSION_USER
(
   id             NUMBER(10) not null,
  login_name      VARCHAR2(200) not null,
  password        VARCHAR2(200) not null,
  name            VARCHAR2(50),
  phone           VARCHAR2(20),
  email           VARCHAR2(100),
  address         VARCHAR2(500),
  describe        VARCHAR2(1000), 
  organization_id VARCHAR2(150),
  create_date     date not null,
  update_date     date NOT NULL,
  is_delete       NUMBER default 0 not NULL
);
-- Add comments to the columns 
comment on column TB_PERMISSION_USER.login_name is '登录名称';
comment on column TB_PERMISSION_USER.is_delete is '是否删除0:未删除  1 已删除';
  -- Create/Recreate primary, unique and foreign key constraints 
  alter table TB_PERMISSION_USER add constraint PK_TB_PERMISSION_USER primary key (ID);
  alter table TB_PERMISSION_USER  add constraint UNIQUE_TB_PERMISSION_USER unique (login_NAME);
  alter table TB_PERMISSION_USER add constraint FK_TB_PERMISSION_USER_ORG foreign key (ORGANIZATION_ID)  references TB_PERMISSION_ORGANIZATION (ID) on delete cascade;
  COMMIT;

以 tb_permission_user 表示例,且表里都存在数据。

2. 添加字段

 语法:alter table tablename add (column datatype [default value][null/not null],.);
 说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);
 举例:ALTER TABLE tb_permission_user ADD(english_name Varchar2(100) DEFAULT 'admin' NOT NULL);

3. 删除字段

 语法:alter table tablename drop (column);
 说明:alter table 表名 drop column 字段名;
 举例:ALTER TABLE tb_permission_user DROP COLUMN english_name;

4. 修改字段

4.1. 修改字段名称

** 
语法:alter table tablename rename column name to name1; 
说明:alter table 表名rename column 原字段名 to 更改后的字段名; 
举例:ALTER TABLE tb_permission_user RENAME COLUMN NAME TO ch_name;

4.2. 修改字段类型/长度

语法:alter table tablename modify (column datatype [default value][null/not null],.); 
说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);

表中无数据,则不管改为什么字段类型,均可直接执行 
举例:ALTER TABLE tb_permission_user MODIFY (address VARCHAR2(1000));

5.修改主键-表中存在数据

举例:将tb_permission_user表的主键id(number(10)–>id(varchar2(100)))

5.1 --新增主键临时列id_temp

ALTER TABLE tb_permission_user ADD(id_temp VARCHAR2(100));

5.2 --将原id的值复制到id_temp

UPDATE tb_permission_user SET id_temp = ID;

5.3 --删除原主键id列

ALTER TABLE tb_permission_user DROP COLUMN ID;

5.4 --修改列id_temp为主键id列

ALTER TABLE tb_permission_user RENAME COLUMN id_temp TO ID;

5.5 --添加id原有的主键约束

ALTER TABLE tb_permission_user ADD CONSTRAINT PK_TB_PERMISSION_USER PRIMARY KEY (ID);

猜你喜欢

转载自blog.csdn.net/BIGmustang/article/details/108189507
今日推荐