SQL
sql优化、编写
萝卜-青菜
好人半自苦中来,莫图便益;世事多因忙里错,且更从容。
展开
-
普通索引和联合索引区别
通俗理解:利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引 不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,电话簿将没有用处。所以说创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对...原创 2020-03-13 21:18:12 · 3699 阅读 · 0 评论 -
mysql 向下无限递归(父级子级之间的关系)
新建测试数据表create table menu( id int auto_increment, name VARCHAR(255), parent_id int, PRIMARY KEY(id)) ENGINE=INNODB auto_increment=1 default charset = "utf8";插入测试数据insert into menu(...原创 2020-01-03 10:19:38 · 1127 阅读 · 0 评论 -
MYSQL的递归查询(实现子父节点多级显示)
众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的。这个得益于Mysql允许在SQL语句内使用@变量。以下是示例代码。创建表格CREATE TABLE `treenodes` ( `id` int , -- 节点ID `nodename` varchar (60), -- 节点名称 `pid` ...原创 2019-08-27 15:07:15 · 4255 阅读 · 2 评论 -
模糊查询——搜索结果按字段的权重排序
谈到搜索,一般就想起了SQL Server的FullTextSearch(全文搜索)功能,它确实强大,但使用起来也要做一些较为繁琐的准备工作,一般小型的项目或者对搜索要求(包括性能需求)不是很高的情况下实用它还是有点太重型了。简单的搜索用SQL查询即可,但一般面临的一个问题就是如何对搜索结果按匹配字段进行优先级排序。例如有个产品表(Products),它的字段包:括产品ID、产品名称、产品类别、...原创 2019-03-22 17:47:13 · 3735 阅读 · 3 评论 -
Mybatis——之动态SQL
在mapper配置文件中,有时需要根据查询条件选择不同的SQL语句,或者将一些使用频率高的SQL语句单独配置,在需要使用的地方引用。Mybatis的一个特性:动态SQL,来解决这个问题。mybatis动态sql语句是基于OGNL表达式的,主要有以下几类:if 语句 (简单的条件判断)choose (when,otherwize) ,相当于java 语言中的 switch ,与 jst...原创 2018-12-29 16:12:09 · 253 阅读 · 0 评论 -
排他锁和共享锁
出差的时候看见一个做BO的大牛写了这样一个SQL。select name from user for update,看的我是一脸懵逼,完全没有见过,好吧只能怪自己见识少了。锁的基本概念 当多事务争取一个资源时,有可能导致数据不一致,这个时候需要一种机制限制,并且将数据访问顺序化,用来保证数据库数据的一致性,锁就是其中的一种机制。我们可以用商场的试衣间来做个比喻,商场里得每个试衣间都可供多个...原创 2018-10-11 22:13:55 · 4430 阅读 · 2 评论 -
rownum与order by 子句
一、 rownum的特点 rownum的特点是在select语句查询过程中获得一条符合条件的数据行放入结果集合中时,oracle系统就会自动编一个号,即一个rownum值。这里要强调一点的是,一个结果集合里的任何时刻,都是有一个rownum值为1的数据行的,其后的数据行编号依次为2,3,。。。。以此类推的。如果那一条rownum值为1的数据行从结果集合里剔除了,跟在其后为2的数据行自...原创 2018-09-11 21:17:12 · 1146 阅读 · 0 评论 -
SQL——按时间段查询数据(今天以及昨天、本月、上个月、今年...)
最近公司项目需要按时间段对数据库进行一些删除操作,应为自己之前没有涉及所以上网查询了一下。现在闲下来整理一下虽然下面的例子只有查询操作,但是删除和修改也是可以的(可以举一反三),这里主要的是where后面的函数。建表语句如下: 1 2 3 4 5 6 CREATE TABLE `order` ( ...原创 2018-07-25 15:09:14 · 9598 阅读 · 3 评论 -
MySql简介和基本操作
MySql简介和的基本操作1,MySQL是什么?1)软件(Software)2)数据库管理系统(DBMS) 2.1)关系型数据库管理系统(Oracle,SQLServer,DB2,MySQL) 2.2)非关系型数据库管理系统(NoSQL)3)关系型数据库管理系统(RDBMS)MySQL发展史:自己上网查MySQL相关网站: www.oracle...原创 2018-05-15 15:27:54 · 4136 阅读 · 1 评论 -
Mysql高级查询语句练习
Mysql高级查询语句练习DROP TABLE IF EXISTS `tblcourse`; CREATE TABLE `tblcourse` ( `CourseId` varchar(3) NOT NULL COMMENT '课程编号', `CourseName` varchar(20) NOT NULL COMMENT '课程名称', `TeaId` var...原创 2018-05-15 15:08:37 · 760 阅读 · 0 评论 -
SQL语句——字段拼接查询
将字段content和字段task_lv做字符串拼接查询,并且将字段task_lv转成char类型SELECT task_id, title, CONCAT(content,CAST(task_lv AS CHAR)) content, add_diamond, a...原创 2018-05-15 14:46:29 · 2266 阅读 · 0 评论