数据库学习
数据库学习
※宋健※
这个作者很懒,什么都没留下…
展开
-
一个案例说清Group和Having
Group和Having是很多面试官喜欢问的,下面通过一个小案例解释一下。1.数据准备数据准备如下:数据准备SQLdrop table Student;create table Student(ClassId int,StuId int ,StuName varchar(10),Chinese int,Math int);insert into Student values(1,11,'张三',30,90);insert into Student values(1,12...原创 2020-07-10 23:42:29 · 274 阅读 · 0 评论 -
oracle查询锁表信息
以下SQL文可以查询锁表的ip,锁表的SQL等信息。SELECT l.session_id, s.serial#,s.machine, o.object_name, s.logon_time , SYS_CONTEXT('USERENV','IP_ADDRESS') as ip , v.TYPE,t.name,t.DESCRIPTION , a.SQL_FULLTEXTFROM v$locked_object l , dba_objects o , v...原创 2020-07-07 23:18:25 · 1341 阅读 · 0 评论 -
PLSQL管道表函数和其他写法比较
本文是学习笔记,没有太多说明,请自行参考create table T_SS_NORMAL( owner VARCHAR2(30), object_name VARCHAR2(128), subobject_name VARCHAR2(30), object_id NUMBER, data_object_id NUMBER, object_type VARCHAR2(19), created DATE, last...原创 2020-06-06 07:47:47 · 313 阅读 · 0 评论 -
oracle自治事务
首先,有2个问题。1.怎么解决把日志写入表的问题不要以为直接insert一下就好了,因为假设事务失败了,日志表的DML操作也会回滚,这样,在排错时,日志就没有卵用了。之前做过一个项目,可以把写日志的处理单独开一个session,这样就可以隔离业务处理和日志处理了。这个算是一个解决方案,缺点就是占用数据库连接。2.触发器中怎么写入commit,rollback这个问题貌似就麻烦了,因为触发器中不能写这种语句。另一种解决方案就是自治事务。自治事务就是独立于主事务,自己控制的分支事务,原创 2020-06-03 08:28:37 · 332 阅读 · 0 评论 -
Having和Where那点事
今天的话题稍微简单些,算是SQL扫盲吧。我们今天主要说一说having和where那点事。1.数据准备DROP table Student;CREATE TABLE Student(StuName VARCHAR2(10) NOT NULL,Subject VARCHAR2(10),Score INTEGER);insert into Student va...原创 2019-11-23 10:26:00 · 136 阅读 · 0 评论 -
SQL除法加强版
接之前的SQL除法,我们来一次SQL除法的加强版。实际工作中这种需求可能很少,但是为应付面试题,没准有用。1.数据脚本drop table student;drop table subject;create table student(stu_name varchar2(20),subject_id varchar2(10));create table subject(subj...原创 2019-11-10 15:12:35 · 911 阅读 · 0 评论 -
数据库设计三大范式之第一范式不可违反
首先关于数据库三大范式是什么,我们不再多说,网上很多博客写的都很好,例如以下链接:https://blog.csdn.net/qq_26878363/article/details/81533273版权声明:以上链接为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 下面我想重点聊一下第一范式。虽然数据库设计范式是设计经验,不是强制遵守的规则...原创 2019-08-25 11:12:07 · 1774 阅读 · 1 评论 -
SQL写法诡异篇
本章节我们讨论的SQL写法,我目前还没有想到高效的场景,所以称之为诡异篇,算是几种要绕开的写法吧。1用左联接代替分组聚合运算1.1 数据环境drop table test1;create table test1 as select * from dba_objects where rownum<1000;alter table test1 add constraint p...原创 2019-10-05 15:22:57 · 148 阅读 · 0 评论 -
SQL实现关系除法
1 关系除法概念首先,SQL运算其实就是集合的运算,大体也就是投影(select),筛选(where),分组(group by,分组后的聚合和having筛选我们统一划分到分组),集合的加(union,也可以叫集合并运算),减(not in,not exists,minus等,也叫结合补预算,差运算),乘(inner join、left join等各种连接,也可以归结到结合交运算),除(貌似没...原创 2019-09-07 11:51:30 · 38299 阅读 · 0 评论