mysql
文章平均质量分 54
Cry丶
/*有些梦虽然遥不可及, 但却并不是不可以实现*/<br>
写博客的原因(告戒自己):
1.记录自己的成长, 是非对错10年后回望;
2.我踩过的坑,同仁们就不要再迈了;
3.开源精神 理想主义 利他主义。
展开
-
【Mysql性能调优】高性能表结构及索引设计的最优实践
数据库表设计良好的表结构设计是高性能的基石,应该根据系统将要执行的业务查询来设计,这往往需要权衡各种因素。糟糕的表结构设计,会浪费大量的开发时间,严重延误项目开发周期,让人痛苦万分,而且直接影响到数据库的性能,并需要花费大量不必要的优化时间,效果往往还不怎么样。在数据库表设计上有个很重要的设计准则,称为范式设计。范式设计什么是范式?范式来自英文Normal Form,简称NF。MySQL是关系型数据库,但是要想设计—个好的关系,必须使关系满足一定的约束条件,此约束已经形成了规范,分成几个等级,一级原创 2022-02-24 10:57:36 · 481 阅读 · 0 评论 -
【10·24征文】Java优化sql出现多个join关联表的处理方案
一、场景查询sql出现多表join关联,根本原因是数据库表设计的冗余度跟不上业务发展的需求复杂度。二、思路比如现在有一个需求是查询表具(meter)抄表记录,其中meter_info表中有着这么几个外键: corp_id(厂家id) , branch_id(分公司id), organization_id(所属组织id), customer_id(客户id),查询需要显示对应的名称,这些名称都在其他表里,如果用一条sql关联需要left join4张表,数据量上到百万级别,接口返回时间就很可能超过1秒甚原创 2021-11-05 16:03:41 · 1020 阅读 · 0 评论 -
唯一索引和普通索引的区别是什么,什么时候需要建唯一
1. 知识背景什么是索引?一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree)。索引是在表的列上创建。所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中,索引是一种数据结构,一般是B-TREE 。2. 知识剖析MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。创建索引时,你需要确保该索引是应用在SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实原创 2021-05-23 22:52:17 · 456 阅读 · 0 评论 -
LeeCode1709. 访问日期之间最大的空档期
SQL架构表: UserVisits+-------------+------+| Column Name | Type |+-------------+------+| user_id | int || visit_date | date |+-------------+------+该表没有主键。该表包含用户访问某特定零售商的日期日志。假设今天的日期是 '2021-1-1' 。编写 SQL 语句,对于每个 user_id,求出每次访问及其下一个访问(若该次访问是最后一原创 2021-04-03 23:01:52 · 126 阅读 · 0 评论 -
sql:lead() / lag()函数
lag ,lead 分别是向前,向后;lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的offset,第三个参数是 超出记录窗口时的默认值)SQL> select id,name,lead(name,1,0) over ( order by id ) from kkk; ID NAME LEAD(NAME,1,0)OVER(ORDERBYID) 1 1name 2name原创 2021-04-03 22:22:05 · 490 阅读 · 0 评论 -
总结SQL中去除前后空格、改变大小写的方法
trim() 去除前后空格(保留中间空格)ltrim() 去除左边空格rtrim() 去除右边空格replace(... , ' ', '') 去除全部空格lower() 变成小写upper() 变成大写原创 2021-03-29 07:33:48 · 1451 阅读 · 0 评论 -
总结SQL中的各类表格格式化问题
以下题目来自 https://leetcode-cn.com/problemset/database/这里的题型我认为可以分为以下两种:1. 表格转换问题618.学生地理信息报告(困难);1179.重新格式化部门表(简单);1435.制作会话柱状图(简单);1777.每家商店的产品价格(简单);1795.Rearrange Product Table(简单)2. 设计序列构建新表格问题1127.用户购买平台(困难);1336.每次访问的交易次数(困难);1384.按年度列出销售总额(原创 2021-03-28 18:19:10 · 442 阅读 · 0 评论 -
sql函数:coalesce()
转载自:https://blog.csdn.net/weixin_38750084/article/details/83034294COALESCE()函数主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下:COALESCE ( expression,value1,value2……,valuen)COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。COALESCE()函数将会返回包括expression在内的所有参转载 2021-03-26 14:46:24 · 341 阅读 · 0 评论 -
This version of MySQL doesn‘t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery‘ 的解决办法
这样写:select id from table where id in ( select userId from user limit 10) ;就会报下面那个错误This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' ;# 这个版本的mysql不支持子查询中使用limit解决方案如下:在外层再套一层查询select id from table where id in (select原创 2021-03-14 02:00:17 · 200 阅读 · 0 评论 -
mysql中的ifnull()函数、if()函数和nullif()函数
MySQL中的IFNULL函数类似于Oracle中的NVL函数,其表达式为:IFNULL(expr1,expr2),含义是:如果第一个参数不为空,则返回第一个参数,否则返回第二个参数。IF(expr1,expr2,expr3)类似于Oracle中的NVL2函数,含义是:如果第一个表达式的值为TRUE(不为0或null),则返回第二个参数的值,否则返回第三个参数的值。SELECT IFNULL(NULL,"11"); -> 11SELECT IFNULL("00","11"); -> 00原创 2021-03-12 21:13:28 · 316 阅读 · 0 评论 -
sql中on和where的区别(转)
原文:https://www.cnblogs.com/guanshan/articles/guan062.html数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真转载 2021-03-11 19:25:41 · 67 阅读 · 0 评论 -
关于【LeeCode1179. 重新格式化部门表】中group by的本质的讨论
对group by理解不透彻有可能是MySQL用户专有的问题,因为在MySQL中,允许下面这样的写法select id, revenuefrom Departmentgroup by id即在select子句中出现了group by子句中没有出现的列名revenue,而这种写法在SQL标准中是没有的,在MySQL以外的大部分数据库中也是不支持的,因为逻辑上没有意义。要理解为什么这种写法没有意义,我们来看一看题目本身提供的样例数据。(注意,其中的id并不是真正的id,只是部门编号)+------原创 2021-03-11 17:17:18 · 240 阅读 · 0 评论 -
MySQL-IF()函数
定义IF函数根据条件的结果为true或false,返回第一个值,或第二个值语法IF(condition, value_if_true, value_if_false)参数参数描述conditionA必须,判断条件value_if_true可选,当条件为true值返回的值condition可选,当条件为false值返回的值例子SELECT IF(500<1000, 5, 10);SELECT IF(STRCMP("hello","bye") =原创 2021-03-09 03:24:24 · 223 阅读 · 0 评论 -
MySQL 命令行导出、导入Select 查询结果
原文链接:https://www.cnblogs.com/dee0912/p/3973339.html有的时候需要把在一张表中用 select 语句查询出来的结果保存到另一张结构相同的表中,可以有几种方法来实现:方法一:在命令行下使用一对SQL语句完成该操作:导出查询结果:Select语句 into outfile ‘保存路径+文件名’;导入查询结果:load data local infile ‘保存路径+文件名’ into table 表明 character set utf8;例如:查询转载 2021-03-07 22:32:13 · 582 阅读 · 0 评论 -
MySQL的几种连接 join/inner join/cross join/逗号/left join/right join/natural join
原文链接:https://www.cnblogs.com/liulaoshi/p/6219540.html连接:A xjoin B(主表 操作 关联表) select过程:from->where->group by->having->orderby->limit 在不使用on语法时,join、inner join、逗号、crossjoin结果相同,都是取2个表的笛卡尔积。逗号与其他操作符优先级不同,所以有可能产生语法错误,尽量减少用逗号 join、innerjo转载 2021-03-07 02:23:21 · 586 阅读 · 0 评论 -
一千行MySQL学习笔记
原文地址:https://www.cnblogs.com/shockerli/p/1000-plus-line-mysql-notes.html/* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables– 修改root密码 密码加密函数password() update mysql.user set password=转载 2021-03-06 11:25:58 · 581 阅读 · 0 评论 -
MySQL字段每个类型长度大小与建表的类型长度
在创建数据库表时,例如:create table user( id int(4) primary key , name varchar(20), pwd varchar(20));括号里的数字叫数据的宽度,我们不能一概而论,因为不同的数据类型对宽度的处理也不一样:1、整数类型,这里显示的宽度和数据类型的取值范围是没有任何关系的,显示宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插原创 2021-01-17 19:18:04 · 646 阅读 · 0 评论 -
Java中实体类(Entity)成员属性类型对应的MySQL数据库中字段类型
留存用以查阅:原创 2021-01-17 19:00:26 · 1431 阅读 · 0 评论 -
【搬运指针,内附链接】一文搞懂MySQL索引所有知识点(内容真的棒)
敖丙大佬的MySQL索引总结,内含MySQL索引为什么效率高的原理、不同引擎下索引的区别、聚簇索引、覆盖索引、联合索引等知识点,写的很好,这里写个搬运指针,详情访问大佬的博客。一文搞懂MySQL索引所有知识点(建议收藏)永远不要放弃梦想...转载 2020-12-28 01:30:16 · 205 阅读 · 0 评论 -
列举MySQL中的各种日期和时间类型
mysql有5种表示时间值的日期和时间类型,分别为、DATE,TIME,YEAR,DATETIME,TIMESTAMP。其中的TIMESTAMP类型有专有的自动更新特性。类型大小(字节)范围格式用途DATE31000-01-01/9999-12-31YYYY-MM-DD日期值TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间YEAR11901/2155YYYY年份值DATETIME81000-原创 2020-11-25 07:54:34 · 376 阅读 · 0 评论