Oracle常用SQL总结

Oracle常用SQL

创建索引

CREATE UNIQUE INDEX index_name ON table_name (column_name)

create unique index idx_emp_temp on emp_temp(empno);

Oracle内连接

内连接(Inner Join)是指表连接的结果只包含那些完全满足连接条件的记录。

SELECT a.运单编号 AS deliverId, c.网点编号 AS brId, 
	b.备注 AS signatureRemark
FROM table1 b, table2 a, table3 c
WHERE a.运单编号 = b.运单编号
	AND b.寄件网点 = c.网点名称

按字段分组

SELECT 
/*+INDEX(t T_EMPLOYEE_LOGIN_LOG_FIRST_N4)*/
b.province as province,nvl(count(1),0) as provinceNum
FROM t_Employee_Login_Log_First t ,t_base_organize b
WHERE t.company_id = b.id
      and t.SOURCE = #{source}
GROUP BY b.province

HAVING

  • 查询部门工资总和大于10000
SELECT deptno,sum(sal) FROM emp GROUP BY deptno HAVING sum(sal)>10000

数据库三范式

SQL注入

  • 一般情况(查询一条记录)
SELECT * FROM db_access.dbo.sys_user WHERE login_name = 'sstic' AND PASSWORD = '1'
  • SQL注入(查询所有记录)
SELECT * FROM db_access.dbo.sys_user WHERE login_name = 'sstic' AND PASSWORD = '1' OR '1' = '1'
  • MyBatis辅助SQL
SELECT *
FROM SUBSIDY_ORDER_DETAIL 
--只返回表结构,条件永远不成立
--WHERE 1 <>1

--返回表中所有数据,条件永远成立,常用于拼接SQL
--WHERE 1=1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值