![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
SQl
想做产品经理的Java工程师
这个作者很懒,什么都没留下…
展开
-
1_SQL 之连接查询
1.左连接(左外连接)以左表为基准进行查询, 左表数据会全部显示出来, 右表如果和左表匹配的数据则显示相应字段的数据, 如果不匹配,则显示为NULL; 2.右连接(右外连接)以右表为基准进行查询, 右表数据会全部显示出来, 右表如果和左表匹配的数据则显示相应字段的数据, 如果不匹配,则显示为NULL; 3.全连接 就是先以左表进行左外连接,然后以右表进行右外连接。4.内连接: 显示表之间有连接匹配的所有行。1.左连接(左外连接)以左表为基准原创 2021-09-05 11:16:03 · 364 阅读 · 0 评论 -
2_SQL 之聚合函数
聚合函数是对一组值进行计算并返回单一的值的函数,它经常与select语句中的group by子句一同使用。 avg():返回的是指定组中的平均值,空值被忽略。 count():返回的是指定组中的项目个数。 max():返回指定数据中的最大值。 min():返回指定数据中的最小值。 sum():返回指定数据的和,只能用于数字列,空值忽略。 group by():对数据进行分组,对执行完 group by 之后的组进行聚合函数的运算, 计算每一组的值。最后用 having 去原创 2021-09-05 11:18:29 · 235 阅读 · 0 评论 -
3_SQL 之 SQL 注入
select admin from user where username='admin' or 'a'='a' and passwd=''or 'a'='a举例: 防止 SQL 注入,使用预编译语句是预防 SQL 注入的最佳方式,如 使用预编译的 SQL 语句语义不会发生改变,在 SQL 语句中,变量用问号?会当 作 username 字符串来解释查询,从根本上杜绝了 SQL 注入攻击的发生。 注意:使用 mybaits 时 mapper 中#方式能够很大程度防止 SQL 注入,$方式 无法防止 SQ原创 2021-09-05 11:23:31 · 43 阅读 · 0 评论 -
4_SQL Select 语句完整的执行顺序
查询中用到的关键词主要包含六个, 并且他们的顺序依次为 select --from --where --group by --having --order by 其中 select 和 from 是必须的,其他关键词是可选的, 这六个关键词的执行顺序如下: from: 需要从哪个数据表检索数据where: 过滤表中数据的条件 group by: 如何将上面过滤出的数据分组算结果 order by : 按照什么样的顺序来查看返回的数据查询中用到的关键词主要包含六原创 2021-09-05 11:24:57 · 84 阅读 · 0 评论 -
5_数据库事务
事务事务(TRANSACTION) 是作为单个逻辑工作单元执行的一系列操作,这些操 作作为一个整体一起向系统提交,要么都执行.要么都不执行。事务是一个不可分割的工作逻辑单元事务必须具备以下 四个属性,简称 ACID 属性: A 原子性(Atomicity): 事务是一个完整的操作。 事务的各步操作是不可分的(原子的); 要么都执行,要么都不执行 C 一致性(Consistency): 当事务完成时,数据必须处于一致状态。I 隔离性(Isolation): 对数据进行修改的所有并原创 2021-09-05 11:38:29 · 130 阅读 · 0 评论 -
6_存储过程
**存储过程优化思路:** 1. 尽量利用一些 SQL 语句来替代一些小循环,例如聚合函数,求平均 函数等。 2. 中间结果存放于临时表,加索引。 3. 少使用游标。 SQL 是个集合语言,对于集合运算具有较高性能。 而cursors是过程运算。 4. 事务越短越好。 SQLserver 支持并发操作。 如果事务过多过长,或者隔离级 别过高,都会造成并发操作的阻塞,死锁。 导致查询极慢,cpu 占用率极地。5. 使用 try-catch 处理错误异常。6. 查找语句尽量不要放原创 2021-09-05 11:42:48 · 58 阅读 · 0 评论 -
7_数据库并发策略
并发控制并发控制一般采用三种方法,分别是乐观锁悲观锁时间戳--------------------------------------------------------------------------------------------------------乐观锁乐观锁认为一个用户读数据的时候,别人不会去写自己所 读的数据;悲观锁就刚好相反,觉得自 己读数据库的时候, 别人可能刚好在写自己刚读的数据, 其实就是持一种比较 保守的态度;时间 戳就是不加锁,通过时间戳来控制并发 出现的问题原创 2021-09-05 11:53:53 · 163 阅读 · 0 评论 -
8_触发器
触发器是一段能自动执行的程序,是一种特殊的存储过程 触发器和普通的存储过程的区别是: 触发器是当对 某 一 个 表 进 行 操 作 时 触 发 。诸如 :update.insert.delete 这些操作的时候,系统会自动调用执行该表上对应的触发器SQL Server 2005 中触发器可以分为两类:DML触发器和DDL触发器其中 DDL 触发器它们会影响多种数据定义语言语句而激发, 这些语句有create. alter.drop 语句。触发器是一段能自动执行的程序,是一种特殊的存原创 2021-09-05 15:12:45 · 75 阅读 · 0 评论 -
9_MySQL 常用 30 种 SQL 查询语句优化方法
1.应尽量避免在 where 子句中使用!=或<>操作符, 否则引擎将放弃使用索引而进行全表扫描。2.对查询进行优化,应尽量避免全表扫描, 首先应考虑在where 及 order by 涉及的列上建立索引。3.应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描。 如: select id from t where num is null 可以在 num 上设置默认值 0,确保表中 num 列没有null 值, 然后这样查询:原创 2021-09-05 15:22:38 · 55 阅读 · 0 评论 -
10_数据库优化方案整理
优化说明(1)有数据表明,用户可以承受的最大等待时间为 8 秒。数据库优化策略有很多,设计初期,建立好的数据结构对于后期性能优化至关重要。因为数据库结构是系统的基石,基础打不好,使用各种优化策略,也不能达到很完美的效果。(2)数据库优化的几个方面可以看出来,数据结构.SQL.索引是成本最低,且效果最好的优化手段。(3)性能优化是无止境的,当性能可以满足需求时即可,不要过度优化优化方向1)SQL 以及索引的优化首先要根据需求写出结构良好的 SQL,然后根据 SQL 在表中建立有效的索引。但原创 2021-09-05 15:48:22 · 98 阅读 · 0 评论