键值

数据库根据键值自动判断插入还是更新的SQL

走远了吗. 提交于 2019-12-02 17:50:07
MySQL 至4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE INSERT INTO 表名 (字段1,字段2,……) VALUES (值1,值2,……) ON DUPLICATE KEY UPDATE 字段n=值n; 要使用这条语句,前提条件是这个表必须有一个唯一索引或主键 多行时,会自动更新存在相同键值的行,插入键值不存在的行 Oracle Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 MERGE INTO [your table-name] [rename your table here]   USING ( [write your query here] )[rename your query-sql and using just like a table]   ON ([conditional expression here] AND [...]...)   WHEN MATCHED THEN [here you can execute some update sql or something

集合学习总结2

≡放荡痞女 提交于 2019-12-02 12:00:26
双列集合的根接口: 1.Map接口概述: 通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同, A:Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储 B:Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。 C:Collection中的集合称为单列集合,Map中的集合称为双列集合。 需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。 2.Map的常用方法: A:映射功能: V put(K key, V value) :以键=值的方式存入Map集合 B:获取功能: V get(Object key):根据键获取值 int size():返回Map中键值对的个数 C:判断功能: boolean containsKey(Object key):判断Map集合中是否包含键为key的键值对 boolean containsValue(Object value):判断Map集合中是否包含值为value键值对 boolean isEmpty():判断Map集合中是否没有任何键值对 D:删除功能: void clear():清空Map集合中所有的键值对 V remove(Object key)

Python学习笔记(五)组合数据类型

天大地大妈咪最大 提交于 2019-12-02 11:57:12
  在之前我们学会了 数字类型 ,包括 整数类型、浮点类型和复数类型 ,这些类型仅能表示一个数据,这种表示单一数据的类型称为 基本数据类型 。然而,实际计算中却存在大量同时处理多个数据的情况,这种需要将多个数据有效组织起来并统一表示,这种能够表示多个数据的类型称为 组合数据类型 。 一、组合数据类型概述 组合数据类型 更能够将多个同类或不同类型组织起来,通过单一的表示使数据更有序、更容易。根据数据之间的关系,组合数据类型可以分为3类: 序列类型、集合类型和映射类型 。 序列类型 是一个元素向量,元素之间的存在先后关系,通过序号访问,元素之间不排他。 集合类型 是一个元素类型,元素之间无序,相同元素在集合中唯一存在。 映射类型 是“键-值”数据项的组合,每个元素是一个键值对,表示为(key, value)。 1.序列类型 序列类型 是一堆元素向量,元素之间存在先后关系,通过序号访问。 Python中有很多数据类型都是序列类型,其中比较重要的是str(字符串)、tuple(元组)list(列表)可以看成是单一字符的有序序列,属于序列类型。 序列类型有12个通用的操作符和函数 操 作 符 描 述 x in s 如果x是是的元素,返回True,否者返回False x not in s 如果x不是s的元素,返回True,否则返回False s + t 连接S和t s * n 或 n * s

python之字典

妖精的绣舞 提交于 2019-12-02 11:39:44
字典 字典是‘键值对’的无序可变序列,字典中的每个元素都是一个‘键值对’ 包含:‘键对象’和‘值对象’ 可以通过‘键对象’实现快速获取、删除、更新对应的‘值对象’。 字典中通过‘键对象’找到对应的‘值对象’。 ‘键’是任意的不可变的数据,比如:整数、浮点数、字符串、元组。 但是:列表、字典、集合这些可变对象,不能作为‘键’。 并且‘键’不可重复。 一个典型的字典的定义方式: a = { ‘name’:‘luominmin’,‘age’:15,‘job’:‘teacher’ } 字典创建 1.通过{}、dict ()来创建字典对象 >> > a = { 'name' : 'wutian' , 'age' : 17 } >> > a { 'name' : 'wutian' , 'age' : 17 } >> > b = dict ( name = 'wutian' , age = 17 ) >> > b { 'name' : 'wutian' , 'age' : 17 } >> > b = [ ( 'name' , 'wutian' ) , ( 'age' , 17 ) ] >> > b [ ( 'name' , 'wutian' ) , ( 'age' , 17 ) ] 2.通过zip()来创建字典对象 >> > d = dict ( ) >> > m = [ 'name' ,

HashMap集合的自定义实现

£可爱£侵袭症+ 提交于 2019-12-02 11:25:31
HashMap集合是Map接口的实现类,在Map集合不同于Collectiion集合,Map集合存放的是键值对,通过键(key)可以找到对应的值(value),而且每一个key是唯一的。那么该如何自定义实现HashMap呢? 通过阅读jdk的源代码,发现HashMap的底层数据结构其实就是数组加上链表。笔者通过阅读源码,自定义实现了HashMap。 数组里面存放的是链表LinkedList,而链表里存放的是Entry(表示一对键值对)。首先通过key的hash值计算一个出一个数值,把它当做数组的索引(index),如果有两个key计算得到的index相同,则这两对键值对存放在索引为index的LinkedList当中。如果两个key计算得到的index不同,这这两个键值对会存放在不同的LinkedList当中。如图: 具体的代码实现如下: package com.tiantang.collection; /** * 自定义的Map集合接口 * @author LiuJinkun * */ public interface MyMap { /** * 返回集合的大小 * @return */ int size(); /** * 存放键值对 * @param key * @param value */ void put(Object key,Object value); /** *

自定义的HashMap实现

一个人想着一个人 提交于 2019-12-02 11:25:19
自定义的HashMap 设计一个MyHashMap,实现接口IHashMap MyHashMap内部由一个长度是2000的对象数组实现。 设计put(String key,Object value)方法 首先通过上一个自定义字符串的hashcode练习获取到该字符串的hashcode,然后把这个hashcode作为下标,定位到数组的指定位置。 如果该位置没有数据,则把字符串和对象组合成键值对Entry,再创建一个LinkedList,把键值对,放进LinkedList中,最后把LinkedList 保存在这个位置。 如果该位置有数据,一定是一个LinkedList,则把字符串和对象组合成键值对Entry,插入到LinkedList后面。 设计 Object get(String key) 方法 首先通过上一个自定义字符串的hashcode练习获取到该字符串的hashcode,然后把这个hashcode作为下标,定位到数组的指定位置。 如果这个位置没有数据,则返回空 如果这个位置有数据,则挨个比较其中键值对的键-字符串,是否equals,找到匹配的,把键值对的值,返回出去。找不到匹配的,就返回空。 代码来啦! package collection; /** * Copyright © 2018 GaoShang. All rights reserved * * @author

Java学习笔记-3-集合

核能气质少年 提交于 2019-12-02 06:57:28
集合 List 集合接口 (包含 ArrayList/LinkedList/Vector(静态of)) 底层是大小可变的数组的实现,存储在内的数据称为元素。 在JDK 7后,右侧泛型的尖括号之内可以留空。 常用API add(int index, E element) 插入 , 添加 , 将指定的元素,添加到该集合中的指定位置上。可以在头部或者尾部插入 , 索引不报异常 , 其他都报索引越界异常。 remove(int index) 移除列表中指定位置的元素 , 返回的是被移除的元素。 set(int index, E element) 用指定元素替换集合中指定位置的元素 , 返回更新前的元素。 get(int index) 返回集合中指定位置的元素。 ArrayList 集合类 常用API list.add() 添加 。 list.get() 返回指定索引的元素。 list.size() 返回集合中的元素个数 。 list.remove() 删索引 , 返元素 ( 删元素返 boolean) list.set() 通过索引来修改元素。 list.contains(e) 判断集合是否有元素 e, 如果有 , 返回 true。 LinkedList 类集合 (List 子类 ) 常用API addFirst(E e) 将元素插入此列表的开头。 addLast(E e)

林子雨-5.2 键值对RDD

混江龙づ霸主 提交于 2019-12-02 06:37:39
目录 1、创建键值对RDD 从文件加载 通过并行集合创建 2、常用的键值对RDD转换操作(reduceByKey和groupByKey) 3、keys,values.sortByKey,mapValues,join 4、综合实例 1、创建键值对RDD 从文件加载 通过并行集合创建 2、常用的键值对RDD转换操作(reduceByKey和groupByKey) groupByKey的valueList以Iterable的形式保存(放在Iterable容器中) 用groupByKey和reduceByKey完成词频统计 3、keys,values.sortByKey,mapValues,join keys:把key取出形成新的RDD values:与keys同理 sortByKey():默认按Key升序排序(false为降序) sortBy():.sortBy(_._2,false)按值降序排序 mapValues(fanc) 只对value进行操作 join 4、综合实例 来源: https://blog.csdn.net/helloworld0906/article/details/102729906

第6章 字典

这一生的挚爱 提交于 2019-12-02 06:08:43
看了这么久的视频和书,第一次超过第五章,开始新的章程 6.1 一个简单的字典 差了好多概念,没有一个概念是以客观事实来描述字典的实体概念。我的理解相当于是一个容器,里面可以存放好多与容器相关的东西。 6.2 使用字典 在Python中,字典是一些列键-值对。每一个键都与一个值关联,你可以使用键访问与之关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上可以将任何Python中对象用作字典的值。 字典用放在花括号{}中的一系列键-值对表示。 键-值对是两个相关联的值。指定键时,,Python将返回与之关联的值。 键和值之间用冒号分割,而键值对之间用逗号分割 最简单的字典只有一个键值对 6.2.1 访问字典中的值 要获得与键相对应的值,课一次制定自点名u放在方括号内的键。 字典中可以包含任意数值的键值对 6.2.2 添加键值对 字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起来的键和相关联的值。 6.2.3 先创建一个空字典 在空字典中添加键值对。在空的花括号定义一个字典,再分行添加各个键值对。 使用字典来存储用户提供的数据或在编写能自动生成大量键值对的代码时,通常都需要先定义一个空字典 6.2.4 修改字典中的值 6.2.5 删除键值对 对于字典中不再需要的信息,可以使用del语句将相应的键值对彻底删除。使用del语句时

Dictionary(字典)

非 Y 不嫁゛ 提交于 2019-12-02 05:01:38
Dictionary(字典)------重要!!! 1、无序的 2、key值是唯一的, 可hash,key必须是不可变类型,如:字符串、元组、整型,可变类型:列表、字典 字典操作   创建 dic1 = dict((('name','leon'),))dic2 = {'name':'leon'} #常用 增加 1 dic2['age'] = 20 #增加单个key 2 dic2.setdefault('爱好','football、game') 3 #setdefault key存在时,不改动,返回字典中相应的key对应的值;key不存在时,增加新key值对,并返回值 View Code 查询 print(dic2['age']) print(dic2.keys())#查询键名 注意:遇到字典用参数加键名查询,遇到列表用索引查询,比如:字典dic['key'],列表list[0,1] View Code 修改 dic2['name'] = 'sun' #直接赋值实现修改 dic3 = {'name':'sL','sex':'male','age':28,'4':'444','5':'555','6':'666'} dic2.update(dic3)#update 更新字典,存在相同值更换,不存在则添加新值 View Code 删除 del dic3['sex'] #删除单个键值对