MySQL
MySQL
失业找工作中
it小白的学习笔记,加油!
展开
-
MYSQL 的TO_DAYS、STR_TO_DAYS
TO_DAYS就像它的名字一样,它只能转换到每一天,就是说一天的时间字符串会被转换成一个数,如mysql>select to_days("2018-03-29 14:39:51");结果:737147这个粒度的查询是比较粗糙的,可能不能满足我们的查询要求,那么就引入细粒度的查询方法STR_TO_DAYS这个函数可以把字符串时间完全的翻译过来,就很好用了原创 2018-03-29 14:19:47 · 335 阅读 · 0 评论 -
Mysql模糊查询like效率,以及更高效的写法
在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来。这个时候查询的效率就显得很重要! 一般情况下like模糊查询的写法为(field已...原创 2018-04-02 16:18:30 · 392 阅读 · 0 评论 -
MySQL中实现upsert操作
该操作的实现原理是通过判断插入的记录里是否存在主键冲突来决定是插入还是更新,当出现主键冲突时则进行更新操作(使用 ON DUPLICATE KEY UPDATE 语句后面的参数),若无冲突则进行插入操作。INSERT INTO tmp (id, name, age ) VALUES (1, '原创 2018-03-30 17:58:34 · 4235 阅读 · 0 评论 -
sql中查询同一列所有值出现的次数并排列
需要查询country中各个国家出现的次数并根据出现的次数排序SELECT country as 国家,COUNT(*) as 次数 FROM table3 GROUP BY country ORDER BY 次数 DESC知识点:count(*)统计的是结果集的总条数,count(字段名)统计的是该字段值不为null的总条数Group By:从...原创 2020-03-28 17:46:23 · 5716 阅读 · 0 评论 -
sql中去掉字段的所有空格
字符前的空格,用ltrim(string)字符后的空格,用rtrim(string)字符中的空格,用replace(string, ' ', ' ')例update qx_users set `NAME`=rtrim(NAME)update qx_users set `NAME`=ltrim(NAME)update qx_users set NAME=replace(NAM...原创 2018-10-19 10:28:49 · 71096 阅读 · 1 评论 -
mysql查询sending data占用大量时间的问题处理
问题描述:某条sql语句在测试环境执行只需要1秒不到,到了生产环境执行需要8秒以上在phpmyadmin里面执行性能分析,发现sending data占用了差不多90%以上的时间查询一下“Sending data”状态的含义,原来这个状态的名称很具有误导性,所谓的“Sending data”并不是单纯的发送数据,而是包括“收集 + 发送 数据”。这里的关键是为什么要收集数据,原因在...原创 2018-10-22 17:31:17 · 2061 阅读 · 0 评论 -
本地mysql 1042 can‘t get hostname for your address解决办法
先看下hosts文件,看看有没有问题,然后tracert127.0.0.1,看能不能成功回调本机,成功之后,运行netsh winsock reset这个方法我没有试前面的那段,直接在cmd里面netsh winsock reset了,然后就解决了。...原创 2018-11-05 19:52:00 · 314 阅读 · 0 评论 -
SQL语句 按年龄段分组统计人数问题
SELECT CASEWHEN age IS NULL THEN '未知'WHEN age < 20 THEN '小于20岁'WHEN age >= 20AND age < 30 THEN '20岁到30岁'WHEN age >= 30AND age < 40 THEN '30岁到40岁'WHEN age >= 40AND ag...原创 2019-02-13 12:24:19 · 12043 阅读 · 0 评论 -
数据库隔离级别
一、首先什么是事务?事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。二、事务的 ACID事务具有四个特征:原子性( Ato...原创 2019-06-23 13:12:34 · 392 阅读 · 0 评论 -
数据库索引
引言说白了,数据库的索引问题就是查找问题数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库中表的数据.索引的实现通常使用B树和变种的B+树(mysql常用的索引就是B+树)除了数据之外,数据库系统还维护为满足特定查找算法的数据结构,这些数据结构以某种方式引用数据.这种数据结构就是索引创建索引的好处①通过创建索引,可以在查询的过程中,提高系统的性能②通过...原创 2019-06-23 13:14:49 · 193 阅读 · 0 评论 -
mysql中文排序(按照中文拼音顺序排序)
在MySQL数据库中使用UTF-8的编码进行排序会出现不按照中文拼音的顺序排序解决这个问题的方案是把编码重新设定为GBK或者BG2312但是问题又来了 数据库重设编码实在是个大问题 显然不能这样使用同步百度发现convert()这个函数可以实现临时编码并且解决问题查询语句:正序:select * from table_name ORDER BY CONVERT(nam...原创 2018-09-03 09:13:16 · 7240 阅读 · 0 评论 -
mysql分段统计
场景模拟 有一个订单表 表中classify_alias字段分别有线路,导游,酒店,游轮,租车五个类别使用一条sql查询出这五个类别订单的数量表中有很多条数据, 每条数据拥有一个状态字段,现在需要统计不同状态的数据有多少条.1、使用sum (if()) SELECT SUM( IF(classify_alias="tourlin...原创 2018-03-29 14:12:56 · 1565 阅读 · 0 评论 -
oracle子查询中not in后面不能为null值的理解
首先说说oracle中的null值吧。null在oracle中代表未知,表示可能有,也可能没有。任何与null值的普通运算都为null,但可以用一些函数来处理null值,oracle排序中默认null最大。接着进入正文这里in后面有null,能返回数据但加了not后,就不能返回数据了这里的in后面的句子可以理解为or拼接,即id in (200,201,null)可以等价于id=200 or id...原创 2018-07-14 11:13:40 · 374 阅读 · 0 评论 -
MySQL常用命令
——Navicat等数据库辅助软件的出现极大地方便了我们使用MySQL、Oracle、SQL Server等数据库,但是作为一名有实力、有逼格的后台开发工程师,不会使用命令行操作数据库是说不过去的,下面介绍一些最常用的MySQL命令,十分钟松松掌握!一、进入命令提示符界面1、windows+R 2、在提示框内输入cmd 3、回车二、MySQL服务的启动与终止命令1、MySQL服务启动:n转载 2017-11-21 15:58:44 · 205 阅读 · 0 评论 -
MySQL复杂查询
所谓复杂查询,指涉及多个表、具有嵌套等复杂结构的查询。这里简要介绍典型的几种复杂查询格式。一、连接查询连接是区别关系与非关系系统的最重要的标志。通过连接运算符可以实现多个表查询。连接查询主要包括内连接、外连接等。假设有Student和Grade两个表如下:+-----+--------+-------+ +-----+------------+--------+| sID | sName转载 2017-11-21 16:57:12 · 481 阅读 · 0 评论 -
MySQL基本的增删改查
使用的是mysql-essential-5.1.55-win32.msi和Navicat for mySql1、新增一个表CREATE TABLE userinfo (uuid varchar(36) NOT NULL PRIMARY KEY,username varchar(30) NOT NULL,userpassword varchar(30) NOT NULL)12345新增之后的状原创 2017-11-21 16:54:47 · 2194 阅读 · 0 评论 -
JDBC连接MySQL之SQL注入
*JDBC是Java对数据库进行操作的一个桥梁. 借助数据库提供的数据驱动, 加上要操作的数据库语言, 执行数据库语句之后就可以对数据库里面的记录进行增 删 改 查(crud)操作了.*请看连接mysql数据库,模拟登陆的演示案例:案例一: sql注入,欺骗服务器执行恶意的SQL命令1.先写一个工具类MyJdbcUtils,封装两个方法:(1)封装连接到数据库的方法getConnection转载 2017-11-22 09:31:28 · 1023 阅读 · 0 评论 -
JDBC事务
事务处理是在针对数据库操作时一个重要环节,它可以保证执行多条记录的一致性,实现数据库中表与表之间的关联,同时提高了对数据操作的准确性、安全性。本文主要一起来学习在Java程序中如何使用JDBC来实现数据间的事务处理。一、什么是事务处理 事务处理就是当执行多个SQL指令时,如果因为某个原因使其中一条指令执行有错误,则取消先前执行过的所有指令。它的作用是保证各项操作的一致性和完整性。转载 2017-11-22 09:50:31 · 409 阅读 · 0 评论 -
C3P0连接池
在Java开发中,使用JDBC操作数据库的四个步骤如下: ①加载数据库驱动程序(Class.forName("数据库驱动类");) ②连接数据库(Connection con = DriverManager.getConnection();) ③操作数据库(PreparedStatement stat = con.prepareStatement(s原创 2017-11-22 10:04:00 · 295 阅读 · 0 评论 -
MySQL约束
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。MYSQL中,常用的几种约束: 主键约束 PRIMARY KEY 代表唯一的一条数据,唯一且非空 唯一约束 UNIQUE 唯一,就是不能重复 外键约束 FOREIGN KEY 可以确保关联表的数据的正确性 非空约束 NOT NULL 不能为空MYSQL的默认约束是DEFAULT, DEFAU转载 2017-11-21 16:12:22 · 288 阅读 · 0 评论 -
SQL中IS NOT NULL与!=NULL的区别
平时经常会遇到这两种写法:IS NOT NULL与!=NULL。也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合。实际上,是由于对二者使用区别理解不透彻。默认情况下,推荐使用 IS NOT NULL去做条件判断,因为SQL默认情况下对WHERE XX!= Null的判断会永远返回0行,却不会提示语法错误。sql92标准中,!= Null条件判断永远返回false,聚合运算永远返回0...原创 2018-05-02 14:58:56 · 12738 阅读 · 0 评论 -
Mysql中Cast()函数的用法
Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intTIME 时间型例如表table1date2015-11-03 15:31:26select cast(date as signed) as date from table1;结果如下:date20151103...原创 2018-06-20 18:41:22 · 132248 阅读 · 5 评论