随笔分类 - SQL
SQL对表的操作
摘要:oracle导出数据到文本、从文本导入数据 经常有需求向表中导入大量的数据,使用insert不靠谱,太慢oracle提供了sqlldr的工具 也有时需要讲数据导入到文本,oracle的spool可以轻松实现 方便的实现oracle导出数据到txt、txt导入数据到oracle 一、导出数据到txt
阅读全文
摘要:分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的 分表 就是把一张表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。 分库 一旦分表,一个库中的表会越来越多 将整个数据库比作图书馆,一张表就是一本
阅读全文
摘要:第一种:oracle的方法 merge into emp_bak a using emp b on (a.ename like CONCAT('%',concat(b.ename,'%'))) 模糊匹配,如果是等值,把like换成= ,CONCAT('%',concat(b.ename,'%')))
阅读全文
摘要:一、查询使用 1. 加锁的目的:实现对 '共享资源' 的 '并发控制' 例如,'同时' 更新 '同一条记录' 若不加锁,则更新无先后顺序,得到的结果集可能并非想要的 若加了锁,则更新有先后顺序,能得到想要的结果集 2. 锁的分类:从不同的角度,有不同的分类方法 3. 相关视图 (1) select
阅读全文
摘要:Oracle里的绑定变量 使用绑定变量,是可以重用解析树和执行计划基础条件. 绑定变量的语法: --sql var x number; exec :x := 7369; select ename from emp where empno= :x; --plsql declare vc_name va
阅读全文
摘要:Oracle使用正则表达式4个主要函数: 1、regexp_like 只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配,语法很简单: 2、regexp_substr 函数,和 substr 类似,用于拾取合符正则表达式描述的字符子串,语法如下: 3、regexp_instr 函数
阅读全文
摘要:一.事务(transaction)定义:事务就是一个对数据库操作的序列,是一个不可分割的工作单位,要不这个序列里面的操作全部执行,要不全部不执行。特性:原子性 (Atomicity) 持久性(Durability) 一致性(Consistency) 隔离性(Isolation)下面我将用银行转账来举
阅读全文
摘要:一、数据库为什么需要锁? 为了保证数据的一致性。mysql数据库存在多种数据引擎,MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。 二、表级锁 1.表级锁(表级锁一次会将整个表锁定,所可以很好的避免死锁问题) (1)锁定粒度大,锁冲突概率高、并发度低; (2)好处
阅读全文
摘要:--有如下一张表NBA,表中的内容是每年获得冠军的球队的名字。 --查询出在此期间连续获得冠军的有哪些,其连续的年份的起止时间是多少,结果如下: --使用的方法(自关联) SELECT C.TEAM,MIN(Y1) START_YEAR,MAX(Y2) END_YEAR FROM (SELECT A
阅读全文
摘要:--.自定义函数--语法: CREATE OR REPLACE FUNCTION FUN_函数名(参数1 数据类型,参数2 数据类型……) RETURN + 返回的数据类型 IS|AS BEGIN --逻辑体 --里面必须要有一个RETURN子句 END; --对比存储过程 CREATE OR RE
阅读全文
摘要:.递归查询:对于表里面的数据是以树状结构存储的数据,可以利用这种查询来直接获取每一个节点上的数据。--什么是树状结构的数据--例:比如SMITH和他的领导们SMITH→FORD→JONES→KING--这种结构就叫做树状结构的数据。 --语法: SELECT 字段名 FROM 表名 --WHERE
阅读全文
摘要:--列转行(数据对称型) --需求:将test的数据转换为如下所示: drop table test; CREATE TABLE TEST ( YEARS NUMBER, Q NUMBER, AMT NUMBER ); INSERT INTO TEST(YEARS,Q,AMT) VALUES(202
阅读全文
摘要:1.什么是高水位?(high water mark 简称:HWM) 所有的Oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词)都有一个在段内存放数据的上线,那么我们把这个上线成为“high water mark”或HWM.HWM是一个标记,用来说明已经有多少
阅读全文
摘要:--一个程序包由两部分组成:包定义和包体。 其中包定义部分声明包内数据类型、变量、常量、游标、子程序和函数等元素,这些元素为包的共有元素。--包主体则定义了包定义部分的具体实现。 向包里放入程序 创建一个包,包定义/包头 --包分为包头和包体。一层一个包。 --包的命名:PKG_包名--创建包头--
阅读全文
摘要:建表的时候指定表空间 表空间 1个或者多个文件 ==》 往表中插入数据,实际是插入 建表时指定的表空间对应的文件当中。 1. 创建自己的表空间 create tablespace myspace datafile 'C:\app\EDY\oradata\orcl\myspace.dbf' size
阅读全文
摘要:分区 把一个表的数据按照字段的值,保存在多个区域,查询时,仅仅查询某一个或者多个区域,避免全表扫描。 --建表的时候,需要指定分区字段 以及 预制的分区。先要划好分区,才能插入数据。 列表分区 1.不连续的,零散的字段的值,作为分区,常采用list列表类型 CREATE TABLE MYEMP2 (
阅读全文
摘要:--索引的定义,使用场景,常见的用法 索引是 对表中的数据进行排序之后,把数据以及所在的位置的行rowid都记录下来,记录到一个表当中(索引表)。当我们对数据进行查询的时候,首先 会差索引表,从索引表中查到rowid,直接访问rowid对应的行。 在index表新建索引 索引格式 create in
阅读全文
摘要:优化的方式: 一、SQL语句的优化 1、表尽量使用别名,字段尽量使用别名.字段名,这样子,可以减少oracle数据库解析字段名。而且把不需要的字段名剔除掉,只保留有用的字段名,不要一直使用 select *。 2、关联查询时,选择好主表。oracle解析器对from 后面的表的解析是从右到左的,所以
阅读全文
摘要:--视图 一段复杂的SQL,取一个别名作为表名,可以直接从这个表名中查询数据,当发生查询时,实际是 执行这段SQL并返回结果。 视图和表的区别在于: 表是实际存储数据。视图:用到的时候再查询,不存储数据,不占空间。 --使用者必须先赋权,有创建视图的权限。 grant create view to
阅读全文
摘要:一、什么是触发器 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,
阅读全文