精华内容
下载资源
问答
  • 外连接、左外连接、右外连接 本例实现问题2:外连接、左外连接、右外...请编写一个程序输出工厂名和其对应地址的名字。 输入:输入有两个文件,第一个描述了工厂名和对应地址的ID,第二个输入文件描述了地址名和其I...

    外连接、左外连接、右外连接


    本例实现问题2:外连接、左外连接、右外连接

    问题描述:
    1、 任意多个数据源的内连接
    输入有两个文件,一个名为factory的输入文件包含描述工厂名和其对应地址ID的表,另一个名为address的输入文件包含描述地址名和其ID的表格。请编写一个程序输出工厂名和其对应地址的名字。

    输入:输入有两个文件,第一个描述了工厂名和对应地址的ID,第二个输入文件描述了地址名和其ID。

    输出:输出是一个包含工厂名和其对应地名的文件。

    【数据样例】 输入:

    ①factory.txt:
    factoryname addressID
    Beijing Red Star 1
    Shenzhen Thunder 3
    Guangzhou Honda 2
    Beijing Rising 1
    Guangzhou Development Bank 2
    Tencent 3
    Bank of Beijing 1
    Nanchang Univ 5
    Shanghai Bank 10

    ②address.txt:
    addressID addressname
    1 Beijing
    2 Guangzhou
    3 Shenzhen
    4 Xian
    11 Chengdu

    全外连接输出
    Bank of Beijing 1 Beijing
    Beijing Rising 1 Beijing
    Beijing Red Star 1 Beijing
    Shanghai Bank 10 NULL
    NULL NULL Chengdu
    Guangzhou Development Bank 2 Guangzhou
    Guangzhou Honda 2 Guangzhou
    Tencent 3 Shenzhen
    Shenzhen Thunder 3 Shenzhen
    NULL NULL Xian
    Nanchang Univ 5 NULL

    左外连接输出
    Bank of Beijing 1 Beijing
    Beijing Rising 1 Beijing
    Beijing Red Star 1 Beijing
    Shanghai Bank 10 NULL
    Guangzhou Development Bank 2 Guangzhou
    Guangzhou Honda 2 Guangzhou
    Tencent 3 Shenzhen
    Shenzhen Thunder 3 Shenzhen
    Nanchang Univ 5 NULL

    右外连接输出
    Bank of Beijing 1 Beijing
    Beijing Rising 1 Beijing
    Beijing Red Star 1 Beijing
    NULL NULL Chengdu
    Guangzhou Development Bank 2 Guangzhou
    Guangzhou Honda 2 Guangzhou
    Tencent 3 Shenzhen
    Shenzhen Thunder 3 Shenzhen
    NULL NULL Xian

    要求:输出文件的第一行必须是“factoryname addressID addressname”

    2、选做题,上述数据如果改为左外(右外)或外连接,程序应该怎么修改
    3、如果上述两个表格数据量很大,尝试改进程序(可以自己模式数据测试)
    说明: 数据连接实验可以使用基本MapReduce或者使用Hadoop DataJoin工具包来写。


    Bean

    public class MyBean implements Writable {
    
    	private String facName;
    	private int addID;
    	private String addName;
    	private String type;
    
    	public MyBean() {
    		super();
    	}
    	public MyBean(String facName, int addID, String addName, String type) {
    		this.facName = facName;
    		this.addID = addID;
    		this.addName = addName;
    		this.type = type;
    	}
    	@Override
    	public String toString() {
    		return facName + "\t" + addID + "\t" + addName;
    	}
    	// write readFields
    	@Override
    	public void write(DataOutput out) throws IOException {
    		out.writeUTF(facName);
    		out.writeInt(addID);
    		out.writeUTF(addName);
    		out.writeUTF(type);
    	}
    	@Override
    	public void readFields(DataInput in) throws IOException {
    		this.facName = in.readUTF();
    		this.addID = in.readInt();
    		this.addName = in.readUTF();
    		this.type = in.readUTF();
    	}
    	//get & set
    	public String getFacName() {
    		return facName;
    	}
    	public void setFacName(String facName) {
    		this.facName = facName;
    	}
    	public int getAddID() {
    		return addID;
    	}
    	public void setAddID(int addID) {
    		this.addID = addID;
    	}
    	public String getAddName() {
    		return addName;
    	}
    	public void setAddName(String addName) {
    		this.addName = addName;
    	}
    	public String getType() {
    		return type;
    	}
    	public void setType(String type) {
    		this.type = type;
    	}
    }
    

    MyAnyJoin类

    public class MyAnyJoin {
    	
    	public static class FactoryMapper 
    		extends Mapper<LongWritable, Text, Text, MyBean> {}
    	
    	public static class AddressMapper 
    		extends Mapper<LongWritable, Text, Text, MyBean> {}
    
    	public static class AnyJoinReducer 
    		extends Reducer<Text, MyBean, Text, NullWritable> {}
    	
    	public static void main(String[] args) {}
    }
    

    Driver
    设置连接类型(外连接、左外连接、右外连接)

    public static void main(String[] args) throws 
    		ClassNotFoundException, IOException, InterruptedException {
    
    		Configuration conf = new Configuration();
    		Job job = Job.getInstance(conf);
    
    //		job.getConfiguration().set("joinType", "leftOuterJoin"); 	// 设置左外连接类型
    //		job.getConfiguration().set("joinType", "rightOuterJoin"); 	// 设置右外连接类型
    		job.getConfiguration().set("joinType", "allOuterJoin"); 	// 设置全外连接类型
    
    		//设置两个mapper分别处理factory.txt和address.txt
    		MultipleInputs.addInputPath(job, new Path(args[0]), TextInputFormat.class, FactoryMapper.class);
    		MultipleInputs.addInputPath(job, new Path(args[1]), TextInputFormat.class, AddressMapper.class);
    		job.setReducerClass(AnyJoinReducer.class);
    
    		job.setMapOutputKeyClass(Text.class);
    		job.setMapOutputValueClass(MyBean.class);
    
    		job.setOutputKeyClass(Text.class);
    		job.setOutputValueClass(NullWritable.class);
    
    		FileOutputFormat.setOutputPath(job, new Path(args[2]));
    
    		System.exit(job.waitForCompletion(true) ? 0 : 1);
    
    	}
    

    FactoryMapper

    public static class FactoryMapper 
    	extends Mapper<LongWritable, Text, Text, MyBean> {
    
    		// k1 & v1
    		Text k1 = new Text();
    		MyBean myBean = new MyBean();
    
    		@Override
    		protected void map(LongWritable key, Text value, Context context) 
    			throws IOException, InterruptedException {
    			
    			String line = value.toString();
    			if (!line.startsWith("factory")) {
    				String[] fields = line.split(" ");
    				k1.set(fields[fields.length - 1]); 	
    				String facName = "";
    				for (int i = 0; i <= fields.length - 2; i++) {
    					facName += fields[i];
    					if (i != fields.length - 2)
    						facName += " ";
    				}
    				myBean.setFacName(facName); // "Beijing Red Star"
    				myBean.setAddID(Integer.parseInt(fields[fields.length - 1])); 
    				myBean.setAddName(""); 
    				myBean.setType("factory");
    				context.write(k1, myBean);
    			}
    		}
    
    	}
    

    AddressMapper

    public static class AddressMapper 
    	extends Mapper<LongWritable, Text, Text, MyBean> {
    
    		// k1 & v1
    		Text k1 = new Text();
    		MyBean myBean = new MyBean();
    
    		@Override
    		protected void map(LongWritable key, Text value, Context context) 
    			throws IOException, InterruptedException {
    			
    			String line = value.toString();
    			if (!line.startsWith("addressID")) {
    				String[] fields = line.split(" ");
    				k1.set(fields[0]);
    				myBean.setFacName(""); 
    				myBean.setAddID(Integer.parseInt(fields[0])); 
    				myBean.setAddName(fields[1]); 
    				myBean.setType("address");
    				context.write(k1, myBean);
    			}
    		}
    
    	}
    

    Reducer

    // reducer
    	public static class AnyJoinReducer 
    		extends Reducer<Text, MyBean, Text, NullWritable> {
    
    		private String joinType;
    
    		@Override
    		protected void setup(Context context) 
    			throws IOException, InterruptedException {
    
    			this.joinType = context.getConfiguration().get("joinType");
    			System.out.println("- joinType:\t" + joinType);
    		}
    
    		@Override
    		protected void reduce(Text key, Iterable<MyBean> values, Context context)
    			throws IOException, InterruptedException {
    
    			ArrayList<MyBean> factoryBeans = new ArrayList<>();
    			ArrayList<MyBean> addressBeans = new ArrayList<>();
    
    			for (MyBean value : values) {
    				MyBean tempBean = new MyBean();
    				try {
    					BeanUtils.copyProperties(tempBean, value);
    				} catch (IllegalAccessException | InvocationTargetException e) {
    					e.printStackTrace();
    				}
    				if (value.getType().equals("factory")) {
    					factoryBeans.add(tempBean);
    				} else {
    					addressBeans.add(tempBean);
    				}
    			}
    
    			if (joinType.equals("leftOuterJoin")) {
    
    				for (MyBean factoryBean : factoryBeans) {
    					if (addressBeans.size() > 0) {
    						for (MyBean addressBean : addressBeans) {
    							String str = factoryBean.getFacName() + " " + factoryBean.getAddID() + " "
    									+ addressBean.getAddName();
    							context.write(new Text(str), NullWritable.get());
    						}
    					} else {
    						String str = factoryBean.getFacName() + " " + factoryBean.getAddID() + " "+ "NULL";
    						context.write(new Text(str), NullWritable.get());
    					}
    				}
    			} else if (joinType.equals("rightOuterJoin")) {
    
    				for (MyBean addressBean : addressBeans) {
    					if (factoryBeans.size() > 0) {
    						for (MyBean factoryBean : factoryBeans) {
    							String str = factoryBean.getFacName() + " " + factoryBean.getAddID() + " "
    									+ addressBean.getAddName();
    							context.write(new Text(str), NullWritable.get());
    						}
    					} else {
    						String str = "NULL NULL "+ addressBean.getAddName();
    						context.write(new Text(str), NullWritable.get());
    					}
    				}
    			} else if (joinType.equals("allOuterJoin")) {
    
    				if (factoryBeans.size() > 0) {
    					for (MyBean factoryBean : factoryBeans) {
    						if (addressBeans.size() > 0) {
    							for (MyBean addressBean : addressBeans) {
    								String str = factoryBean.getFacName() + " " + factoryBean.getAddID() + " "
    										+ addressBean.getAddName();
    								context.write(new Text(str), NullWritable.get());
    							}
    						} else {
    							String str = factoryBean.getFacName() + " " + factoryBean.getAddID() + " "+ "NULL";
    							context.write(new Text(str), NullWritable.get());
    						}
    					}
    				} else {
    					for (MyBean addressBean : addressBeans) {
    						if (factoryBeans.size() > 0) {
    							for (MyBean factoryBean : factoryBeans) {
    								String str = factoryBean.getFacName() + " " + factoryBean.getAddID() + " "
    										+ addressBean.getAddName();
    								context.write(new Text(str), NullWritable.get());
    							}
    						} else {
    							String str = "NULL NULL "+ addressBean.getAddName();
    							context.write(new Text(str), NullWritable.get());
    						}
    					}
    				}
    			}
    
    		}
    	}
    
    展开全文
  • 如何编写一个VBA程序?我们将用三条不同的语句,来输出一段文本1、MsgBox首先,我们打开VBA编辑器VBA以后,在菜单栏-插入-模块;我们可以看到在左边的工程资源管理器(即左上角的文件树)出现了一个模块1左键双击...

    今天,让我们来学习一下;如何编写第一个VBA程序?

    我们将用三条不同的语句,来输出一段文本


    1、MsgBox

    593482099a1786351c792372d13677d8.png

    首先,我们打开VBA编辑器VBA以后,在菜单栏-插入-模块;我们可以看到在左边的工程资源管理器(即左上角的文件树)出现了一个模块1

    6b4b0c64d2f79f85625213a9d504cc7b.png

    左键双击进入模块1,写入如下代码,注意第二行,第一个字符为英文逗号,该行也可省略不写

    Sub hello()
    
        '1、第一个VBA程序
    
        MsgBox "这是我的第一个VBA程序"
    
    End Sub

    b7a16d30cd84be7bb557cfe1bcb6c63f.png

    93cc0565af01948ef91aca6494dc3a37.png

    6963552a2e770d8cd36ecfeb950e650f.png

    然后,在看到上方的绿色三角按钮,点击运行;可以看到弹窗,输出“这是我的第一个VBA程序”


    2、Debug语句

    1e0dbd4a3f79a7b57d69da1e73bb0b5c.png

    我们把第二行,稍微改一下,把MsgBox改成Debug.Print

    Debug的意思是调试,Print即打印,该语句就是将文本打印到底下的立即窗口,注意PrintDebug的一个方法,所以要用.连接

    Sub hello()
    
        '2、第二个VBA程序
    
        Debug.Print "这是我的第二个VBA程序"
    
    End Sub

    e2a44e482e27305748b3551c60074c10.png

    可能有些VBE界面一开始没有立即窗口,我们可以在上方的菜单栏-视图-调出立即窗口;也可以按下快捷键,Ctrl+G来调出立即窗口,注意立即窗口可能缩小在屏幕边缘,需要鼠标拖动窗口边缘调整大小

    1e0dbd4a3f79a7b57d69da1e73bb0b5c.png

    3、直接赋值给Cells(1,1)

    309ebfa85bfd0559534f8b34dadd2b7e.png

    我们把第二行,稍微改一下,把Debug.Print,改成Cells(1,1) = 注意,在括号后面有个=号,这个代表赋值符号,编程语言里的的赋值,都是将=后面的表达式,赋值给=前面的对象或变量,请牢记;

    Sub hello()
    
        '3、第三个VBA程序
    
        Cells(1, 1) = "这是我的第三个VBA程序"
    
    End Sub

    Cells(1,1),代表单元格的地址,即第一行第一列,那么这是哪一个工作表的单元格呢?如果前面没有注明,则代表当前工作表,或者说活动工作表

    8ccd361745652b0ef8339606ea6b0fa8.png

    此时,我们只有一个工作表Sheet1,即在A1(第1行,第1列),输出我们想要的文本了


    总结

    我们一起学习了,三种VBA语句来输出文本;

    1、MsgBox,提示窗体

    2、Debug.Print,调试打印

    3、Cells(1,1) =赋值

    亲爱的朋友,你学会了吗?

    展开全文
  • SQL连接,右连接与内连接的异同sql 中3种连接的异同首先区分内连接和外连接。内连接外连接 sql 中3种连接的异同 参与开发有段时间了,数据库的连接操作可以说是我们在平常的开发过程中最常使用到的操作了,而...

    sql 中3种连接的异同

    参与开发有一段时间了,数据库的连接操作可以说是我们在平常的开发过程中最常使用到的操作了,而其中设计到的左右内连接的操作的运用对于我们是否能够编写出满足开发需求的代码可以说是至关重要的。因此写这篇希望给自己一个回顾和总结的地方。

    首先区分内连接和外连接。

    1.内连接(inner join):又叫自然连接,是根据提供的字段将两个数据表进行连接。仅会将两个表中相匹配的行在连接的结果中展示出来。
    2.外连接:包括3种连接方式包括 左连接(left join)、右连接(right join)、以及全外连接(outer join)。其中左连接和右连接比较常见,在这里着重说明。

    内连接

    写个简单的栗子:

    selct S.name,S.age,C.teacher from studentinfo S inner join Class  C on  s.name=c.name
    

    上面这条简单的sql使用的就是内连接,查询的是S表中的学生姓名和学生年龄以及C表中的教师信息。而使用内连接进行查询后只会将S表和C表中都存在且能够对应起来学生姓名的数据在结果中展示。例如S表中有3条数据而C表中只有两条数据可以与S表对应上那么最终就只会显示两条结果。

    外连接

    例如现在有A表和B表,这个两个表的公共部分为C,A独有的部分为记录集A1,B独有的部分为记录集B1。那么在进行A连B的左连接的时候就最后展现的结果便是C(A和B公共部分)+A1;

    select A.uname,A.umone,B.stex from A left join B on A.uid=B.sid
    

    反过来当A右连接B的时候最终就会展示C+B1部分的结果。

    select A.uname,A.umone,B.stex from A right join B on A.uid=B.sid
    

    全连接最简单,就是将两个表中所有内容全部展示。

    select A.uname,A.umone,B.stex from A outer join B on A.uid=B.sid 
    
    展开全文
  • SQL语句编写常用连接内连接外连接全连接 常用连接 内连接(INNER Connect):两个表都存在匹配时,才会返回匹配行 外连接(LEFT/RIGHT JOIN):返回一个表的行,即使另一个没有匹配 全连接(FULL JOIN):只要某一个...

    常用连接

    1. 内连接(INNER Connect):两个表都存在匹配时,才会返回匹配行
    2. 外连接(LEFT/RIGHT JOIN):返回一个表的行,即使另一个没有匹配
    3. 全连接(FULL JOIN):只要某一个表存在匹配就返回

    内连接

    1. 将左边和右表能够关联起来的数据连接后返回
    2. 类似于求两个表的“交集”
    3. select A.id as a.id, B.id as b.id from A inner join B on a.id = b.id

    外连接

    1. 左连接返回左表中所有记录,即使右表中没有匹配的记录
    2. 右连接返回右表中所有记录,即使左表中没有匹配的记录
    3. 没有匹配的字段会设置成NULL

    全连接

    1. 只要有一个表存在匹配,就返回行
    2. 类似于求两个表的并集
    3. 但是mysql不支持,可以用left join,union,right join联合使用来模拟
    4. select A.id as a.id, B.id as b.id from A left join B on a.id = b.id union select A.id as a.id, B.id as b.id from A right join B on a.id = b.id
    展开全文
  • 在ACCESS库中使用外连接

    千次阅读 2008-03-15 10:55:00
    首先,你可以通过 access自带的一些功能简化你的 SQL 编写过程.这里介绍一下使用 access 的...所以我们这里生成的是一个外连接 SQL 语句. 打开access.我们有表 t1 和 t2. 看到access左侧的 outlookbar 了吗? 这里进入
  • 外连接连接外连接之右连接外连接之全外连接交叉连接超大型数据尽可能尽力不要写子查询,使用连接(JOIN)去替换它(基础讲完,讲优化)(3)使用联合(UNION)来代替手动创建的临时表建立索引(下篇将详讲)...
  • 案例用到的表 emp表 dept表 ,内连接(inner join) 只关联AB(两表)共有的部分数据 ...例:可见emp表deptId为51的数据没有查询出来,因为该数据不是两...二,左外连接(left join) 关联AB表共有+A表独有的数...
  • mysql--连接查询和子查询

    千次阅读 2017-05-15 08:15:08
    连接查询和子查询、连接查询1.1 概念连接查询:也可以叫跨表查询,需要关联多表进行查询1.2 根据年代分类SQL92:1992 SQL99:1999,更新的语法,主要掌握这种DBA:DataBase ... 自连接外连接:左外连接(做连接)
  • 连接查询和子查询、连接查询1.1 概念连接查询:也可以叫跨表查询,需要关联多表进行查询1.2 根据年代分类SQL92:1992SQL99:...1.3 根据连接方式分类内连接:等值连接 非等值连接 自连接外连接:左外连接(左连接...
  • MySQL-表的连接

    2020-09-16 20:07:56
    即:笛卡尔积,隐式链接,内连接,左外连接,右外连接。由于今日编写项目时,两表之间的连接有所生疏,故而总结一下此类语法。 1.1 笛卡尔积 简介:t,p分别是type和product表的表的简称或别名。 /* 笛卡尔积 */ ...
  • 连接查询和子查询、连接查询1.1 概念连接查询:也可以叫跨表查询,需要关联多表进行查询1.2 根据年代分类SQL92:1992SQL99:...1.3 根据连接方式分类内连接:等值连接 非等值连接 自连接外连接:左外连接(左连接...
  • DAX 第八篇:表连接

    2019-09-29 05:16:56
    表连接是指两张表根据关联字段,组合成一个数据集。表连接不仅可以利用数据模型中已有的关系,而且可以利用DAX表达式基于表的任意列定义连接条件。...一,利用数据模型中的关系(左外连接) 利用...
  • 12-去公司一个月总结

    2015-04-25 19:14:14
    1.进了公司,因为公司项目的需要,自己学会了使用SSI框架进行增删改查,但是自己对ibatis使用的熟练度还是不够灵活,例如SQL语句的编写联接,右链接,内连接,外连接。 2.自己学习了lucene,但是只是学习了概念...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    而汇编语言,一条指令就对应一个机器码,每一步执行什幺动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在单片机开发中,我们还是建议采用汇编语言比较好。 如果对单片机C语言有...
  • 后打开另一个窗口,一个是打开另一个窗口而自身不消失。可以看到他们实现的 方法是不同的。 三、Qt Creator 登录对话框(原创) 实现功能: 在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确...
  • SQL小时

    2020-02-28 00:41:37
    介绍常见的几种表连接:内连接左连接链接、全连接、自然连接、交叉连接等; 3.了解常见的四种数据库对象:索引、视图、存储过程、触发器。 欢迎关注刚起步的CSDN博客:https://blog.csdn.net/caohongxing
  • 2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...
  • 用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来,我们想到了左外连接查询比较合适。(一个用户对应多个账户信息) 2、编写实体类 public class Account ...
  • mysql练习LeetCode

    2019-08-17 17:49:45
    having 是在分组后对数据进行过滤 where 是在分组前对数据进行过滤 having后面可以使用分组统计函数 where后面不可以 右外连接外连接 插入左边一个null数据 是可以的 ...编写一个 SQL 查询,查找Person 表中所...
  • 反射能操作私有属性 如果能的话需要注意什么 内连接和外连接的区别说一下左外连接和右外连接区别 给你一个字符串要求找出字符串每个字符出现的次数按多到少打印如ababass输出a3b2s2编写程序 要求产生10亿个十位...
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的...
  • 4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static int dummy = 5; ip = &dummy;g 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。. . . . . . . . . . . . . . . 18 4.5 我...
  •  cc实例184 执行一个外部程序直到其结束   cc实例185 调用具有参数的可执行程序   6.7 线程同步   cc实例186 利用事件对象实现线程同步   cc实例187 利用互斥对象实现线程同步   cc实例188 利用...
  • 日志6

    2019-02-26 11:10:21
    数据采集、显示的技术都解决了,尽管这些还是分开...要用到JOIN,查了一下,概念不少:笛卡积、内连接、外连接连接、右连接等。还好只需最简单的内连接,而且找到了三种实现语句,就用了最容易理解的。 不知...
  • 你必须知道的495C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static int dummy = 5; ip = &dummy;g 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。. . . . . . . . . . . . . . . 18 4.5 我...
  • 实例273 使用内连接选择一个表与另一个表中行相关的所有行 9.14 外连接查询 实例274 LEFT OUTER JOIN查询 实例275 RIGHT OUTER JOIN查询 实例276 使用外连接进行多表联合查询 9.15 利用IN进行查询 实例277 ...
  • 狗会因为人随手丢出的一个东西而追逐,可能是一个骨头、一块肉、一个眼神,甚至是一个石头,警示一定要看清自己在追逐的东西。 目录 封面 -17 扉页 -16 版权 -15 序 -14 前言 -12 自我测试 -7 目录 -4 第一部分 ...
  • 1.5 参照本章例题,编写一个C程序,输出以下信息: 1 1.6 写一个程序,输入a,b,c三个值,输出其中最大者。 1 第2章 程序的灵魂——算法 2 2.1 什么叫结构化的算法?为什么要提倡结构化的算法? 2 2.7 什么叫结构化...
  • SQL语法大全

    2014-03-30 11:00:11
    这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。 CursorType Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括...
  • 面试题3:二维数组中的查找:对于在一个每一行从到右依次递增,每一列从上到下依次递增的二维数组查找一个元素,可以选择从数组左上角开始查找array[i][j],如果目标元素大于array[i][j],i+=1,如果元素小于array...

空空如也

空空如也

1 2 3 4 5 6
收藏数 112
精华内容 44
关键字:

编写一个左外连接