数据库

oracle

常用函数

简单Case函数

CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END

应用场景
数据库中存数字,前端接口接收到名字

uuId函数

  1. oracle
    sys_guid()
  2. selserver
    newid() 生成36位的GUID
    replace(newid(), ‘-’, ‘’) 生成32 位的GUID

orcale指令

导出表数据(包括创建表)

exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)
例子 exp csshaoguan/csshaoguan@orcl file=c:\temp\exp.dmp tables=(FIXFLOW_DEF_BYTEARRAY,FIXFLOW_DEF_DEPLOYMENT,FIXFLOW_DEF_PROCESSDEFINITION
)
exp pubuser/pubuser#WDS9200@10.144.118.125:1521/imcx owner=pubuser file=D:\20210325pubuser_fm.dmp

导入表数据

impdp promng/promng@imc file=D:\0326PROMNG_FM.DMP full=y

导出表空间指令

exp pubuser_fm/pubuser_fm@47.96.94.255:1521/QDH owner=pubuser_fm file=D:\20210325pubuser_fm.dmp

创建新的表控件和用户

1. Create tablespace pubuser_fm
    logging
    datafile 'D:\data\pubuser_fm.dbf'
    size 50m
    autoextend on
    next 50m
    extent management local;
2.Create user pubuser_fm identified by pubuser_fm default tablespace pubuser_fm temporary tablespace temp;
3.Grant connect,dba to pubuser_fm;
impdp promng/promng@imc directory=DATA_PUMP_DIR dumpfile=0326PROMNG_FM.DMP   remap_schema=promng_fm:promng nologfile=true table_exists_action=replace

sql报错

ORA-00918: column ambiguously defined 未明确定义列

异常原因:select 查询的字段在from的两张表中都存在,导致数据库无法区别需要查询的字段来自于哪张表

ORA-01747: user.table.column, table.column 或列说明无效

原因:创建表时使用了group作为字段名称,查询语句中使用了group字段,而group是ORACEL的关键字,所以查询时出错

sql编程相关注意点

需求:一张表的多个字段关联另一张表的一个字段(用于数据字典的关联查询)(都是一对一关系)

SELECT
    n.orderid,
    m.last_name,
    q.last_name
	FROM
    vtiger_orderitem n
	LEFT JOIN vtiger_users m ON n.signatory = m.id
	LEFT JOIN vtiger_users q ON n.servicer = q.id

where后面不能跟别名,只能跟表名.字段名的形式

数据库中不等于null的判断:

不等于:<> ,!=,~= ,^= 这四个符号据说都可以在oracle中表示不等于,但是试了之后发现<> ,!= ,^=是可以的,
~=不行,需要注意的是,只有<>是标准的sql语法,可以移植,其他的都是oracle平台的特性,移植性较差,所以开发中,尽量使用<>表示不等于 等于:=不用多说, 但是要进行null的等于判断时,须使用is null 或is not null,null只能通过is null或者is
not null来判断,其它操作符与null操作都是false。

oracle中修改已存在数据的列的数据类型(因为有数据的列不可以修改数据类型)

ALTER TABLE TSP_SIS_ALARM ADD tmp_col VARCHAR2 ( 100 );-- 添加临时列 
UPDATE TSP_SIS_ALARM SET tmp_col = CONTINUED_TIME;--将目标字段中数据加入到临时列中
UPDATE TSP_SIS_ALARM SET CONTINUED_TIME = NULL;--将目标字段数据清空
ALTER TABLE TSP_SIS_ALARM MODIFY ( CONTINUED_TIME NUMBER );--更改目标字段类型
UPDATE TSP_SIS_ALARM SET CONTINUED_TIME = tmp_col;--将临时列数据加回到目标字段中
ALTER TABLE TSP_SIS_ALARM DROP COLUMN tmp_col;--清除临时列

单表的自关联查询(将一个表看作两个表)

SELECT s1.sname,s2.sname FROM sa_oporg s1 join sa_oporg s2 on s1.sparent = s2.sid

windows启动oracle后台的服务

在这里插入图片描述

sqlserver

常见问题

sqlserver导入大型sql时报错,内存不足,采用sqlcmd的方式进行导入

sqlcmd -S 127.0.0.1 -d pubuser -U sa -P Nari2018 -i C:\Users\mn\Desktop\pubuser.sql 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值