
数据库
阿达斯加
再微小的光,也可以照亮黑暗
展开
-
MySQL的事务处理Savepoint,commit
事务处理是一种机制,用来管理必须成批执行的 SQL 操作,保证数据库不包含不完整的操作结果。利用事务处理,可以保证一组操作不会中途停止,它们要么完全执行,要么完全不执行(除非明确指示)。原创 2024-10-18 17:20:45 · 556 阅读 · 0 评论 -
PLSQL高级编程-面向对象编程
面向对象编程简称OOP编程,实际上是对现实世界事物的一种抽象的过程。它的核心是把对象的定义和实现进行区分,让定义部分对象所具有的结构,让实现部分根据定义部分定义的具体结构进行具体的实现。该方法类似于JAVA等语言中的构造函数,用来初始化一个对象类型并返回对象的实例。该方法允许对象的实例进行调用,在MEMBER方法中可以访问对象实例的数据,通常称为实例方法或成员方法。该方法可以直接在对象类型上进行调用,它用于在对象类型上执行全局操作,通常称为静态方法。用于在多个对象间排序的映射方法。原创 2024-10-16 15:38:03 · 343 阅读 · 0 评论 -
SQL常用技巧总结
Oracle使用小技巧原创 2024-09-24 18:01:20 · 982 阅读 · 0 评论 -
Oracle学习笔记-存储过程与存储函数
1.存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。2.存储函数:可以通过return 语句返回函数值,存储过程则不能。3.存储函数为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个return子句,用于返回函数值。函数说明要指定函数名、结果值的类型,以及参数类型等。存储函数语法:create[or replace] functiion 函数名(参数列表)return函数值类型asPLSQL子程序体;4.函数示例:--查询某个员工的年收入cre原创 2022-04-06 22:43:18 · 866 阅读 · 0 评论 -
SQL语句学习笔记
where … in …查找固定的值,如查找table中id为1,2,3的数据行select * from tablewhere id in (1, 2, 3);2.table A left join table B on 条件当满足条件的时候,将数据表B拼在数据表A上,如将table A和table B里id相同的数据行拼在一起,如果A有数据B没有则B对应的数据显示为空select A.id from table A left join table B on A.id = B.id;3.o.原创 2022-03-29 22:38:48 · 528 阅读 · 0 评论 -
SQL学习笔记
create table as …在数据量过大的时候,可以先筛选出一些数据创建一张新的表,在新的表上再做匹配create table tmp asselect * from Awhere A.id > 10;substr(col_name, start, length) 截取某一列的子字符串,从下标为start开始,长度为length,如:substr(A.address, 1, 3)即为截取表格A的address列,字符串的前3个字母。decode(col_name,值1,翻..原创 2022-03-31 21:18:55 · 300 阅读 · 0 评论 -
Oracle学习笔记
1.在拼接表格的时候直接加入另一张表满足条件的数据行作为一张新的拼接表,如:select b.id, a.namefrom (select * from A where city = ‘北京’) a, bwhere b.user = a.user;表示从A表中筛选city列为北京的数据行来创建a表,将b表与a表 通过user列拼接起来,再选取b表的id和a表的name列2.group by将表格根据某一列分组,一般配合排序或者函数一起使用,如:select a.id, sum(b.grade)原创 2022-04-02 22:42:39 · 924 阅读 · 0 评论 -
Oracle学习笔记
1.查找数据库中的实例,可以查看oracle数据库中所有实例的信息,如:SELECT * FROM all_objects where object_type = ‘TABLE’;表示将oracle数据库里的table筛选出来2.oracle中dual可以用作时测试,如:select to_char(sysdate, ‘YYYYMMDD’) from dual;表示将sysdate转换为’YYYYMMDD’的字符串,可以直接返回测试结果3.to_date将字符串转换为日期,如:to_date(原创 2022-04-08 22:08:06 · 1204 阅读 · 1 评论 -
Oracle 学习笔记
1.partition by在保留全部数据的基础上,只对其中某些字段做分组排序,如:select *,ROW_NUMBER() over( partition by Name order by Score )排名from UserGrade表示从UserGrade表中通过Name进行分区,在每个分区内通过Score从大到小排序,选取UserGrade的全部字段和分区内排名2.distinct去重select distinct name from A 作用于单列;select distinct n原创 2022-04-11 19:46:57 · 138 阅读 · 0 评论 -
【Oracle实用小技巧一】
可以将一些查询固定周期同比数据的脚本改为自动脚本,如上个月的数据,就使用add_months,这样就可以省去每次执行脚本手动修改日期的时间。可以用于查询语句中涉及多个字段的条件判断,非常方便的把不同类型的要求拼在一起,直接展示在查询结果的一列,这样脚本相对比较简洁。大小写转换,在日志文件里查询对应过程的调用情况非常方便,可以实施跟踪过程执行情况,也可以检查当日是否更新。可以将一些数字查询结果转换为文字结果,增加结果的可读性。PLSQL里一些实用的小技巧,可以让日常工作更便捷。原创 2023-02-17 14:10:08 · 426 阅读 · 1 评论 -
PLSQL性能优化-merge into替代update
Merge into 和 update是SQL的两个更新语句,在大数据处理中,merge into比update更高效。原创 2024-01-15 11:20:46 · 1188 阅读 · 0 评论 -
MYSQL Case When搜索查询
Case When可以用作select语句中的搜索,如果满足条件,就给字段附上结果值。原创 2024-02-01 14:36:11 · 1710 阅读 · 0 评论 -
ORACLE MERGE INTO语句报错,unable to get a stable set of rows in the source tables
在使用merge into语句,用一张表的数据tab2更新另一张表tab1时,如果tab1中用来匹配的字段一条在tab2中有多条对应的数据,就会报错:解决方法可以用partition by函数对tab2中的多条字段进行排序,只取第一条来更新tab1。举个例子,通过学生信息表stu_info来更新学生表student里的学生班级信息。同一个学生对应了不同的班级,使用partition by按创建时间排序,可以得到该学生最新的班级情况。原创 2024-02-02 09:50:32 · 2417 阅读 · 0 评论 -
数据表占空间太大被清理怎么办-视图来解决
视图还可以从多个表里,快速检索数据,极大地提高了查询效率,对于一些比较复杂的查询语句(连接,分组查询和子查询),视图也都可以实现。备表的时候,创建一个视图,来替换原来的备表,既可以节省空间,也可以提高查询效率。昨天在帮同事批量导入数据的时候,突然发现本地库的备表没了,吓得我出了一身冷汗。后来发现原来是因为数据表占空间太大(11万行左右),被标记清理重命名了。幸好没有真的被删除,但同时也提醒了我,如何能够尽量节省备表空间呢?原创 2024-03-07 11:38:55 · 393 阅读 · 0 评论 -
数据库设计-分批次导入数据
在实际工作中,经常遇到需要分批次将数据导入总表的情况,在大规模数据的背景下,按照一定的规范导入,就变得至关重要。本文根据几个常用的数据处理过程,总结了一个数据库设计模版。按照以上的步骤,就可以比较规范地将大数据库中的总表按照批次更新了。原创 2024-02-29 11:21:35 · 483 阅读 · 4 评论