本文共 2489 字,大约阅读时间需要 8 分钟。
连接(join)就是将多个表中的字段根据匹配条件进行横向的拼接。
左表中的每一行数据去匹配右表中的每一行数据,且认为全部匹配成功。最终的结果集是迪卡尔积。
语法: select * from 左表 cross join 右表; 示例: 说明:此类连接不常用。使用左表中的每一条记录去匹配右表的所有的记录,根据匹配的条件,如果成立,保留整条记录,如果不成立则丢弃。
用文氏图表示,则如下: 语法: select * from 左表 【inner】 join 右表 【on 条件】 示例:将左表作为主表,用主表中的每一条记录,去匹配从表(右表)中的所有记录,根据匹配的条件,如果成功则将主表的记录中的字段与从表的记录中的记录,拼接成一条完整的记录,放到结果集;如果不成功则将从表中的记录中的字段全部置为null,保留主表中的字段。
用文氏图表示,如下:
语法: select * from 左表 left join 右表【on条件】 示例:将右表作为主表,用主表中的每一条记录,匹配从表中的所有记录,根据匹配的条件,如果成功则将主表的记录中的字段与从表的记录中的记录,拼接成一条完整的记录,放到结果集。如果不成功则将从表中的记录中的字段全部置为null,保留主表中的字段。
用文氏图表示,如下. 语法: select * from 左表 right join 右表【on条件】 示例:对两表进行连接查询时,系统会盲目的用同名字段为匹配条件。会合并同名字段,并且将匹配字段放到结果集的前面。
自然连接分为左自连接和右自然连接。语法:
select * from 左表 natural join 右表. 示例:语法:
select * from 左表 natural left join 右表. 示例:语法:
select * from 左表 natural right join 右表. 示例:饿汉式单例模式示意图:
. 饿汉式单例模式:HurrySingleton.java.package com.wewin.power_manage.controller;/** * @Author: William * @Description: * @Date: 2018/11/6 11:18 **/public class HurrySingleton { private static final HurrySingleton INSTANCE = new HurrySingleton(); //私有化构造子,阻止外部直接实例化对象 private HurrySingleton() { } /** * 返回类的唯一实例 * @return instance */ public static HurrySingleton getInstance() { return INSTANCE; }}
懒汉式单例模式示意图:
. 懒汉式单例模式:LazySignleton.java.package com.wewin.power_manage.controller;/** * @Author: William * @Description: * @Date: 2018/11/6 11:30 **/public class LazySingleton { private static LazySingleton INSTANCE = null; //私有化构造子,阻止外部直接实例化对象 private LazySingleton() { } /** * * 获取类的单例实例 * @return instance */ public static LazySingleton getInstance() { if (INSTANCE == null) { synchronized (LazySingleton.class) { if (INSTANCE == null) { INSTANCE = new LazySingleton(); } } } return INSTANCE; }}
转载地址:http://loaxn.baihongyu.com/