oracle简单操作

SQL语句不区分大小写,可以写在一行或者多行,关键字不能缩写也不能分行,使用缩进提高可读性


修改密码为oracle

alter user sys identified by oracle account unlock;

oracle备份(EXP)

exp sys@orcl file=D:\sys.dmp

oracle恢复(imp)

imp userid=uname/pwd tables=ce file=/home/oracle/data-bak/ce.dmp;


select:标识,选择那些列

from:标识,从那些表选择


select ID,name from tables;  :选择特定的列

select后跟列名from后跟表名

连接符用||表示(把列与列,列与字符连接在一起)

重复行

默认情况下查询会返回全部行,包括重复行

删除重复行

在select子句中使用关键字“DISTINCT”删除重复行


where子句

在select后面可以加where子句,用来限定查询的结果集

比如要查询姓名为XS的学生:

select * from t_c11_zyryda where xm='xs';


查看表结构

desc/describe用来查看数据的表结构

desc dba_users;


distinct(去重)

查找的结果不需要有重复的数据出现时用

selec distinct product_name from prcduct;


判断是否为空

select * from school where address is null;


查看时间

select sysdate from dual;


三天后的时间

select sysdate +3 from dual;


列的别名

(加入关键字AS,别名使用双引号)

SQL> select sysdate as 当前时间 from dual;


加减乘除计算器

select 8*8 from dual;



ORACLE默认表
emp表
empno 员工编号,唯一的 主键
ename 员工姓名
job 工作
mgr 员工经理编号
hiredate 入职日期
sal 工资
comm 奖金
deptno 部门编号
ioc 地址


select语句

select ename,job,sal from emp;(查询员工姓名,工作,工资)
select 列(后面跟列,)...列 from 表名字 where;
select * from emp where sal>2000;(查找工资大于2000的员工)
rollback 回滚
commit 提交


批量插入语句

insert info 表名字 values()
insert into test values(null,'SYS_C00521',51,null);
insert table test as select * from emp;
select * from test update ,会把test表所有行锁住(不要用)
select * from test ename=范冰冰 for update(只锁定一行)


update修改语句

select * from test;


# update test set sal =10000;  -- (实际工作中加where条件,不然修改的是整个表


别名

MYSQL

SELECT
a.COMPANY_NUMBER,b.location_name,a.CUSTOMER_PROVINCE_NUMBER,a.CUSTOMER_NUMBER,a.CUSTOMER_NAME,
CASE a.value_level_id when '01' then '一级'
when '02' then '二级'
END AS 层级 FROM
tmp_cust_cust a,location b WHERE a.location = b.location_number AND a.COMPANY_NUMBER = '571' AND a.INDUSTRY_ID = '49'


ORACLE

decode(t.sex, '1', '男生', '2', '女生', '其他') as sex


计算百分比

concat(round((sum1 / sum2 * 100), 2), '%'


时间条件

ORACLE

select distinct prodist_sku_num from prodist_member_list a where to_char(a.update_date,'YYYY-MM-DD HH24:MI') 
<= '2020-10-23 12:00' and to_char(a.update_date,'YYYY-MM-DD HH24:MI') >= '2020-10-23 00:00'

MYSQL

select  substr(T.create_time, 1, 7),count(*)   from tmp_cust_cust  t where T.create_time between '2022-02-01' and '2022-02-02'   group by  substr(T.create_time, 1, 7);
或者
DATE_FORMAT(create_time,'%Y%m%d') >=20210000


group by

按天统计

select substr(backupdate,1,6),count(*) from esop_crm.his_eboss_sms  where to_char(backupdate,'YYYY-MM') = '2021-07'
group by substr(backupdate,1,6) order by substr(backupdate,1,6) desc


报文截取

SELECT count(*) FROM tmp_hyj_0323_cvalilog a WHERE substr(a.RESPONSE_PARAM, instr(a.RESPONSE_PARAM,'ERRORVALUE":"') + 13 ,+ 6) = '接口查询错误';


创建视图

create or replace view abs_generl.view_item_026 as
select * from abs_task.abs_task_item


linux简单操作

ftp登陆

ftp 127.0.0.1 user 输入密码:passwd

sftp登陆

sftp -P 1165 user@127.0.0.1  登陆sftp,输入密码:passwd