![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
乔志勇笔记
java学习新天地
展开
-
Oracle中start withconnect by prior子句用法
http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%B2%BE%E5%8D%8E/20151018/327769.htmlconnect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3;例转载 2017-07-03 11:40:01 · 263 阅读 · 0 评论 -
MYSQL limit,offset 区别
Sql代码 SELECT keyword FROM keyword_rank WHERE advertiserid='59' order by keyword LIMIT 2 OFFSET 1; 比如这个SQL ,limit后面跟的是2条数据,offset后面是从第1条开始读取 Sql代码转载 2017-06-23 15:30:41 · 369 阅读 · 0 评论 -
MYSQL学习心得 总结
http://www.cnblogs.com/lyhabc/p/3691555.html我的MYSQL学习心得(一) 简单语法我的MYSQL学习心得(二) 数据类型宽度我的MYSQL学习心得(三) 查看字段长度我的MYSQL学习心得(四) 数据类型我的MYSQL学习心得(五) 运算符我的MYSQL学习心得(六) 函数转载 2017-06-24 11:18:17 · 4806 阅读 · 0 评论 -
mysql优化刘亚壮
http://blog.csdn.net/l1028386804/article/category/2697227/1 MySQL之——数据库增量数据恢复案例一、使用场景 MySQL数据库每日零点自动全备 某天上午9点,张三不小心drop了一个数据库 我们需要通过全备的数据文件,以及增量的binlog文件进行数据恢复 二、主要思想与原理 利用全备的sql文件中记转载 2017-06-24 11:39:07 · 371 阅读 · 0 评论 -
一个SQL查询出每门课程的成绩都大于80的学生姓名
http://www.cnblogs.com/hongyan5682/p/4816444.htmlname kecheng fenshu 张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语转载 2017-06-24 16:03:11 · 5205 阅读 · 0 评论 -
MySQL exists的用法介绍
有一个查询如下:1SELECT c.CustomerId, CompanyName 2FROM Customers c 3WHERE EXISTS( 4 SELECT OrderID FROM O转载 2017-06-24 16:49:50 · 338 阅读 · 0 评论 -
SQL语句操作优先级顺序
SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中指定某一子句,转载 2017-06-24 16:56:12 · 794 阅读 · 0 评论 -
键、索引、约束及其区别
键、索引、约束及其区别今天下午刚好没事,把一些基础性的概念理顺一下,存档,省的麻烦,嘿嘿一.索引1. 什么是索引?索引是对数据库表中一列或多列的值进行排序的一种结构。在关系型数据库中,索引是一种与表有关的数据库结构,是事实存在的。它可以使对于表的select等等操作更加快速,相当于一本书的目录。对于一张表,如果我们想要找到某一列符合特定值转载 2017-06-24 18:15:00 · 2619 阅读 · 0 评论 -
mysql中key 、primary key 、unique key 与index区别
http://blog.csdn.net/nanamasuda/article/details/52543177索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,mysql能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个转载 2017-06-24 18:29:16 · 628 阅读 · 0 评论 -
MySQL中KEY与INDEX的区别
http://blog.csdn.net/top_code/article/details/50599840最近在使用MySQL的key和index创建索引让人有点迷惑,搞不清楚二者之间的区别,请教了不少人 在Google上也找到不少答案,打算在这里写篇文章总结一下。KEYkey 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(转载 2017-06-24 21:24:04 · 444 阅读 · 0 评论 -
约束条件(constraint)
1.为啥使用约束条件:约束条件也叫完整性约束条件,当对表中的数据做DML操作时会验证数据是否违反约束条件.如果违反了DML操作会失败.约束条件可以应用于表中的一列或几列,应用于整个表或几个表之间.约束条件分类:非空(NOT NULL),唯一(UNIQUE),主键(PRIMARY KEY),外键(FOREIGN KEY),检查(CHECK).其中NOT NULL只能应用于列.转载 2017-06-24 21:57:50 · 4895 阅读 · 0 评论 -
MySQL性能优化(特别是最后保证随机查到数据的思想,而不是前几条)
http://blog.csdn.net/l1028386804/article/details/42007449如何从MySQL一个数据表中提取一条随机的效率,同时要保证效率最高。方法一这是最原始最直观的语法,如下:SELECT * FROM foo ORDER BY RAND() LIMIT 1当数据表中数据量较小时,此方法可行。但当数据量到达一定程转载 2017-06-25 11:00:37 · 1179 阅读 · 1 评论 -
MySQL字符串函数
字符串大小写转换MySQL 字符串大小写转化函数有两对: lower(), uppper() 和 lcase(), ucase()[sql] view plain copymysql> select lower('DDD'); +--------------+ | lower('DDD') | +--------------转载 2017-06-25 11:33:17 · 308 阅读 · 0 评论 -
MYSQL常用的命令
http://blog.csdn.net/l1028386804/article/details/44245435启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost -u root -p databaseName; 列出数据库:show databases; 选择数据库:use databaseName;转载 2017-06-25 12:15:34 · 317 阅读 · 0 评论 -
MySQL单列索引和组合索引的选择效率与explain分析(没图)
http://blog.csdn.net/xtdhqdhq/article/details/17582779一、先阐述下单列索引和组合索引的概念:单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引:即一个索包含多个列。如果我们的查询where条件只有一个,我们完全可以用单列索引,这样的查询速度较快,索引也比较瘦身。如果我们的业转载 2017-06-25 12:50:58 · 767 阅读 · 0 评论 -
正确建立索引以及最左前缀原则
http://blog.csdn.net/z69183787/article/details/467317651. 索引建立的原则用于索引的最好的备选数据列是那些出现在WHERE子句、join子句、ORDER BY或GROUP BY子句中的列。仅仅出现在SELECT关键字后面的输出数据列列表中的数据列不是很好的备选列SELECTcol_a FROMt转载 2017-06-25 13:31:46 · 294 阅读 · 0 评论 -
MySQL索引之前缀索引和索引选择性
http://blog.csdn.net/xyw591238/article/details/51965116有时需要索引很长的字符列,它会使索引变大而且变慢。一个策略就是模拟哈希索引。但是有时这也不够好,那?通常可以索引开始的几个字符,而不是全部值,以节约空间并得到好的性能。这使索引需要的空间变小,但是也会降低选择性。索引选择性是不重复的索引值 和表中所有行的比值。高选择性的转载 2017-06-25 13:41:21 · 462 阅读 · 0 评论 -
Mysql并发时经典常见的死锁原因及解决方法
http://www.cnblogs.com/zejin2008/p/5262751.html1. mysql都有什么锁 MySQL有三种锁的级别:页级、表级、行级。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。页面锁转载 2017-06-25 17:33:44 · 325 阅读 · 0 评论 -
MySQL之——Union
http://blog.csdn.net/l1028386804/article/details/50455334今天来写写union的用法及一些需要注意的。 union:联合的意思,即把两次或多次查询结果合并起来。 要求:两次查询的列数必须一致 推荐:列的类型可以不一样,但推荐查询的每一列,想对应的类型以一样 可以来自多张表的数据:多次sql语句取出的转载 2017-06-25 17:46:25 · 276 阅读 · 0 评论 -
MySQL之——分库分表的一些技巧
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48859099分表是分散数据库压力的好方法。分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库。当然,首先要知道什么情况下,才需要分表。个人觉得单表记录条数达到百万到千万级别时就要使用分表了。1,分表的分类1>纵向分转载 2017-06-25 17:47:11 · 389 阅读 · 0 评论 -
一个微博数据库设计带来的简单思考
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/50441457 在微博系统中,当前用户、关注者(也就是粉丝)、被关注者(崇拜对象)这三种角色是少不了的。他们之间看似简单的关系,但是其中数据库表将如何设计,却让我很难琢磨,在如下解决方案中,你们会选择哪种?为什么要选择这种?是否有更好的解决方案?解决方案一:转载 2017-06-25 17:48:12 · 337 阅读 · 0 评论 -
MySQL之——SQL按照汉字首字母进行搜索排序
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/56479161[sql] view plain copyselect * from `dd` order by ELT(INTERVAL(CONV(HEX(left(CONVERT(num USING gbk),1)),1转载 2017-06-25 19:41:49 · 611 阅读 · 0 评论 -
MySQL之——添加索引的几种方式
http://blog.csdn.net/l1028386804/article/details/51097204转载请注明出处:http://blog.csdn.net/l1028386804/article/details/510972041.添加PRIMARY KEY(主键索引)mysql>ALTER TABLE `table_name` ADD PRIMARY转载 2017-06-25 19:46:24 · 1850 阅读 · 0 评论 -
MySQL之——服务器调优思路
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52507364总结为一张图:顶1踩转载 2017-06-25 19:53:51 · 284 阅读 · 0 评论 -
explain分析sql语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where …]例如:explain select * from news;输出:+---转载 2017-06-25 21:43:52 · 354 阅读 · 0 评论 -
MySQL之——GROUP BY分组取字段最大值
http://blog.csdn.net/l1028386804/article/details/54657412转载请注明出处:http://blog.csdn.net/l1028386804/article/details/54657412假设有一个业务场景,需要查询用户登录记录信息,其中表结构如下:[sql] view plain copy转载 2017-06-25 22:49:33 · 5205 阅读 · 3 评论 -
MyBatis(一) 为什么使用框架。
一、传统jdbc 的问题。1、数据库没有连接池,每次请求都会重新创建。mybatis:使用线程池2、sql语句是写死在代码中,不利于代码维护。mybatis:在xml中配置3、preparedStatement 中的设置的参数也是写的死,同样不利于维护。mybatis:在xml中配置4、数据从数据库获取后,读取方式同样是写死的。mybatis:自动映射。二、MyBat转载 2017-06-26 15:06:51 · 355 阅读 · 0 评论 -
为什么jdbc链接时 只要class.forname("com.mysql.jdbc.Driver")即可?
以前都是照本宣科,网上怎么写链接MySQL 就抄过来。。今天觉得无聊,自己看了看mysql driver的源码类。具体了解下其工作原理:首先class.forname(String className) 这个方法会调用相应的class进行类初始化,一般在Java中如果初始化一个类,我们需要对这个类进行实例化,也就是new class()方法。反射也提供这一方式:class.forCla转载 2017-06-08 10:13:49 · 1058 阅读 · 0 评论 -
service中方法 涉及到数据库增删改方法时 都应该抛运行时异常
service中设计到数据库增删改方法时都应该抛运行时异常,例如public Boolean modify(BrandEntity brand) throws ServiceException因为spring在事物管理上是这样配置的,jdbc事务管理一般写在spring和mybatis的整合文件中,service-conf.xml原创 2017-04-05 16:08:49 · 720 阅读 · 0 评论 -
Java事务处理总结
Java事务处理总结 一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败转载 2017-04-05 15:48:18 · 307 阅读 · 0 评论 -
navicat导入sql文件太慢,mysql直接导入解决
经验总结:要直接放在e盘或c盘下,source 命令可用.\代替 使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案初学mysql因sql文件太大 使用客户端执行sql文件直接报错,所以用mysql命令行来导入,但一直报错,百度查了好久也没解决 后来将sql文件放到桌面才可以导入。解决方案:将sql文件放转载 2017-04-02 19:22:54 · 13322 阅读 · 3 评论 -
MyBatis动态SQL中trim标签的使用
My Batis 官方文档 对 动态SQL中使用trim标签的场景及效果介绍比较少。 事实上trim标签有点类似于replace效果。 trim 属性 prefix:前缀覆盖并增加其内容 suffix:后缀覆盖并增加其内容 prefixOverrides:前缀判断的条件转载 2017-03-21 16:48:09 · 737 阅读 · 0 评论 -
深入浅出Mybatis系列(九)---强大的动态SQL
上篇文章《深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap》简单介绍了mybatis的查询,至此,CRUD都已讲完。本文将介绍mybatis强大的动态SQL。那么,问题来了: 什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误。Myb转载 2017-03-21 16:20:33 · 346 阅读 · 0 评论 -
博为峰JavaEE技术文章 ——MyBatis Mapper ResultMap(5)constructor (介绍resultMap中constructor标签的用法)
resultMap中,通常使用id、result子元素把Java实体类的属性映射到数据库表的字段上。但是如果在遇到JavaBean只有有参构造函数时,我还需要使用构造器元素实现一个JavaBean的实例化和数据注入。今天小博老师就带领大家一起学习下ResultMap中的构造器元素constructor的使用方法。继续我们之前的User类,我们加入一个构造函数:对应的,resul转载 2017-03-21 15:56:56 · 1497 阅读 · 0 评论 -
mybatis知识点总结
1 mybatis 传表名和order by时必须用${},而不能用#2 mybatis 返回类型是一个复合对象的话,用 3 mybatis resultType返回基本类型和对象,resultMap可以返回list4 mybatis动态sql(1)choose when otherWise 类似于if,where标签可以选用and原创 2017-03-21 14:37:24 · 801 阅读 · 0 评论 -
sql 查询结果能当查询条件用的方式
//sql新语句SELECT @time := STATUSFROM intentionWHERE id = 1AND @time = 5原创 2017-03-17 16:41:38 · 1491 阅读 · 0 评论 -
left join查询可能出现重复数据 (主表中一条变两条)
创建两个表 执行下列查询语句SELECT * from person a LEFT JOIN people b on a.action_id = b.action_id显然 person表中的数据出现了两次 ,left join 以主表为主 ,我们在今后的开发要注意类似的问题执行下面的语句也是同样的效果SELECT * from person原创 2017-03-17 16:24:45 · 67766 阅读 · 15 评论 -
内连接、左外连接、右外连接、交叉连接区别(图解)
在之前,我对MSSQL中的内连接和外连接所得出的数据集不是很清楚。这几天重新温习了一下SQL的书本,现在的思路应该是很清楚了,现在把自己的理解发出来给大家温习下。希望和我一样对SQL的连接语句不太理解的朋友能够有所帮助。(发这么菜的教程,各位大大们别笑话偶了,呵:D ) 有两个表A和表B。表A结构如下: Aid:int;标识种子,主键,自增ID Aname:varchar 数据情况,即用selec转载 2017-03-17 15:36:44 · 1991 阅读 · 1 评论 -
外键 左连接 和自连接的用法
1 在创建表时加入外键表1CREATE table department(id int primary key auto_increment,name varchar(20) not null,description varchar(100))表2CREATE table employee(id int PRIMARY key auto_incre原创 2017-03-17 14:33:50 · 4716 阅读 · 0 评论 -
MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引
本章主要内容:一、外键二、表连接三、子查询四、索引一、外键:1、什么是外键2、外键语法 3、外键的条件4、添加外键5、删除外键 1、什么是外键:主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的。所以说,如果谈到了外键,一定是至少涉及到两张表。例如下面这两转载 2017-03-17 13:27:01 · 1059 阅读 · 0 评论