工作时常用到的DB2、Oracle命令(持续更新)

只是在工作中常用的一些命令、语句。

 

DB2常用命令

1打开命令行窗口
  #db2cmd

2启动数据库实例
  #db2start

3停止数据库实例
  #db2stop

4连接到数据库
  #db2 connect to [dbname] user [username] using [password]
5 断开数据库连接
  #db2 connect reset
6列出所有数据库
 #db2 list db directory

7删除数据库
  #db2 drop database [dbname]
(执行此操作要小心)

8列出所有用户表
  #db2 list tables
9列出所有系统表
 #db2 list tables for system
10列出所有表
  #db2 list tables for all
11 列出系统表
  #db2 list tables for system
12列出用户表
  #db2 list tables for user
13列出特定用户表
  #db2 list tables for schema [user]
14创建一个与数据库中某个表(t2)结构相同的新表(t1)
  #db2 create table t1 like t2
15 将一个表t1的数据导入到另一个表t2
#db2 "insert into t1 select * from t2"
16查询表
  #db2 "select * from table name where ..."
17显示表结构
  #db2 describe table tablename
18修改列
  #db2 alter table [tablename] alter column [columname] set data type varchar(24)

19创建数据库

#db2 create database <数据库名> [using codeset utf-8 territory CN] [pagesize 16 k]

20 导入导出

导出:

         表结构:

                  db2look –d dbname –e –a –x –I username –w password –o 路径/文件名.sqlddl

         导出数据:

                  db2move dbname export –u username –p pwd

导入:

         表结构:

                  db2 –td; -vf 路径/文件名.sql   (db2 –tvf  路径/文件名.sql)

         数据:

                  db2move dbname import

建表:

CREATE TABLE DB2ADMIN.test(
        id BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1,INCREMENT BY 1),
        username VARCHAR(30),        
        password VARCHAR(32),       
        title VARCHAR(20)    
);//主键自增

 

 

oracle常用命令:

1,打开sqlplus

       sqlplus: oracle软件自带的可以让我们执行sql语句,并返回sql结果的终端

2,以管理员身份登录

       sqlplus "/as sysdba"

              *show user :查看当前登录用户

3,创建一个新用户

              *create user username identified by password;

                     备忘<zch,zch666>

       给新用户授权

              *grant connect,resource to username;

4,切换到创建的新用户上:

              *conn username/password;

              用户登陆的几种方式:

                     1)sqlplus 输入username 输入password

                     2)sqlplus username  提示-输入口令

                     3)sqlplus username/password

       5,更改当前会话日期环境为英文:

              alter session set nls_date_language = english;

       6,导入测试数据:

              start d:/table.txt

              @d:/table.txt

       Mysql导入:source d:/table.sql

7查看当前用户有哪些表

       select table_name from user_tables;

       desc table_name 查看表结构

8创建表空间

(1)create tablespace tb_name datafile 'D:\tablespace\tb_name.dbf' size 1024m AUTOEXTEND ON;
 

(2)create tablespace t_space
datafile 'D:\oracletablespace\t_space.DBF'
size 50M
autoextend on
next 10M

9创建索引

create index myIndex on s_emp (col_name);

10创建序列
    

CREATE SEQUENCE name
    [INCREMENT BY n]
    [START WITH n]
    [{MAXVALUE n | NOMAXVALUE}]
    [{MINVALUE n | NOMINVALUE}]
    [{CYCLE | NOCYCLE}]
    [{CACHE n | NOCACHE}]

    note:
        1.increment by n:表明值每次增长n(步长),如果n是正数就递增,如果是负数就递减 默认是1
        2.start with n: 从n开始
        3.{MAXVALUE n | NOMAXVALUE}: 设置最大值
        4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。
        5.CYCLE | NOCYCLE          : 是否循环,建议不使用
        6.CACHE n | NOCACHE           : 是否启用缓存,每次缓存n个值
    序列的属性(伪列):
    1.nextval : 返回下一个可用的序列值。
        就算是被不同的用户调用,每次也返回一个唯一的值。
    2.currval :获取序列当前的值。
        在currval调用之前,必须保证nextval已经获取过一次值。

 

Oracle数据泵方式导入导出:

用expdp导出数据

1)导出用户及其对象
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir;

2)导出指定表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;

3)按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20';

4)按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

5)导整个数据库
expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

四、用impdp导入数据

   在正式导入数据前,要先确保要导入的用户已存在,如果没有存在,请先用下述命令进行新建用户

--创建用户
create user user_name identified by A123456a default tablespace tb_name temporary tablespace TEMP;

--给用户授权

sql>grant read,write on directory dump_dir to user_name;

sql>grant dba,resource,unlimited tablespace to user_name;

1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott;

2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;

3)导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;

4)导入数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

5)追加数据
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action

oracle数据泵导入用户A的表给用户B:

impdp user/password directory = dumpfile= ..  schema=a remap_schema=a:b;

 

遇到的业务:分开建立表的表空间和索引的表空间(系统的数据表和表的索引分别置于不同的表空间)。

create table tb_test
(
    id varchar(20),
    name varchar(20)
)
--指定表空间
tablespace tb_space
    pctfree 10
    initran 1
    maxtrans 255
    storage(
        initial 64k
        next 1M
        minextents 1
        maxextents unlimited    
    )
--表和字段的注释
comment on table tb_test is '测试表';
comment on column tb_test.id is '主键字段';
--主键,索引的管理
alter table tb_test
    add constraint pk_tb_test primary key(id)
    using index
    tablespace tb_index_space
    pctfree 10
    initran 1
    maxtrans 255
    storage(
        initial 64k
        next 1M
        minextents 1
        maxextents unlimited    
    )
        

oracle连接数监控

select value from v$parameter where name ='processes';-- oracle允许的最大连接数

select count(*) from v$process; -- 当前已使用连接数

查询客户端设备标识、客户端程序、oracle用户名、消耗的连接数量:

SELECT b.MACHINE,
       b.PROGRAM,
       b.USERNAME,
       count(*)
FROM v$process a, v$session b
WHERE a.ADDR = b.PADDR
  AND b.USERNAME is NOT NULL
GROUP BY b.MACHINE, b.PROGRAM, b.USERNAME
ORDER BY count(*) desc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值