数据库:Oracle MySQL
文章平均质量分 76
一位远方的诗人
天赋被努力完美释放!
展开
-
MySQL查询优化
一、查询优化之join优化(一)关联字段加索引1、alter table t_name add index(id);2、select count(*) from dept d join emp e on d.id = e.id;(二)小表驱动大表原则1、小表驱动大表原则:因为程序链接比较消耗资源并且费时,涉及资源申请和释放,因此,先建立程序链接(使用小表),再进行数据查询(大表),查询速度会比较快。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in..原创 2021-03-26 16:45:57 · 227 阅读 · 1 评论 -
搞懂B+树和B-树
转载自:伯乐专栏作者/玻璃猫,微信公众号 - 梦见漫画:什么是b+树这一次我们来介绍 B+ 树。一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶子结点都位于同一层。5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。一个m阶的.转载 2020-08-19 15:52:32 · 2137 阅读 · 0 评论 -
知识图谱技术发展详解(一)
一、知识图谱(一)知识图谱概念1、知识图谱,是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系,通过将数据粒度从document级别降到data级别,聚合大量知识,从而实现知识的快速响应和推理。包括实体、属性和关系。(1)知识图谱是语义Web技术发展的一次扬弃与升华,最早由Google于2012年提出,用以提高搜索引擎的能力。较为出名的知识图谱产品有Google的Knowl...原创 2020-03-08 12:58:47 · 10527 阅读 · 1 评论 -
JDBC之Transaction(事务)
(一)Connection与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。默认情况下,Connection 对象处于自动提交模式下,这意味着它在执行每个语句后都会自动提交更改。如果禁用了自动提交模式,那么要提交更改就必须显式调用 commit 方法;否则无法保存数据库更改。通过调用setAutoCommit(boolean)方法来修改提交模...原创 2017-09-26 10:42:41 · 476 阅读 · 0 评论 -
索引知识点面试
因为索引是MySQL中比较重点的知识,相信很多人都有一定的了解,尤其是在面试中出现的频率特别高。楼主自认为自己对MySQL的索引相关知识有很多了解,而且因为最近在找工作面试,所以单独复习了很多关于索引的知识。但是,我还是图样图森破,直到我被阿里的面试官虐过之后我才知道,自己在索引方面的知识,只是个小学生水平。以下,是我总结的一次阿里面试中关于索引有关的问题以及知识点。一、索引概念、索引...原创 2019-07-18 09:37:06 · 210 阅读 · 0 评论 -
数据库优化靠索引,不懂索引,那是因为你心里没有B树(重点)
要了解数据库索引的底层原理,我们就得先了解一种叫树的数据结构,而树中很经典的一种数据结构就是二叉树!所以下面我们就从二叉树到平衡二叉树,再到B-树,最后到B+树来一步一步了解数据库索引底层的原理!oracle索引语法参考文档:https://blog.csdn.net/sinat_27933301/article/details/79968971结合本篇博文了解掌握B数:https://b...原创 2019-07-18 16:23:41 · 334 阅读 · 0 评论 -
JDBC中Statement、PreparedStatement和CallableStatement的使用
一、JDBC相关操作的接口和类(一)JDBC相关操作的接口和类在java.sql包中:1、Statement、PreparedStatement和CallableStatement都是接口(interface)。(二)Statement1、Statement继承自Wrapper,Statement接口提供了执行语句和获取结果的基本方法;2、支持普通的不带参的查询SQL;...原创 2017-06-15 22:42:59 · 497 阅读 · 0 评论 -
PrepareStatement与Statement的区别
(一)Statement接口:用于执行静态 SQL 语句并返回它所生成结果的对象,在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都...原创 2017-08-02 08:58:45 · 371 阅读 · 0 评论 -
mysql递归cte(公用表表达式)分层数据(邻接列表模型)实例讲解
一、递归CTE概念递归公用表表达式(CTE)是一个具有引用CTE名称本身的子查询的CTE。1、以下说明递归CTE的语法 -WITH RECURSIVE cte_name AS ( initial_query -- anchor member UNION ALL recursive_query -- recursive member that referenc...原创 2017-08-09 18:20:05 · 2371 阅读 · 0 评论 -
mysql之存储函数
与存储过程不同,您可以在SQL语句中使用存储的函数,也可以在表达式中使用。 这有助于提高程序代码的可读性和可维护性。一、MySQL存储函数语法以下说明了创建新存储函数的最简单语法:CREATE FUNCTION function_name(param1,param2,…) RETURNS datatype [NOT] DETERMINISTIC statements...原创 2017-08-10 15:26:02 · 509 阅读 · 2 评论 -
数据库知识强化总结(重点)
数据库强化一、数据库设计优化总结(一)设计思路1、根据业务概念抽象成类和属性,区分类和属性采用找名词的方法,看名词是否具有动作或者方法。2、在设计建模时,类之间的各种关系:继承(extends,指向父类),实现(implements),关联(拥有关系,指向被拥有者),组合(整体与部分,不可单独,指向整体),聚合(整体与部分,可单独存在,指向整体),依赖(使用关系,指向被使用者)。...原创 2019-07-24 16:11:11 · 990 阅读 · 0 评论 -
oracle数据库备份和恢复的四种方法
Oracle数据库有四种标准的备份方法,它们分别是导出/导入(EXP/IMP)、数据泵技术、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。第一种方法:导出/导入(Export/Import)exp和imp命令参考文档:https://blog.csdn.net/fghsfeyhdf/article/details/79807690 利用Export可将数据从数据...原创 2019-07-16 11:54:09 · 11195 阅读 · 0 评论 -
oracle的plsql语言学习总结及重点游标
Oracle的内部编程语言1、每一种数据库都有自己的一个内部编程语言。2、pl_sql:procedure language 和 Structured Query Language(过程语言和结果化查询语言)。3、pl:procedure language过程语言即带有分支和循环的语言。对于一个复杂的查询逻辑:例如如果大于100,加10;如果小于100,加5;这种逻辑通过sql就很...原创 2018-10-15 14:14:52 · 1370 阅读 · 0 评论 -
数据库设计建模(重点)
一、确定业务中的实体、属性和方法1、通过了解熟悉业务流程,将业务流程中的事务抽象成类、属性和方法,通过编程逻辑把问题解决。确定业务中的类:收集业务资料,罗列业务中的所有名词,通过“找名词”的方法,确定业务中的类,注意区分开类和属性2、区分类和属性(重点)区分类和属性的技巧:确定该名词是否有方法(即是否拥有动作)。一般描述为xx的xx是属性。对于类和方法的封装,要根据业务逻辑...原创 2018-04-20 18:22:26 · 1053 阅读 · 0 评论 -
安装mysql时 mysqld install命令无法通过
cmd命令行模式下,进入mysql的目录(这里用的集成环境,D:/xampp/mysql/bin) 启动mysql:net start mysql,显示"The service name is invalid",即mysql服务未注册。注册mysql服务:mysqld --install,显示"Install/Remove of the Service Denied!"解决方法:出现这些错...原创 2017-06-21 15:52:16 · 10902 阅读 · 1 评论 -
Mysql的命令语句
(一)安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中。连接Mysql的格式:格式: mysql -h 主机地址 -u 用户名 -p 用户密码退出MYSQL命令: exit (回车)如果自己想给用户设置密码,可以采用以下四种方法:方法1: 用SET PASSWORD命令首先登录MySQL。格式:mysql> set password fo...原创 2017-06-14 23:27:56 · 233 阅读 · 0 评论 -
MySQL之CTE(公用表表达式)
一、MySQL之CTE(公用表表达式)(一)概念1、MySQL的CTE是在MySQL8.0版本开始支持的,公用表表达式是一个命名的临时结果集,仅在单个SQL语句(例如select、insert、delete和update)的执行范围内存在。CTE分为递归CTE和非递归CTE。(二)意义1、MySQL8.0之前,进行复杂查询时需要使用子查询来实现,SQL语句不仅语句复杂性能低,而且不...原创 2017-08-09 13:51:22 · 15934 阅读 · 3 评论 -
mysql存储过程之游标
(一)要处理存储过程中的结果集,请使用游标。游标允许您迭代查询返回的一组行,并相应地处理每行。1、MySQL游标为只读,不可滚动和敏感。只读:无法通过光标更新基础表中的数据。 不可滚动:只能按照SELECT语句确定的顺序获取行。不能以相反的顺序获取行。 此外,不能跳过行或跳转到结果集中的特定行。 敏感:有两种游标:敏感游标和不敏感游标。敏感游标指向实际数据,不敏感游标使用数据的临...原创 2017-08-10 14:52:36 · 562 阅读 · 0 评论 -
mysql的alter用法
ALTER TABLE 语句用于在已有的表中添加、删除或修改列。alter table 表名 rename 新表名; --修改表名alter table 表名 add column 列名 数据类型; --添加表列alter table 表名 drop column 列名; --删除表列lter table 表名 modify 列名 新的数据类型;--修改表列类型或者...原创 2017-08-01 18:11:16 · 275 阅读 · 0 评论 -
mysql的存储过程
(一)存储过程是存储在数据库目录中的一段声明性SQL语句。在MySQL 5.0版本以后,存储过程,存储函数,触发器和事件这些功能才被添加到MySQL数据库引擎。DELIMITER // CREATE PROCEDURE GetAllProducts() BEGIN SELECT * FROM products; END //DELIMITER ;SQL...原创 2017-08-10 14:16:33 · 313 阅读 · 0 评论 -
mysql的存储过程中的语句if case 循环语句
(一)MySQL存储过程的 IF语句语法IF expression THEN statements;END IF;使用实例:从customers表中获得客户的信用额度。参数:p_customerlevel用来存储客户的级别,并由调用程序使用。DELIMITER $$CREATE PROCEDURE GetCustomerLevel( in p_custo...原创 2017-08-10 14:42:35 · 1518 阅读 · 0 评论 -
Mysql的安装配置
(一)Mysql可分为安装版与免安装版,但是Mysql在5.5版以后就没有安装版了,全是免安装版,即解压后配置一下,就可以使用。1、Archive版就是zip压缩包:免安装版。2、msi是安装版,安装后就可以使用不需要配置。(二)对于免安装版的配置使用方法:1、配置my-default.ini文件把my-default.ini这个文件复制一下重命名my.ini,然后替换成如下的...原创 2017-06-15 11:35:38 · 210 阅读 · 0 评论 -
mysql复制表以及复制数据库
(一)将旧表复制到新表1、CREATE TABLE新表 SELECT* FROM旧表;该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等。CREATE TABLE if not exists new_table SELECT col1, col2, col3 FROM existing_tableWHERE ...原创 2017-08-09 11:46:40 · 13145 阅读 · 0 评论 -
mysql存储过程之错误处理
(一)当存储过程中发生错误时,重要的是适当处理它,例如:继续或退出当前代码块的执行,并发出有意义的错误消息。声明处理程序要声明一个处理程序,您可以使用DECLARE HANDLER语句如下:DECLARE action HANDLER FOR condition_value statement;SQL如果条件的值与condition_value匹配,则MySQL...原创 2017-08-10 15:56:24 · 1439 阅读 · 0 评论 -
CallableStatement的使用实例以及PreparedStatement的批处理
(一)CallableStatement用于执行SQL存储过程的接口。如果使用结果参数,则必须将其注册为 OUT 参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是 1。 {?= call <procedure-name>[(<arg1>,<arg2>, ...)]} {call &...原创 2017-09-26 09:45:47 · 1038 阅读 · 0 评论 -
JDBC之处理可滚动的结果集和可更新的结果集
(一)ResultSet表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。默认的 ResultSet 对象不可更新,仅有一个向前移动的光标。因此,只能迭代它一次,并且只能按从第一行到最后一行的顺序进行。但是,可以生成可滚动和/或可更新的 ResultSet 对象。ResultSet 接口提供用于从当前行获取列值的获取 方法(getBoolean、getLong 等)。可以使用...原创 2017-09-26 14:45:26 · 2744 阅读 · 0 评论 -
oracle数据库11g的安装与配置
一、安装oracle数据库软件(1)压缩包解压,双击运行win64_11gR2_database\database\setup.exe(2)输入电子邮件,这一步可以跳过,不影响安装,点击“下一步”(3)此步骤就是选择本次安装的类型,有三种:1、创建和配置数据库;2、仅安装数据库软件;(如果选择此项,需要在安装好软件之后,自己配置数据库)3、升级现有的数据库;...原创 2017-06-15 11:11:52 · 1540 阅读 · 0 评论 -
oracle中exists、in、any、all、some的用法
除了in连接字以外,另外两个函数我们现在很少用到,因为可以用其他方式代替了。 比如:SELECT * FROM TABLE WHERE COL > ALL(SELECT COL FROM TABLEA)这相当于SELECT * FROM TABLE WHERE COL > (SELECT MAX(COL) FROM TABLEA);SELECT * FROM TABLE WHERE C原创 2017-06-13 16:25:22 · 3436 阅读 · 0 评论 -
oracle的应用(面试题目示例):重点
(一)ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的)。1.部门中那些人的薪水最高select ename, sal from emp join ( select max(sal) max_sal ,deptno f原创 2017-08-10 08:45:35 · 456 阅读 · 0 评论 -
Oracle之Sequence(序列)
(一)序列概念序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。l 自动提供唯一的数值l 共享对象l 主要用于提供主键值l 将序列值装入内存可以提高访问效率(二序列用法)创建序列:1、 要有创建序列的权限 create sequence 或 create any sequenc原创 2017-09-20 13:32:21 · 382 阅读 · 0 评论 -
Oracle创建数据库与表空间和数据字典表的概念
一、oracle创建数据库(一)第一种方法:DBCA方法使用Oracle的Database Configuration Assistant(数据库配置助手:简称DBCA),进行配置即可。(二)第二种方法:创建表空间1、创建表空间(1)语法:create tablespace 表空间名字datafile 'E:\app\owner\oradata\orcl\monitor.d...原创 2017-09-14 18:14:56 · 1176 阅读 · 0 评论 -
oracle之多表查询
多表查询格式:SELECT table1.column,table2.columnFROM table1 [CROSS JOIN table2]|[NATURAL JOIN table2]|[JOIN table2 USING(column_name)]|[JOIN table2 ON(table1.column_name=table2.column_name)]|[LEF转载 2017-09-20 10:47:21 · 371 阅读 · 0 评论 -
查看oracle数据库表以及用户管理和权限管理(重点)
一、查看数据库表及其含义(一)oracle查看数据库和数据库中的表1、用户表和数据字典(1)用户表:由用户创建,包含用户的内容;(2)数据字典:由系统建立,包含数据库的信息;2、数据字典表前缀: (1)USER_ :由用户创建,显示用户拥有的所有对象。 (2)ALL_ :由授权的用户访问, 用户可以访问的对象名。 (3)DBA_ :由授权DBA权限的人访问,显示数据库的所有对象。 ...原创 2017-07-19 17:22:41 · 12384 阅读 · 0 评论 -
oracle之数据类型
(一)对于变长字符(varchar2)和定长字符,主要效率的选取(二)变长字符varchar2有长度限制,最大到4k,即4096b。(三)NUMBER( p,s ) p表示精度(总长度) s表示小数位置且四舍五入NUMBER(10,3) 10是总长度,3是小数位数的长度(四)Long类型它存储变长字符串,最多达2G的字符数据(2GB是指2千兆字节, 而不是2原创 2017-09-19 16:10:58 · 274 阅读 · 0 评论 -
oracle之数据库事务的边界(DML,DDL,DCL)
(一)在sqlplus中事务开始于一个DML语句(数据操作语言,添加删除,修改,合并)(二)事务终止于rollback,commit。如果遇到DDL(数据定义语言:create,drop,alter,truncate,rename,comment(为表和列添加注释))或者DCL(数据控制语言:grant(授权),revoke(撤销允许))语句,事务会自动提交。原创 2017-09-19 15:59:39 · 581 阅读 · 0 评论 -
oracle数据备份和数据库启动关闭流程
一、oracle数据备份(一)oracle备份流程:1,导出用户的数据(backup scott)命令:exp2,创建用户并配置默认表空间:create user username identified by password default tablespace tablespacename quota sizeon tablespacename;例如:create ...原创 2017-07-20 09:53:56 · 1500 阅读 · 0 评论 -
Oracle之ed命令的用法
登陆sqlplus:sqlplus 用户名 在输入密码 输入 ed,编辑完文本之后,退出!然后在SQL命令行输入“/”就可以了,例如:SQL>/原创 2017-09-19 11:31:05 · 2709 阅读 · 0 评论 -
检测网络是否正常(ping,Telnet,tracert以及tnsping)
(一)ping命令:可用于判断网络是否连通通过ping+ 远程Ip地址 来判断本网或者本机与外部的连接是否正常。例如:ping www.baidu.com 通过用时和时候丢包来判断本机是否能够联网。返回信息:unknown host name 一般是DNS出问题了,即域名服务系统出错解决方法:清除DNS缓存,命令:ipconfig /flushdns(二)teln原创 2017-09-26 10:59:28 · 20076 阅读 · 0 评论 -
Spring三种建立数据源的方式(datasource)
1、使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是:每次连接都创建一个新的connection,根本没有连接池的作用。 ${jdbc.driverClassName} ${jdbc.ur原创 2017-09-04 14:43:26 · 4554 阅读 · 1 评论 -
sql语句中where 1=1 的用法
(一)where 1=1的用法在写项目中需要建立一个动态的sql,这时可以使用where 1=1.实例: String sql=”select name,age from usertable where”;//这里我们没有加where 1=1 if(!"".equals(user.getName())&&user.getName()!=null){ //这是表示原创 2017-09-14 14:13:23 · 5083 阅读 · 1 评论