sql
小秋蜀黍
日拱一卒,功不唐捐。
展开
-
数据库的设计思路和原则
通过在线考试系统对数据库的主外键关系有了新的认识如上图所示,左边为管理员表,右边为面试系统表1.管理员系统在user表中nameid为主键,security表中nameid为user表nameid的外键。 当主键的元素有外键的时候,就不能删除(外键表可以随意删除)。当security表中有user表nameid的情况下,user表中的nameid是删不原创 2017-08-25 16:16:17 · 4715 阅读 · 0 评论 -
sql如何实现某一列按照特定顺序排序
之前一只以为sql的功能有限只能进行升序和降序的字典排序法,经常是确定了时间排序的基础上,再将sql查询的结果放到代码里重新遍历排序,这真是个又累又痛苦的过程想想都不相干,很小的功能,实现起来却很麻烦。偶尔发现了这么一个方法确实是豁然开朗。-- 一张包含申请单位,开始时间,序号的计划申请表,--按照时间-地域-序号的方式排序select sqdw,kssj,number f...原创 2018-11-23 16:24:25 · 15710 阅读 · 0 评论 -
关于行转列sql的实现
最近业务需求经常会遇到行转列的情况出现。个人也是最近接触到,总结了两种常用方法,逻辑也非常好理解。之前在网上也看到了不少其他oracle行转列的方法,有些是oracle特有的函数,放到其他数据库未必支持。下来我们看两个简单,函数经常会使用到的版本。1.创建测试表CREATE TABLE CC (Student VARCHAR,Course VARCHAR2,Scor...原创 2018-10-20 16:41:17 · 267 阅读 · 0 评论 -
SQL查询两列值相同,位置相反去重问题
一个表有两个字段,两行数据为【A,B】【B,A】,列值相同位置相反,如何将这两行去重为一行? 之前业务碰到一种情况,两条设备检修对断面的影响有的是一个定值。但数据库字段两个顺序会影响联合主键的问题,如何将这样两条顺序相反的数据看成一类的呢?还想过将两条id相加,得到的和最为唯一标示。但是这个可能不同的数据组合但和是一样的。比如88+82,85+85等。 解决方案SELECT...原创 2018-10-11 21:57:28 · 3724 阅读 · 0 评论 -
sql replace()函数的用法
replace()函数的用法:原创 2017-11-25 18:13:39 · 26237 阅读 · 3 评论 -
sql的常用技巧
将一张表中的数据插入到另一张表中。insert into 【表1】 select * from 【表2】where 【条件】附上一段因为字段太长懒得写被领导训的代码public boolean changeTableDate(String pdate,String planid,String datetype){ String sql = "delete from T_原创 2017-11-24 15:13:09 · 165 阅读 · 0 评论 -
connect by level 的小应用
先展示一条求最大检修容量的sql:select sum(maxcapacity) as dayjxrl , pdate from(select PP.equid,PP.equname,QQ.pdate,PP.startdate,PP.enddate,PP.maxcapacity from(select AA.equid,AA.equname,AA.startdate,AA.enddat原创 2017-12-03 17:14:37 · 696 阅读 · 0 评论 -
视图的创建
视图本身就是一张表,它的创建基本和表一模一样create or replace view "JXJH"."V_HIS_TDINFO" ASselect equid,equname,equtype,starttime,endtime,jxlx,gznr from t_rep_histdinfo where starttime<to_date('2014-01-01','yyyy-MM-原创 2017-12-08 16:50:46 · 328 阅读 · 0 评论 -
SQL语句很实用很巧妙的用法
1.ignore的用法在insert 后面加上ignore之后,如果插入的数据有重复等问题时,失败不会报错,很实用的小技巧 INSERT ignore INTO success_killed(seckill_id,user_phone,state) VALUES (#{seckillId},#{userPhone},0) 2.ifn原创 2017-10-22 18:27:38 · 607 阅读 · 0 评论 -
如何使用mybatis调用存储过程
如何使用mybatis调用存储过程先提供一个秒杀逻辑(https://github.com/cdefgab1234/seckill)的存储过程:--秒杀执行存储过程DELIMITER $$-- 运行第二次,这是为了能多次运行DROP PROCEDURE IF EXISTS `execute_seckill`$$-- 参数: in 输入参数; out 输出参数-- row_coun原创 2017-10-07 01:01:00 · 20595 阅读 · 6 评论 -
sql实现自定义排序
实际应用中sql提供的默认按某一字段排序,asc、desc并不满足需要,需要根据用户需求自定义的按照默写顺序排序,这里提供一个方法,适用于自定义类型不多的情况下,多了就得存字段关联表排序了吧。 例子如下:select * from(select 3 as id,'小明' as name from dualunionselect 1,'小王' from dualun...原创 2019-05-29 15:02:58 · 6525 阅读 · 0 评论