只是在工作中常用的一些命令、语句。
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 路径/文件名.sql(ddl)
导出数据:
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