数据库
萌新小灯笼(英文IDfengmo)
燃烧小宇宙,每天学习15个小时,自学硬件中
展开
-
criteria对象的QBC查询
一.说明1.获取该对象session.createCriteria(Class clazz);2.涉及该对象的方法createCriteria(Class clazz);3.参数的说明实体类的字节码对象。二.常用方法1.基本查询2.条件查询(1)说明相等条件eq()小于条件lt()相似条件like()其余方法请参考百度(2)范例3.排序查询4.分页查询5.统计查询6.离线查询(1)说明DetachedCriteria对象,不需要session对象就原创 2020-05-16 13:54:06 · 110 阅读 · 0 评论 -
hibernate的session和线程绑定
一.说明实现一个线程只有一个session对象。二.范例1.代码块(1)xml配置<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>原创 2020-05-16 13:53:39 · 284 阅读 · 0 评论 -
hibernate的多表查询
一.数据库中多表之间的关系1.多对多使用中间表。中间表只有俩个外键,引用俩个多对多表的外键。不能有其他字段信息,至于中间表,应该用联合主键。细节:任何一个多方的表和中间表去比较,都是一(中间表)对多(多表)的关系。2.一对一(多对一或者一对多)(1)第一种(一对多)建立外键的方式。使用外键约束,非空约束,唯一约束。它是把外键字段加了非空约束和唯一约束,从而实现了一对一。(2)第二种(多对一)使用主键的方式。让其中一张表即使主键,而是外键。(3)如何确立俩表之间的关系找外键。(主原创 2020-05-16 13:52:05 · 268 阅读 · 0 评论 -
Query对象使用【hql语句】
一.说明Query对象是hibernate中HQL查询方式。1.如何获取该对象session对象的方法。2.涉及的对象和方法createQuery(String hql)3.方法中参数的含义sql语句select cust_id from cst_customerhql语句select custId from CustomerHQL语句,是把sql语句的表名换成类名,把字段名换成实体类中的属性名。二.常用方法说明1.基本查询(1)查询表中所有的数据(2)查询表中指定列的原创 2020-05-16 13:50:43 · 348 阅读 · 0 评论 -
对象导航查询
一.概述hibernate的查询方式有:OID查询,HQL查询,QBC查询,SQL查询,对象导航查询。对象导航查询的条件:俩个实体类必须有关联关系。(4种关联关系的一种:一对一,一对多,多对一,多对多)二.lazy属性class标签的lazy只负责当前实体的load方法是否延迟加载。set标签的lazy只负责查询关联的集合对象是否延迟加载。many-to-one的lazy只负责查询关联的主表实体是否立即记载。三.范例1.对象导航查询演示2.lazy演示一【延迟加载】(1)测试类(2原创 2020-05-16 13:50:13 · 191 阅读 · 0 评论 -
hibernate的常用对象和工具类
一.常用对象常用对象演示1.Configuration:会用即可2.SessionFactory:一个应用应该只有一个SessionFactory对象。 使用原则:因为hibernate是线程安全,属于单例设计模式。在应用加载时创建,在应用卸载时销毁。3.Session:session对象是操作数据库的对象,执行增删改查的操作。 注意:session是单线程。防止数据丢失。 常用方法: (1)save(对象类) (2)del原创 2020-05-08 22:02:23 · 116 阅读 · 0 评论 -
pl/sql的游标
一.语法一【基本游标格式】--创建游标cursor 游标名称 is sql语句--打开游标open 游标名称;--遍历的数据存放到emprow记录型变量,fetch获取游标的数据fetch cl into emprow;--查询没有数据%notfound二.范例三.语法二【带参数的游标格式】declare cursor cl2(eno emp.deptno%...原创 2020-04-13 06:52:22 · 66 阅读 · 0 评论 -
索引
一.索引的概述索引就是在表的列上构建一个二叉树。二.索引的优缺点大幅度提高查询的效率,但是索引影响增删改的效率。三.索引的触发规则【面试题】1.单列索引问:单列索引触发规则,条件查询必须是索引列中的原始值。答:单列索引,模糊查询都会影响索引的触发。2.复合索引问:如果该列有单列索引,同时有复合索引。答:and触发复合索引,or不触发索引,原因是or相当于俩条查询语句,一条条件查...原创 2020-04-13 06:51:28 · 102 阅读 · 0 评论 -
存储过程和存储函数
一.概述存储过程:就是提前已经编译好的一段pl/sql语言,放置在数据库端,可以被直接调用。一般这一段pl/sql语句是固定步骤的业务。二.语法【存储过程】1.模板create or replace procedure 过程名(变量名 【输出类型】 数据类型)isbegin sql语句end;2.语法解刨1.rar三.范例四.语法【存储函数】1.模板c...原创 2020-04-13 06:41:42 · 1183 阅读 · 0 评论 -
触发器和错误提示信息设置
一.概念触发器:就是制定一个规则,在我们做增删改操作的时候,只要满足条件,自动触发,无需调用。二.分类语句级触发器:不包含for each row的就是语句级触发器。行级触发器:包含for each row的就是行级触发器。三.增删改的触发器说明触发语句:old【之前数据】:new【新数据】Insert所有字段都为null(空)将要插入的数据Update...原创 2020-04-13 06:41:06 · 3556 阅读 · 0 评论 -
存储过程和存储函数【out的参数说明】
一.概述存储过程:就是提前已经编译好的一段pl/sql语言,放置在数据库端,可以被直接调用。一般这一段pl/sql语句是固定步骤的业务。二.语法【存储过程】1.模板create or replace procedure 过程名(变量名 【输出类型】 数据类型)isbegin sql语句end;2.语法解刨1.rar三.范例四.语法【存储函数】1.模板c...原创 2020-04-12 15:40:35 · 1594 阅读 · 0 评论 -
pl/sql中sql的循环
一.while循环1.语法declare i number(2) := 1;--定义变量begin while 条件判断 loop dbms_output.put_line(i);--输出语句 i := i+1;--步进表达式...原创 2020-04-12 07:21:21 · 317 阅读 · 0 评论 -
pl/sql中sql的变量
一.变量的定义1.语法declare 变量名 数据类型 := 赋值;begin dbms_output.put_line(变量名);---打印变量的语法end;2.范例二.变量的高级应用1.语法一【引用型变量】--变量的高级应用:将别的表中的某列的数据赋值到变量--格式解析:变量名 表名.列名%type;获...原创 2020-04-12 07:20:40 · 64 阅读 · 0 评论 -
pl/sql中sql的游标
一.语法一【基本游标格式】--创建游标cursor 游标名称 is sql语句--打开游标open 游标名称;--遍历的数据存放到emprow记录型变量,fetch获取游标的数据fetch cl into emprow;--查询没有数据%notfound二.范例三.语法二【带参数的游标格式】declare cursor cl2(eno emp.deptno%...原创 2020-04-12 07:20:05 · 84 阅读 · 0 评论 -
pl/sql中sql的if和键盘输入
一.语法--if条件判断 if 条件判断 then dbms_output.put_line('未成年'); elsif 条件判断 then dbms_output.put_line('中成年'); else &nb...原创 2020-04-12 07:19:04 · 640 阅读 · 0 评论 -
pl/sql中sql的变量
一.变量的定义1.语法declare 变量名 数据类型 := 赋值;begin dbms_output.put_line(变量名);---打印变量的语法end;2.范例二.变量的高级应用1.语法一【引用型变量】--变量的高级应用:将别的表中的某列的数据赋值到变量--格式解析:变量名 表名.列名%type;获...原创 2020-04-12 07:17:59 · 117 阅读 · 0 评论 -
sql语句的优先级【图解版】
原创 2020-04-11 09:56:56 · 477 阅读 · 1 评论 -
子查询
一.语法---子查询---子查询返回一个值--案例:查询工资和scott一样的员工select * from emp where sal in(select sal from emp where ename = 'SCOTT');---子查询返回一个集合--案例:查询工资和10号部门任意员工一样的员工信息select * from emp where sal in(select ...原创 2020-04-11 09:56:16 · 86 阅读 · 0 评论 -
视图
一.概述原表:指的是创建视图前的数据实际存在的表。视图的概念:就是提供一个查询的窗口,所有数据来自原表。视图是虚拟存在的表。真实数据放在原表中。创建一个视图【必要条件:dba权限,俗称超级管理员权限】二.视图作用第一:视图可以屏蔽掉一些敏感字段。第二:保证总部和分部的数据及时统一。三.语法--设置只读视图,细节:视图名不能重复,表名有唯一性【必要条件:dba权限,俗称超级管理员权限...原创 2020-04-11 09:55:23 · 81 阅读 · 0 评论 -
分页查询
一.基本案例1.行号rownum行号:当我们做select操作的时候,每查询一条"记录",就会在该行添加一个"行号"。行号从1开始,依次递增,不可以跳着走。2.需求倒序获取前三条记录。3.业务逻辑1.倒序查询2.倒序获取前三条记录【错误逻辑】细节:排序操作影响行号顺序3.倒序获取行号细节:排序操作影响行号顺序4.倒序获取前三条记录结论:如果使用排序,而且还想使用rownum...原创 2020-04-11 09:53:52 · 449 阅读 · 2 评论 -
scott用户介绍
一.概述该用户是oracle数据自带。密码是tiger。--用户名scott--密码tiger二.作用该用户是初学者oracle专用查询数据的用户。注意:虽然oracle自带该用户,但是该用户是锁定的,需要进行解锁。三.语法【解锁用户和解锁密码】---解锁scott用户,需要当前用户拥有管理员权限alter user scott account unlock;---解锁s...原创 2020-04-10 14:09:30 · 1475 阅读 · 0 评论 -
查询sql
一.单行函数和多行函数的概述单行函数:指的是作用域为一行,返回一个值。多行函数:指的是作用域为多行,返回一个值。二.单行函数【字符函数】1.将字符串变大写(1)语法select upper('字符串内容') from dual;(2)范例2.将字符串变小写(1)语法select lower('字符串内容') from dual;(2)范例三.单行函数【数值函数】1...原创 2020-04-10 14:08:01 · 96 阅读 · 0 评论 -
多行查询【聚合函数】
一.语法select count(1) from 表名;---查询总记录,1指的是主键select sum(列名) from 表名;--查询总工资select max(列名) from 表名;--查询最大工资select min(列名) from 表名;--查询最小工资select avg(列名) from 表名;--查询平均工资二.范例...原创 2020-04-10 14:06:42 · 106 阅读 · 0 评论 -
条件判断查询【相当于switch语句】
一.语法一【通用写法】---用于相等判断使用case 被测试列名 when 常量值1 then 符合条件执行语句 when 常量值2 then 符合条件执行语句 &...原创 2020-04-10 14:06:00 · 178 阅读 · 0 评论 -
分组查询和条件查询【having和where】
一.语法【分组查询】select 分组列名,聚合函数from 表名group by 分组列名 ;二.范例三.语法【条件查询having】1.语法select 分组列名,聚合函数from 表名group by 分组列名 having 条件查询条件2.注意事项所有条件查询不能使用列的别名。四.范例五.语法【条件查询where】1.语法select 分组列名,聚...原创 2020-04-10 14:05:16 · 409 阅读 · 0 评论 -
多表查询
一.笛卡尔积和内外连接1.笛卡尔积的概述表A和表B的所有组成部分称之为笛卡尔积。笛卡尔乘积是指在数学中,两个集合X 和Y 的笛卡尔积(Cartesian product)表示为 X ×* Y* ,第一个对象是* X* 的成员而第二个对象是* Y* 的所有可能有序对的其中一个成员。完成多表查询,需要消除无用的数据。2.笛卡尔积的算法集合A中的主键属性个数*集合B中的主键属性个数 = ...原创 2020-04-10 14:03:30 · 140 阅读 · 0 评论 -
条件判断查询【相当于switch语句】
一.语法一【通用写法】---用于相等判断使用case 被测试列名 when 常量值1 then 符合条件执行语句 when 常量值2 then 符合条件执行语句 &...原创 2020-04-10 14:02:47 · 170 阅读 · 0 评论 -
oracle的单行函数
一.细节1.替换null值nvl(指定列名,被替换的数值) 作用是将null值替换指定数值2.时间格式中的时分秒写法--日期转换函数:格式中不区分大小写,时分秒的格式写法:hh:mi:ssselect to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;3.当前日期sysdate二.单行函数【字符函数】1...原创 2020-04-08 16:55:47 · 171 阅读 · 0 评论 -
数据的增删改
0.细节1.问题数据没有进行事务提交,会形成脏数据。2.解决方案每次增删改,都进行事务提交。3.演示(1)执行没有提交事务的操作(2)发现数据丢失(3)解决方案(4)验证结果一.添加记录1.语法--添加一列insert into 表名(列名,列名) values (值1,值2);---执行增删改需要进行事务提交commit;2.范例二.修改记录1.代...原创 2020-04-08 13:56:35 · 192 阅读 · 0 评论 -
序列
一.作用用于给主键进行自增长并且具有唯一值。二.语法1.基本语法【创建序列和查询序列】---序列不属于任何一张表,但是可以与表之间做逻辑绑定。---序列:默认从1开始,依次递增,主要用于给主键使用。create sequence s_person;---第一次使用序列,必须是nextval(下一个数字),而不是currval(获取当前元素)。---dual只是虚表(占位符),没有任...原创 2020-04-08 13:56:06 · 171 阅读 · 0 评论 -
连接oracle数据库的bug解决
一.连接超时1.原因服务器的端口号没有打开2.设置端口号(1)步骤一(2)步骤二(3)步骤三(4)步骤四【方式二的话,直接设置完成】(5)步骤五【方式一的步骤】(6)步骤六(7)步骤七二.中文乱码1.原因本地电脑的环境变量的字符集原因。2.代码变量名:NLS_LANG变量值:AMERICAN_AMERICA.ZHS16GBK3.设置环境变量(1)步...原创 2020-04-08 13:55:17 · 223 阅读 · 0 评论 -
oracle的指令
一.登录oracle数据库1.在cmd输入指令Sqlplus 用户名/密码@ip 地址:1521/orcl [as sysdba] 2.范例二.sql语句的注意事项1.注释位置2.执行sql语句的按钮3.多行sql语句的细节三.创建表空间1.说明代码2.代码块-- 创建表空间create tablespace demo -- 注意:表空间必...原创 2020-04-08 13:54:05 · 155 阅读 · 0 评论 -
oracle的可视化界面操作工具【PLSQL】
一.安装软件1.注意事项该软件必须在oracle官方软件基础之上才能使用。2.安装PLSQL3.安装完成后桌面出现该图标4.运行PLSQL5.找到配置选项框6.将oracle的官方sql插件放在本地7.设置配置选项框8.设置部署二.连接oracle数据库1.登录plsql(1)代码块192.168.2233(2)范例2.查询ip地址三.工...原创 2020-04-04 19:14:12 · 2342 阅读 · 0 评论 -
Oracle的安装【了解】
一.安装windowsXP二.用压缩的格式进行上传到虚拟机三.安装oracle1.运行安装程序【以管理员身份运行】2.设置密码3.检查先决条件4.点击安装5.设置口令管理【 SCOTT 和 HR 用户的沟去掉】6.设置完成点击确定,然后再点击退出四.测试是否安装成功1.在cmd输入指令Sqlplus 用户名/密码@ip 地址:1521/orcl...原创 2020-04-04 19:13:08 · 111 阅读 · 0 评论 -
连接oracle数据库的bug解决
一.连接超时1.原因服务器的端口号没有打开2.设置端口号(1)步骤一(2)步骤二(3)步骤三(4)步骤四【方式二的话,直接设置完成】(5)步骤五【方式一的步骤】(6)步骤六(7)步骤七二.中文乱码1.原因本地电脑的环境变量的字符集原因。2.代码变量名:NLS_LANG变量值:AMERICAN_AMERICA.ZHS16GBK3.设置环境变量(1)步...原创 2020-04-04 19:11:16 · 180 阅读 · 0 评论