数据库常用命令合集-记录(mysql、oracle、db2等)


前言

数据库常用命令合集-记录,包括mysql、oracle、db2等


1 mysql

1.1 mysql数据库名称中包含短横线时

简单来说就是将名称使用``给包起来即可

 mysql> create database `test-abc`; 

2 oracle

2.1 正斜杠(/)

正斜杠(/):在Oracle中,用来终止SQL语句。更准确的说,是表示了“运行现在位于缓冲区的SQL代码”。正斜杠也用作分隔项。

例如:执行以下语句
CREATE TABLE TEMP
( AAA VARCHAR2(2 BYTE),
BBB VARCHAR2(2 BYTE)
);
Insert into TEMP (AAA,BBB) values ('TESTA','TESTB');

就会报错: TABLE OR VIEW DOES NOT EXIST。

在INSERT 语句之前加入正斜杠/即可。

3 db2

3.1 db2 命令行<–执行–>sql语句

db2 "sql"  双引号括起来
如:
db2 "select menu_id,menu_name from test.sys_menu where menu_id='1110'"

call  SYSPROC.ADMIN_CMD()存储过程
如:
CALL SYSPROC.ADMIN_CMD('REORG TABLE user')

3.2 二进制数据导入导出

导入导出二进制数据,db2后的语句最好加上双引号做为整体的语句,不加双引号有时会报错有时不会。
    a,导出:db2 "export to xxx.IXF of IXF select * from tablename"
    b,导入:db2 "import from xxx.IXF of IXF insert into tablename"
如:
db2 "export to test_table.IXF of IXF select * from TEST.test_table"
db2 "import from test_table.IXF of IXF insert into TEST.test_table"

3.3 db2某个shcema下的表导入导出

1、连接数据库:db2 conect to dbNmae
查询所有库表:db2 list tables
查询指定schema下的库表:db2 list tables for schema '指定schema' > test_tables.list

2、
导出指定schema表结构:db2look -d 数据库名 -e -z 指定schema -x -i 用户名 -w 密码 -o 目录/test.sql
-z 指定schema 
同样,db2move导出指定schema:
db2move 数据库名 export -sn 指定schema -u 用户名  -p 密码
例子:
db2move testdb export -sn test -u test -p 123456 >test.log

3、导出的表结构及表数据处理
1)修改数据库名test为test1
2)修改schema "TEST     ""TEST1"
3)注释:-- CREATE SCHEMA "TEST     " AUTHORIZATION "DB2INST1";
4)去掉外键等
5)修改导出数据的db2move.lst 中schema "TEST     ""TEST1"
等等
特别注意:数据处理时shecma的大小写最好要一致。导入时,实测带双引号小写的shcema 会与大写的不一样,会新建新的schema。
这里是因为导出的schema 带双引号,
如,带双引号的"test" 与 TEST 是不一样的,不带双引号是一样的test=TEST

4、导入表及数据
mkdir import_log
导入表结构
db2 -tvf db2look_test_tables.sql > import_log/db2look-import-test-20231205-1500.log
监控日志,有没有fail ,error 

导入数据
db2move test import -u db2inst1 -p password > import_log/db2move-test-20231205-1500.log
监控日志,有没有fail ,error 

3.4 list查看db2信息

查看tablespaces,同时grep查找对应的tablespaces 的前后10行上下文
db2 list tablespaces show detail | grep USERSPACE1 -C 10

查看某个schema有数据的表
如:
select * from syscat.tables 
where tabschema='TEST'
and card >  0
;

查看某个schemafunction
select * from syscat.FUNCTIONS f 
WHERE f.FUNCSCHEMA = 'TEST'

删除FUNCTIONPROCEDURE 
DROP FUNCTION schemaNmae.functionName;
DROP PROCEDURE schemaNmae.functionName;
如:
DROP FUNCTION TEST.testFunc;
DROP PROCEDURE TEST.testProceduue;

3.5 db2日期与字符串

参考DB2日期和时间函数汇总
除此之外,还有timestamp_format、to_char

如下只替换日期为2023-05-20SELECT timestamp_format(CONCAT('2023-05-20 ',to_char(current timestamp,'HH24:Mi:ss.ff3')),'yyyy-mm-dd hh24:mi:ss.ff3')
,to_char(current timestamp,'HH24:Mi:ss.ff3')
FROM sysibm.sysdummy1
WHERE DATE(current timestamp) <> DATE('2023-05-20') 
;

3.6 db2自增及查看

1identity
如:id int generated by default as identity,

获取:
需要先执行一次,该函数返回最后一次生成的Identityvalues ( identity_val_local() ); 

重置:
获取由 identity_val_local()或者SELECT max(id) FROM schemaName.tableName查询最大值
ALTER TABLE schemaName.tableName ALTER COLUMN "ID" RESTART WITH 最大值+1;
CALL SYSPROC.ADMIN_CMD ('REORG TABLE schemaName.tableName');

2、使用sequence
如:create sequence xxx as NUMERIC(15);
获取下一个值
values NEXTVAL FOR schemaName.seqName
重置:
待补充


定位

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值