Oracle(plsql方式)创建表、dblink导表、更改表名 字段名

1、建表:

create table 表名
(
  字段名       类型(常用的有VARCHAR2、NUMBER、DATE)(长度)   是否能为空(必填:not null 非必填 这块就不写)
   aaa          VARCHAR2 (32)                                  not null,

   bbb           NUMBER(2)
);

-- Add comments to the table 
comment on table 表名 is '这个表是干啥的';

-- Add comments to the columns 
comment on column 表名.aaa
  is 'aaa是干啥的';
comment on column 表名.bbb
  is 'bbb是干啥的';

 

2、创建dblink

  • 方式一,在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。

  

create public database link

  link_name connect to scott identified by tiger using 'bylw';

  其中link_name是你创建的dblink名字,bylw是远程数据库的实例名(查询实例名sql语句:select * from v$instance ,查出的数据中INSTANCE_NAME即实例名),scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示

select * from scott.tb_test@to_bylw;
  • 方法二   在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库:
create database link  link_name

  connect to scott identified by tiger

  using '(DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = bylw)

  )

  )';

  第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:  

bylw =

  (DESCRIPTION =

  (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))

  )

  (CONNECT_DATA =

  (SERVER = DEDICATED)

  (SERVICE_NAME = bylw)

  )

)

用dblink进行跨数据库迁移数据

前提目标数据库的目标表和源库的源表 ,表中字段数要一致,否则会报错。

具体实现语句:

insert into 目标库用户名(即登录数据库的用户名).目标表

select  a.* from源库用户名(即登录数据库的用户名).源表@ link_name a;

3、更改表名、字段名

-- 首先方法是使用RENAME关键字:

-- 修改字段名:
alter table 表名 rename column 现列名 to 新列名;

-- 修改表名:
alter table 表名 rename to 新表名

-- 增加字段语法:
alter table tablename add (column datatype [default value][null/not null],….);

-- 说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);

-- 例:
alter table sf_users add (HeadPIC blob);

-- 例:
alter table sf_users add (userName varchar2(30) default '空' not null);

-- 修改字段的语法:
alter table tablename modify (column datatype [default value][null/not null],….);

-- 说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);

-- 例:
alter table sf_InvoiceApply modify (BILLCODE number(4));

-- 删除字段的语法:
alter table tablename drop (column);

-- 说明:alter table 表名 drop column 字段名;

-- 例:
alter table sf_users drop column HeadPIC;

-- 字段的重命名:

-- 说明:alter table 表名 rename  column  列名 to 新列名   (其中:column是关键字)

-- 例:
alter table sf_InvoiceApply rename column PIC to NEWPIC;

-- 表的重命名:

-- 说明:alter table 表名 rename to  新表名

-- 例:
alter table sf_InvoiceApply rename to  sf_New_InvoiceApply;

 

你可能感兴趣的:(数据库杂记,oracle,建表,dblink)