北京小辉
余辉,硕士毕业于中科院,从事IT行业12年。专注于大数据、云数据、用户画像、推荐算法。在数据团队担任过的角色:研发、架构师、负责人、讲师。数据知识产权:出版大数据书籍【1】本,论文【2】篇,软著【6】篇,专利【65】篇。
展开
-
SQL行转列、列转行
目录 一、整理测试数据 SQL行转列、列转行 这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况。列转行问题同样也很常见。 一、整理测试数据 create table wyc_test( id int(32) not null auto_increment, name varchar(80) default null, date date d...原创 2021-07-27 19:52:39 · 371 阅读 · 0 评论 -
Mysql教程(一)---本教程数据准备
目录 1、house_prices 2、comcat_text 3、info Mysql教程的所有表格和数据陆续加载 1、house_prices CREATE TABLE `house_prices` ( `Home` int NOT NULL COMMENT '房子编号', `Price` int DEFAULT NULL COMMENT '价格', `SqFt` int DEF...原创 2020-05-04 09:18:46 · 989 阅读 · 1 评论 -
Mysql教程(二)---Mysql建库建表规范
1、最简单的:CREATE TABLE t1( id int not null, name char(20) );2、带主键的:a:CREATE TABLE t1( id int not null primary key, name char(20) );b:复合主键CREATE TABLE t1( id int not null, name char原创 2016-07-20 10:57:19 · 6301 阅读 · 0 评论 -
Mysql教程(三)---SELECT基础检索
目录 1、检索指定列列 2、星符号初体验 3、DISTINCT 去重 4、Order by 5、Limit 1、检索指定列列 指定列名称,列的顺序为自己指定 select Home , price , SqFt , Bedrooms ,Neighborhood from house_prices 2、星符号初体验 【*】代表全部列名称,列的顺序为建表顺序 select * from house...原创 2020-05-04 09:49:09 · 1039 阅读 · 2 评论 -
Mysql教程(四)---过滤数据
目录 1、WHERE过滤 2、BETWEEN 3、NULL空值 4、多过滤条件组合 5、IN与NOT IN过滤 6、LIKE与通配符过滤 1、WHERE过滤 select * from house_prices where Home >=10 and Home <=20; -- 并且 select * from house_prices where Home <=10 ...原创 2020-05-04 10:34:58 · 717 阅读 · 1 评论 -
Mysql教程(五)---SQL正则表达式
目录 1、SQL正则表达式列表 2、SQL正则表达式案例 备注:Mysql教程(一)—本教程数据准备 1、SQL正则表达式列表 备注: a1竖线a2 为: a1|a2 。由于Markdown中竖线为列的分隔符 REGEXP 说明 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 $ 匹...原创 2020-05-04 11:00:40 · 953 阅读 · 0 评论 -
Mysql教程(六)---计算字段
目录 1、concat 2、别名 3、计算 1、concat -- 通过CONCAT将过多字符串连接 select *, CONCAT(company,'(',city,code,')') from comcat_text; -- 如果有拼接null 则全为null select *, CONCAT(company,'(',city,NULL,')') from comcat_text; 2...原创 2020-05-04 11:18:50 · 496 阅读 · 0 评论 -
Mysql教程(七)---高效的数据处理函数
目录 1、时间日期处理 2、数值处理函数 3、文本处理函数 备注:Mysql教程(一)—本教程数据准备 1、时间日期处理 CurDate() 返回当前日期 CurTime() 返回当前时间 Date() 返回日期时间的日期部分 DateDiff() 计算两个日期之差 Day() 返回一个日期的天数部分 DayOfWeek() 对于一个日期,返回对应的星期几 ,注意返回值星期日为1,星期一...原创 2020-05-04 11:34:49 · 1435 阅读 · 0 评论 -
Mysql教程(八)---常用的聚集函数
目录 1、数据展示 2、平均及坑 3、统计count及坑 4、distinct什么时候用 5、其他函数 备注:Mysql教程(一)—本教程数据准备 1、数据展示 1、平均及坑 1)avg 是一个数字计算函数 2)如果有null ,则对null值列去掉之后再开始计算 比如:1,2,3,4, 5,null,7,8 avg计算为:1+2+3+4+5+7+8 / 7 2、统计count及坑 1)...原创 2020-05-04 12:13:19 · 451 阅读 · 0 评论 -
Mysql教程(九)---分组
目录 1、数据展示 2、分组的意义 3、HAVING过滤分组 4、分组排序及执行顺序 备注:Mysql教程(一)—本教程数据准备 1、数据展示 2、分组的意义及约束 分组的意义 1)分组时候,分组的字段一定要出现在select 字段中 2)分组时候,select 可以出现聚合函数 分组的约束 1)对null的处理 2)select 中有多余的字段 3)低版本 不能按照别名进行分组,5.8可以使用...原创 2020-05-04 13:47:11 · 720 阅读 · 0 评论 -
Mysql教程(十)---子查询
目录 1、子查询功能和约束 2、需求:找出大于平均值得房屋 3、需求:在原有列中加入,房屋平均价格列 4、需求:朝向和卫生间房屋分组的平均价格大于总平均价格 5、需求:相同卧室个数的大于,大于平均价格 6、EXIST与NOT EXIST 备注:Mysql教程(一)—本教程数据准备 1、子查询功能和约束 子查询:通过多个嵌套获得结果 运行过程:先执行内部查询,在执行外部查询 作用域:外嵌套的表名称...原创 2020-05-04 19:34:13 · 504 阅读 · 0 评论 -
Mysql教程(十一)---内连接-外连接-全连接
目录 1、JOIN 按照功能描述 2、内连接 3、左外连接 4、右外连接 1、JOIN 按照功能描述 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应...原创 2020-05-05 10:26:48 · 805 阅读 · 0 评论 -
Mysql教程(十二)---cross join 的用法(笛卡尔积)
CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘起来。 [实例]: SQL CROSS JOIN will return all records where each row from the first table is combined with each row from the second table. Which also mean CROSS JOIN returns the...原创 2019-12-06 15:08:57 · 1637 阅读 · 0 评论 -
Mysql教程(十三)---CASE WHEN
目录 1、简单函数 2、搜索函数 3、案例分析 4、聚合函数 sum 配合 case when 1、简单函数 CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END: 枚举这个字段所有可能的值* -- 简单函数 CASE <表达式> WHEN <表达式1> THEN <表达式4> ...原创 2020-05-05 17:34:10 · 450 阅读 · 0 评论 -
Mysql教程(十四)---窗口函数
目录 1、MySQL窗口函数简介 2、窗口函数如何使用 3、序号函数操作 1、MySQL窗口函数简介 MySQL从8.0开始支持窗口函数,这个功能在大多商业数据库和部分开源数据库中早已支持,有的也叫分析函数。 1)什么叫窗口? 窗口函数也就是OLAP,拼写:online analytica...原创 2020-05-05 20:52:44 · 1770 阅读 · 0 评论 -
Mysql教程(二十)---java程序向mysql中插入数据的中文乱码
1、java配置一端 url=jdbc:mysql://hadoop11:3306/sina_weibo 改为 url=jdbc:mysql://hadoop11:3306/sina_weibo?useUnicode=true&characterEncoding=utf8 2、mysql一端 showvariablesli原创 2016-06-02 21:15:44 · 766 阅读 · 0 评论 -
Mysql教程(二十 一)---自定义Mysql连接池
目录:一、需求二、传统链接三、自定义连接池四、代码展现五、结果展现———————————————————————————————————一、需求自定义Mysql连接池,让多个Mysql的连接放在一个池内,每次用完就放回池内,避免过多连接Mysql。二、传统链接(如下为示意图) 三、自定义连接池(示意图) 四、代码展现package com.xiaoyu.cn;import java.sql.Co原创 2017-06-02 12:15:24 · 1007 阅读 · 0 评论 -
Mysql教程(二十二)---ISNULL()和IFNULL() is null 和 is not null
create table userinfo (num int not NULL,name varchar(20), age int , primary key(num));INSERT INTO userinfo(num , name , age) VALUES (1 , 'yuhui' , 30); INSERT INTO userinfo(num , name , age) VALUES (2原创 2016-07-20 10:55:17 · 2902 阅读 · 0 评论 -
Mysql教程(二十三)---主键存在则更新,不存在则插入
需求:MYSQL主键存在则更新,不存在则插入 package com.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; /*** * 需求:MYSQL主键存在则更新,不存在则插入 * * 解决: * 1、主键为:PRIMARY K...原创 2018-10-15 11:24:41 · 1801 阅读 · 0 评论 -
Mysql案例(一)---分组取topN的三种方式
问题:有表 如下,要求取出各班前两名(允许并列第二) 表内容如下所示: id SName ClsNo Score 1 AAAA C1 67 2 BBBB C1 55 3 CCCC C1 67 4 DDDD C1 65 5 EEEE C1 95 6 FFFF C2 57 7 GGGG C2 87 8 HHHH C2 74 9 IIII原创 2019-12-10 09:27:17 · 922 阅读 · 0 评论 -
Mysql案例(二)---列转行
列转行 SELECT GROUP_CONCAT(shop_name),product_id from shopproduct GROUP BY product_id;原创 2020-05-14 13:04:17 · 464 阅读 · 0 评论 -
Mysql 忘记root密码的完美解决方法
目录:一、更改my.cnf配置文件二、更改root用户名————————————————————————————————————–一、更改my.cnf配置文件1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 2.在[mysqld]下添加skip-grant-tables,然后保存并退出3.重启mysql服务:service mys原创 2017-05-27 10:11:57 · 727 阅读 · 0 评论 -
Mysql安装innodb支持
注意:查看/tem文件权限是不是 777 ,再添加 install plugin innodb soname ‘ha_innodb.so’; ,它会在tmp文件中写一个文本,如果没有权限,则报出找不到文件错误。系统环境:linux数据库版本:mysql 5.1.47 需要要安装innodb类型支持 先查看mysql是否安装了innodb插件[root@localhost bin]# ./原创 2017-05-22 18:46:22 · 2236 阅读 · 0 评论 -
Mysql 实用知识
目录:一、MySQL的安装与配置 1)MySQL的安装与配置–安装RPM包 2)MySQL的安装与配置–安装二进制包 3)MySQL的安装与配置–安装源码包二、用户与权限 1)用户与权限—用户管理 2)用户与权限—权限表 3)用户与权限—权限管理三、表类型(存储引擎)介绍 1)存储引擎查看 2)存储引擎原创 2017-03-30 17:09:29 · 765 阅读 · 0 评论 -
Mysql连接池问题
17/03/29 09:07:23 WARN resourcepool.BasicResourcePool: com.mchange.v2.resourcepool.BasicResourcePool@67d8bcd1 -- an attempt to checkout a resource was interrupted, and the pool is still live: some othe原创 2017-03-29 09:33:14 · 2548 阅读 · 0 评论 -
Mysql:Mysql主键
主键没有着明确的概念定义,其是索引的一种,并且是唯一性索引的一种,且必须定义为“PRIMARY KEY”,是只可意会不可言传的东西。下面让我用通俗,甚至有些低俗的语言为您简单介绍一下MySQL的主键。 简单描述: 主键不能重复,就像QQ的用户名,有N个叫“虫zi”的网友,可是他们的QQ号码是不一样的,也就是说真正标识一个QQ的身份是“QQ号码”。还有那万恶的身份证,无论“张原创 2016-11-01 14:47:32 · 1180 阅读 · 0 评论 -
五大主流数据库模型
前言:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。什么是数据模型? 访问数据库中的数据取决于数据库实现的数据模型。数据模型会影响客户端通过API对数据的操作。不同的数据模型可能会提供或多或少的功能。一般而言,数据模型不会直接提供过多的功能,许多功能必须由客户端自行实现。原创 2016-09-11 14:56:54 · 3314 阅读 · 0 评论 -
50种方法优化SQL Server
50种方法优化SQL Server 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)原创 2015-08-30 09:50:55 · 950 阅读 · 0 评论 -
MySql中的分页
MySQL中分页实现 我们来贴例子吧! mysql> select pname from product; +——–+ | pname | +——–+ | 产品1 | | 产品2 | | 产品三 | +——–+ 3 rows in set (0.00 sec)这个地方是说,从product中选出所有的pname来,一共有三条记录。 MySQL中的分页非常简单,我们可以使用l原创 2016-03-20 08:28:30 · 634 阅读 · 0 评论 -
Orcal中的分页
第一种:显示从5 到 10 的员工 1、table01 按照工资降序排列出所有员工 select * from emp order by sal desc2、table02 在员工表table01中设定rownum,rownum<=5 select rownum no, e.* from (select * from emp order by sal desc) e原创 2016-03-20 08:29:38 · 811 阅读 · 0 评论 -
详解Mysql数据导入到SQLServer数据库中
本地方法不仅限定于Mysql,也可以将Excel、Oracle数据导入到SQLServer中。原创 2016-04-28 22:30:48 · 15010 阅读 · 4 评论 -
mySql:MySql安装杂记
1)在公司安装mysql没遇到问题;但在家里安装遇到了问题,安装完成后没有反映,后来发现只是安装了程序,并没有安装服务。 2)安装完程序后(win7 32位),运行mysql: ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' 2)在bin下执行:mysqld --install;然后再服务看到mysql服务,原创 2015-08-30 13:39:27 · 792 阅读 · 0 评论 -
mysql:linux下mysql默认安装、目录更改、常用命令
MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 下面就介绍一下这几个目录。 1、数据库目录 /var/lib/mysql/ 2、配置文件 /usr/sha原创 2016-06-02 16:05:19 · 817 阅读 · 0 评论 -
Mysql:Mysql分表的几种方式
一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。 根据个人经验,mysql执行一个sql的过程如下: 1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行结果。在这个执行过程中最花时间在什么地方呢?第一,是排队等待的时间,第二,sql的执行时转载 2016-08-23 17:15:59 · 828 阅读 · 0 评论