数据库
文章平均质量分 81
花小胖
这个作者很懒,什么都没留下…
展开
-
数据库 连接基础知识 等值连接 自然连接
数据库连接:一、等值连接1.内连接:即最常见的等值连接,指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。2.外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。2.1左外连接:左表数据行全部保留,右边表保留符合连接条件的行2.2右外连接:右表数据行全部保留,左边表保留符合连接条件的行2原创 2017-07-24 10:55:26 · 8734 阅读 · 2 评论 -
mysql left join
SELECT * FROM student a LEFT JOIN sc b ON a.Sid = b.Sid AND a.Sname="赵雷"结果:(left join 左连接,左表所有数据 拼接 右表符合on条件的数据。on后用and连接,‘a.Sid = b.Sid AND a.Sname="赵雷"’都作为on条件)SELECT * FROM student a LEFT JO...转载 2018-12-21 16:24:59 · 286 阅读 · 0 评论 -
慢sql 分析
https://blog.csdn.net/why15732625998/article/details/803882361.explain结果分析:(1)id查询中执行select子句或者操作表顺序。若id相同,执行顺序由上至下;若是子查询,id序号会递增,id值越大优先级越高,越先被执行。(2)select_typeSIMPLE 简单的select查询,查询...转载 2018-11-18 15:12:13 · 192 阅读 · 0 评论 -
sql 语句执行顺序
sql语法的分析是从右到左一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。5)选择优化器,不同的优化器一般产生不同的“执行计划”6)...转载 2018-10-11 14:42:50 · 214 阅读 · 0 评论 -
mysql 优化规范
一、基础规范使用InnoDB存储引擎 支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 推荐使用utf8mb4字符集 无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字 表、字段必须加注释 方便他人理解字段意思,在后期维护中非常非常有用,不用去瞎猜这个字段是干嘛的。 不在数据库做计算 禁止使用存储过程、视图、触发器、Event。...转载 2018-10-11 14:30:10 · 188 阅读 · 0 评论 -
sql left join on
“A LEFT JOIN B ON 条件表达式” 的一点提醒ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 NULL 的数据在匹配阶段 WHERE 子句的条件都不会被使用。仅在匹配阶段完成以后,WHERE 子句条件才会被使用。它将从匹配阶段产生的数据中检...转载 2018-10-11 11:27:55 · 202 阅读 · 0 评论 -
hibernate setParameter()
hibernate中对动态参数的绑定提供了丰富的支持。其中参数绑定有两种形式。(1)按参数的名字进行绑定在hql查询语句中定义命名参数,以“ :”开头,形式如下:Query query =session.createQuery(" from Customer as c where c.name =:customerName");上面的HQL语句定义了“customerName”命名参数,接下来调用...转载 2018-04-19 20:00:56 · 11200 阅读 · 0 评论 -
hibernate query对象
1.使用query对象,不需要写sql语句,但是写hql语句 (1)hql:hibernate query language ,hibernate提供查询语句,这个hql与普通sql语句很相似(2)hql和sql区别:sql语句是通过数据库表和字段进行操作,hql是通过实体类和属性进行操作2.查询所有hql语句(1)from 实体类名称3.Query对象使用 (1)创建Query对象(2)调...转载 2018-04-19 15:51:13 · 1527 阅读 · 0 评论 -
mybatis mapper与实体类映射原理
web.xmlspring-context.xmlspring-config-datasource.xml解析mapper的xml配置文件我们来看看mybatis是怎么读取mapper的xml配置文件并解析其中的sql语句。我们还记得是这样配置sqlSessionFactory的:?123456<bean id="sqlSessionFactory" class="org.mybatis.s...转载 2018-04-23 16:58:36 · 11864 阅读 · 0 评论 -
hibernate mybatis
先比较下jdbc编程和hibernate编程各自的优缺点。 JDBC: 我们平时使用jdbc进行编程,大致需要下面几个步骤: 1,使用jdbc编程需要连接数据库,注册驱动和数据库信息 2,操作Connection,打开Statement对象 3,通过Statement对象执行SQL,返回结果到ResultSet对象 4,使用ResultSet读取数据,然后通过代码转化为具体...转载 2018-04-12 17:16:03 · 162 阅读 · 0 评论 -
深入理解数据库索引
B-树1 .B-树定义B-树是一种平衡的多路查找树,它在文件系统中很有用。定义:一棵m 阶的B-树,或者为空树,或为满足下列特性的m 叉树:⑴树中每个结点至多有m 棵子树;⑵若根结点不是叶子结点,则至少有两棵子树;⑶除根结点之外的所有非终端结点至少有[m/2] 棵子树;⑷所有的非终端结点中包含以下信息数据: (n,A0,K1,A转载 2017-10-05 14:44:34 · 368 阅读 · 0 评论 -
数据库索引原理
使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界(我自己也还没有达到这层境界)。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。为什么要给表加上主键?为什么加索引后会使查询变快?转载 2017-10-05 14:29:18 · 154 阅读 · 0 评论 -
如何做到防止SQL注入
1.PreparedStatement对java有了解的同学基本上都体验过JDBC,基本都了解PreparedStatement,PreparedStatement相比Statement基本解决了SQL注入问题,而且效率也有一定提升。 关于PreparedStatement和Statement其他细节我们不讨论,只关心注入问题。无论读者是老鸟还是菜鸟,都需要问一下自己,原创 2017-08-22 15:21:56 · 290 阅读 · 0 评论 -
SQL注入
避免SQL注入什么是SQL注入SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后转载 2017-08-22 14:59:09 · 317 阅读 · 0 评论 -
数据库索引
一、引言对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。[最近首页之争沸沸扬扬,也不知道这个放在这合适么,苦劳?功劳?……] 二、B-Tree我们常见的数据库系统,其索引使用的数据结构多是B-Tree或者B+Tree。例如,MsSql使用的是转载 2017-08-16 14:35:35 · 149 阅读 · 0 评论 -
数据库--范式
四、范式数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,最多考虑到BCNF就够。符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF。1.1NF的定义为:符合1NF的关系中的每个属性都不可再分。即表中不可有表但是仅仅符合1NF的设计,仍然会存在数据冗余过大,插入异常,删除异常,修改异常的问题。原创 2017-07-24 13:24:17 · 185 阅读 · 0 评论 -
SQL各种join的区别
现有两张表,Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的:1.INNER JOIN 产生的结果是AB的交集SELECT * FROM TableAINNER JOINTableB ON TableA.name = TableB.name 2.LEFT [OUTER] JOIN产生表A的完全集,而B表中匹配的...原创 2019-07-25 16:44:48 · 1328 阅读 · 0 评论