从 Confluence 6.4 开始,我们使用官方的 Microsoft SQL Server JDBC 驱动来替换掉开源的 jTDS 驱动。 从这个版本开始所有的安装都会默认使用官方的 Microsoft JDBC Driver for SQL Server 。 已经存在的实例将会继续使用 jTDS 驱动。 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+SQL+Server
其它管理工具 ---- mysqldump time mysqldump -u root -p fake_xx > fake_xx.sql time mysqldump -u root -p tab_xx conversations > /tmp/conversations.backup.sql ---- mysqladmin /usr/bin/mysqladmin flush-logs ; /etc/ mysqlslap --no-defaults --debug-info -uroot -p --number-int-cols=5 --number-char-cols=10 --auto-generate-sql --auto-generate-sql-add-autoincrement --concurrency=100 --number-of-queries=10000 --iterations=3 --engine --auto-generate-sql-add-autoincrement --concurrency=100 --number-of-queries=10000 --iterations=10 --
----DB2 Magazine P6Spy & SQL Profiler & IronTrack SQL P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。 通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。 P6Spy的驱动程序名称com.p6spy.engine.spy.P6SpyDriver其它的都不用更改; 5、打开spy.properties文件,把realdriver的值改为你的程序的数据库驱动名称 P6Spy的驱动程序名称com.p6spy.engine.spy.P6SpyDriver其它的都不用更改; 5、打开spy.properties文件,把realdriver的值改为你的程序的数据库驱动名称 P6Spy的驱动程序名称com.p6spy.engine.spy.P6SpyDriver其它的都不用更改; 5、打开spy.properties文件,把realdriver的值改为你的程序的数据库驱动名称
SQL主要是用来到数据库里查询数据,这是数据分析过程的第一步。 你要分析数据,首先要获取数据。所以,这是转行到数据分析岗位的必备技能。 感谢 @猴子 老师的“猴子聊人物”公众号,我入门SQL就是在猴子的“转行数据分析师闯关教程”里学到的。 柯本:新手如何学习SQLzhuanlan.zhihu.com 柯本:《MySQL必知必会》学习小结zhuanlan.zhihu.com 一、SQL性能优化题 SQL语句的性能优化是经常在面试数据分析师的过程中被问到的 在大型数据库里调用查询数据,效率很重要,语句使用不当,甚至会导致数据库卡死(面试过程中面试官直接跟我说的,之前我根本不知道语句还要优化~ )。 id=5ef51ee6aea226dc24275aac635c1cba&sub=B3D65399276D4C5C8974650AFC2BEA50note.youdao.com 增加 SQL – ZOO
接上文 Spark UI (3、4、5) - Storage、Environment、Executors页面SQL页面展示了作业执行Spark SQL的情况, 它会按SQL层面展示一条SQL在Spark 图片SQL详情页面会展示SQL在spark中执行的具体计划(DAG图):INSERT OVERWRITE TABLE `${target.table}`select t1.report_date, join mart_grocery.dim_op_poi t2 on t1.grid_poi_id=t2.poi_id where t1.dt = '20220410'图片下方的Details会展示SQL 中如何解析并优化的:图片图片FAQ1.检查分区过滤条件是否生效如果输入表是分区表, 且只需要读部分分区时,我们可以观察对应的HiveTableScan是否有分区字段的过滤条件, 如果有代表只会读取符合条件的分区数据 图片2.ETL任务Stage和DAG的对应关系通过stage DAG图中的coordinator id可以找到在SQL页面对应的位置, 例如:图片
SQL6 删除记录(一) 描述 现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,结构如下表: 作答记录表exam_record: start_time是试卷开始时间 submit_time 9001|2021-05-02 10:01:01|2021-05-02 10:05:58|60 5|1003|9001|2021-09-05 19:01:01|2021-09-05 19:40:01|49 6| DELETE FROM exam_record WHERE score < 60 AND TIMESTAMPDIFF(MINUTE, start_time, submit_time) < 5; SQL7 9001|2020-01-01 22:11:12|2020-01-01 23:16:12|50 4|1002|9001|2021-05-02 10:01:01|2021-05-02 10:06:58|60 6| ,主要语法如下: 在已有列后新增列 ALTER TABLE [数据表名] ADD [列名] [列类型] AFTER [列名]; 修改已有列名和列类型 ALTER TABLE [数据表名] CHANGE
到目前为止,我们学习了表的创建、查询和更新等数据库的基本操作方法。现在我们将会在这些基本方法的基础上,学习一些实际应用的方法。 一:视图 1:视图和表 表中存储的是实际数据,而视图中保存的是从表中获取数据所使用的SELECT语句。从SQL的角度来看,视图和表是一样的,只是视图并不存储数据,而是存储SELECT语句。 product_type | cnt_product--------------+------------- 办公用品 | 2 (1 行记录) 注释: ● 对大多数DBMS来说,多重视图会降低SQL product_type | cnt_product--------------+------------- 厨房用具 | 4 (1 行记录) 但是随着子查询的层数增加,SQL sale_price) FROM Product; 执行结果: avg----------------------- 2097.5000000000000000 (1 行记录) 然后完整的SQL
SQL–数据库基础查询操作》。 前几节所总结的查询,都是基于单张表格进行的,如果单张表格的信息不足以达到查询的目的,就需要将他们组合到一起形成多张表格。 1. 2.3 左联结 LEFT JOIN 左联结是将左边表中的数据全部保留,然后将右边表中与左表相交的数据取出,针对相交数据进行笛卡尔积合成表。 左联结看起来就是将左表数据全部保留,然后左右表相交数据进行交叉联结,没有的数据用NULL 填充,得到最终结果。 翻译成SQL 如下图: 代码实现如下: SELECT a.学号,a.姓名, COUNT(b.课程号) AS 选课数, SUM(b.成绩) AS 总成绩 FROM student AS a LEFT SQL实现 代码如下: SELECT a.学号,a.姓名, AVG(b.成绩) AS 平均成绩 FROM student AS a LEFT JOIN score AS b ON a.学号=b.学号
如果你还没有在安装可以连接的 Microsoft SQL Server 数据库,请先下载后进行安装。请参考 MSDN 上 Installation for SQL Server 的指南。 SQL Server 允许有 2 种的授权模式:SQL Server Authentication 和 Windows Authentication。 为了让你的 Confluence 能够顺利连上你的数据库,你需要设置你的 SQL Server 服务器使用混合授权模式( SQL Server 和 Windows 模式)。 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+SQL+Server
在你的数据库设置界面,有一个 测试连接(Test connection)按钮可以检查: Confluence 可以连接你的数据库服务器 数据库字符集和隔离级别是正确的 你的数据库用户有正确的数据库权限 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+SQL+Server
Confluence 的安装向导将会指导你一步一步的在 Confluence 中配置安装 SQL Server 数据库。 简单(Simple) 主机名(Hostname) 你数据库服务器使用的主机名或者 IP 地址。 简单(Simple) 端口( Port) SQL Server 数据服务器的端口。 如果你在安装 SQL Server 的时候没有修改的话,默认端口是 1433。 SELECT SERVERPROPERTY('InstanceName'); 如果你默认的实例名称命名为 SQL https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+SQL+Server
以下是SQL面试必备的经典的50道题目,每道题都有博主本人的解题思路和对应的SQL语句。 每道题的思路与答案均为博主本人主观理解,仅供参考。 from course) as b on a.t_id=b.t_id inner join (select s_id, c_id from score) as c on b.c_id=c.c_id ); 6、
6. Mybatis映射文件深入 - 新增数据后返回主键ID - 动态SQL - SQL片段 前言 在前面的篇章中,我们已经认识了如何使用 resultMap标签 映射查询的结果集字段、多条件查询、模糊查询。 下面我们来模拟查询,如下: -- 查询数据的同时,查询返回自增的ID -- 注意:这两行SQL要按照顺序同时执行,否则单独查询 SELECT LAST_INSERT_ID(); 不会返回最新的自增ID ① UserMapper接口 public interface UserMapper { /* * # 复杂操作:插入一条数据返回对应的主键 * sql: ); System.out.println("以集合保存 in 条件参数: " + result); // 以数组保存 in 条件参数 int[] array = {2,4,6}
也正是因为这个特性,一种很常见的SQL技巧是,用left join可替换not exists、not in等相关子查询,如下:sql复制代码select * from tableA A where not 查询各类别最大的那条数据比如在学籍管理系统中,有一类很常见的需求,查询每学科分数最高的那条数据,有如下几种写法:sql复制代码select * from stu_score s where s.course_id 上面场景还有一种写法,就是使用group by先把各学科最大分算出来,然后再关联出相应数据,如下:sql复制代码select * from(select s.course_id,max(s.score) 但是这样对比的效率比较低下,因为它要两个表的数据全都查出来,其实我们不一定非要都查出来,只要计算出一个hash值,然后对比hash值即可,如下:sql复制代码select BIT_XOR(CRC32(CONCAT 这个查询最终只会返回1条hash值,查询数据量大大减少了,数据对比效率就上去了。
不同的数据库通常要求不同的 SQL 校验查询。校验查询通常需要尽可能的简单,这个查询在链接从数据库连接池中取出的时候都会被执行一次。 针对不同的数据库类型,我们推荐先的校验查询 SQL: MySQL select 1 Microsoft SQL Server select 1 Oracle select 1 from dual PostgreSQL
TABLE will create implicit sequence "lmf_model_id_seq" for serial column "lmf_model.id" CONTEXT: SQL 'm6', 5), ('u8', 'm8', 5), ('u9', 'm3', 1), ('u9', 'm5', 2), ('u9', 'm7', 4) ; 从行为数据表生成用户索引表数据 从行为数据表生成评分矩阵表数据。 col_id = t2.music_idx order by t1.s desc, t1.val desc limit 5; $func$ language sql where rn = 1 and t1.r2 = t2.music_idx order by s desc; $func$ language sql
SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’); 6、 (a.salary) from salary a,salary b where a.year<=b.year group by b.year order by b.year; 在面试过程中多次碰到一道SQL
在开始前,请检查: 请查看 Supported Platforms 页面来获得 Confluence 系统支持的 SQL Server 数据库版本。 你需要在安装 Confluence 之前升级你的 Oracle 数据库。 如果你从其他的数据库中迁移到使用 SQL Server 数据库,包括你从嵌入的内置评估数据库迁移到 Oracle,在进行安装之前,请阅读 Migrating to Another Database 中的内容 https://www.cwiki.us/display/CONFLUENCEWIKI/Database+Setup+for+SQL+Server
SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 防止SQL注入,我们可以从以下6个要点来进行: 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和 双"-"进行转换等。 2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。 3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。 5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装 6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具 采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。 PHP的MySQL扩展提供了mysqli_real_escape_string()函数来转义特殊的输入字符。
但没有敬畏之心,估计做不好 SQL 开发。在项目初期,流量还没起来的时候,你怎么写 SQL 都是对的。可以自认为一切 SQL 都是纸老虎,没有你搞不定的数据库。 数据库背后暗藏的坑,你是填不完的。 在T-SQL开发中,如果你知道 rewind, rebind ,那我接受你的臭鸡蛋和板砖;如果你不知道这两者,我也接受你的鲜花和掌声,还有赞赏! 是理解本篇的重点 Order By 就是将离散分布的数据集重新汇聚成一个有序的集合。 这样连续等值就可以充分发挥 rewind 的作用,将数据缓存起来,给下一个等值返回缓存的结果集,一旦下一个值变了,就丢弃这份缓存,重新去拉取新数据。 可见离散的时候,等值很多,但不连续,造成 rewind 频繁的去抓取数据,浪费时间。