Apache Lucy

mysql之表的约束

别来无恙 提交于 2020-08-09 23:35:22
表的约束 主键约束 设置主键约束(primary key)的第一种方式 设置主键约束(primary key)的第二种方式 设置主键约束(primary key)的第三种方式 非空约束 唯一性约束 AUTO_ INCREMENT约束 默认值约束 主键约束 主键约束即primary key用于唯一的标识表中的每一行 。被标识为主键的数据在表中是唯一的且其值不能为空。 这点类似于我们每个人都有一个身份证号,并且这个身份证号是唯一的。 主键约束基本语法: 字段名 数据类型 primary key; 设置主键约束(primary key)的第一种方式 CREATE TABLE student( id int primary key, name varchar(50) ); 在该方式中将id字段设置为主键,请参见第2行代码 设置主键约束(primary key)的第二种方式 CREATE TABLE student( id int, name varchar(50), primary key(id) ); 在该方式中,先定义了字段id,然后设置该字段为主键,请参见第4行代码。 若采用该方式非常便于设置联合主键,请看如下示例: CREATE TABLE student( classid int, studentid int, name varchar(50), primary key

MySQL数据库操作(7)联表查询、事务

ε祈祈猫儿з 提交于 2020-05-09 06:59:43
联表查询 内连接`[INNER| CROSS] JOIN` 无条件内连接: 无条件内连接,又名交叉连接/笛卡尔连接 第一张表种的每一项会和另一张表的每一项依次组合 有条件内连接: 在无条件的内连接基础上,加上一个ON子句 当连接的时候,筛选出那些有实际意义的记录行来进行拼接 在写条件时注意两张表的列名是否一样, 如果时一样的则要在前面加上表名,tb_name.colname这种形式存在 例: 无条件内连接 SELECT * FROM `student` INNER JOIN `department`; +------+--------+---------+----+----------+ | s_id | name | dept_id | id | name | +------+--------+---------+----+----------+ | 1 | David | 1 | 1 | English | | 1 | David | 1 | 2 | Art | | 1 | David | 1 | 3 | Computer | | 1 | David | 1 | 4 | Alchemy | | 2 | Lucy | 3 | 1 | English | | 2 | Lucy | 3 | 2 | Art | | 2 | Lucy | 3 | 3 | Computer | | 2 |

python日记—if & for

▼魔方 西西 提交于 2020-05-07 13:32:28
number = 10 guess = int(input("Enter an integer:")) if guess == number: print('you guessed it right!') elif guess > number: print('you guessed it higher than that!') else: print('you guessed it lower than that!') for i in range(1, 10): print(i) else: #执行完for语句之后再执行这条语句 print('The for loop is over!') #遍历表list a_list = [1, 3, 5, 7, 9] for i in a_list: print(i) #遍历元组tuple a_tuple = (2, 4, 6, 8, 10) for i in a_tuple: print(i) #遍历字典 a_dict = {'Tom':3, 'Kim':4, 'Lucy':5} for ele in a_dict: print(ele) print(a_dict[ele]) for key, elem in a_dict.items(): print(key, elem) 来源: oschina 链接: https://my

MySQL的四种事务隔离级别

断了今生、忘了曾经 提交于 2020-05-06 16:41:58
环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACID) 1.原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2.一致性(Consistency): 事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 3.隔离性(Isolation): 同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。 4.持久性(Durability): 事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。 二、事务的并发问题 1.脏读: 事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据。 2.不可重复读: 事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。 3.幻读: 系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录

mysql数据库基本操作(七)

痞子三分冷 提交于 2020-04-27 19:42:34
多表查询 数据表之间的关系无外乎分为三种:一对一、一对多、多对多。表的查询我们前面只说过单表的,多表的查询在实际应用中也很重要。在多表查询中,最重要的是 连接查询 。连接查询又可以分为内连接(inner join)、外连接(left join、right join)、全连接(full join)。下面主要讲的这些连接查询。 在开始之前,我们要准备两张表,还是用上一篇的班级学生表吧: CREATE TABLE Classhost( host_id TINYINT PRIMARY KEY auto_increment, name VARCHAR ( 20 ), age INT , is_marriged boolean ); INSERT INTO Classhost (name,age,is_marriged) VALUES ("丽丽", 22 , 0 ), ("莉莉", 24 , 0 ), ("李丽", 22 , 0 ), ("李莉", 20 , 0 ); CREATE TABLE student( student_id INT PRIMARY KEY auto_increment, name VARCHAR ( 20 ), host_id TINYINT )ENGINE = INNODB; INSERT INTO Student(name, host_id ) VALUES (

查询表达式

三世轮回 提交于 2020-04-27 10:33:12
mongo中的查询表达式都需要用对象表示 1. 最简单的查询表达式   {field: value},是指查询field列的值为value的文档 2. $ne -- != 查询表达式   {field : { $ne : value }} , 查field列的值不等于 value的文档   db.goods.find({cat_id : {$ne : 3}}, {goods_id : 1, car_id : 1, goods_name : 1, _id : 0} ) _id: 0 表示不查询_Id 列 3. $gt -- > 查询表达式   db.goods.find({shop_price : { $gt : 3000} }, {goods_id:1, shop_price : 1, _id : 0 })   $gt -- > , $gte -- >=, $in -- in, $lt -- < , $lte -- <=, $ne -- !=, $nin -- not in 4. $and, $nin, $nor   db.goods.find({ $and : [{ cat_id : {$ne : 3}}, {cat_id : {$ne : 11}}] }, {cat_Id : 1, goods_name : 1, _id : 0 });   db.goods.find({

FTC诉高通垄断案苹果从中受益

怎甘沉沦 提交于 2020-04-24 17:56:39
据外媒报道,美国当地时间周二,美国联邦贸易委员会(FTC)诉芯片制造商高通公司(Qualcomm)垄断案进入了终结辩论阶段。这意味着,这起审判也进入最后阶段,它可能颠覆高通在智能手机时代取得成功的至关重要的商业模式。 美国加州北区地方法院法官高兰惠(Lucy Koh)预计将对诉讼双方提出质询,并对高通的“无授权、无芯片”政策提出挑战,该策略要求智能手机制造商支付专利使用费才能使用高通芯片。FTC辩称,这种做法帮助高通在过去十年里赚取了数十亿美元的利润,同时抑制了竞争。 这场审判也是高通与其专利技术授权方(即苹果)之间一场代价高昂的诉讼核心。高通2017财年净收入下降近60%,约为24.7亿美元,部分原因是苹果和华为开始扣缴授权费。 FTC辩称,高通专利授权做法是该公司一系列非法策略的核心,这些策略旨在维持其对手机至关重要芯片的垄断。该机构还指责高通强迫智能手机制造商支付高额的专利使用费,并拒绝向竞争对手授权其被视为手机标准至关重要的专利,这些专利被称为“标准必要专利”。 高通在庭审期间辩称,对按照每部手机成本收取最高5%的授权费,无论其是否配备了高通芯片,这是一种用于资助研发的标准做法。它还提到了英特尔和联发科等公司的调制解调器芯片业务作为证据,证明其对授权标准专利的抵制并没有阻碍竞争。 除了攸关高通公司的重大利益外

【Oracle11g】11_表分区

蹲街弑〆低调 提交于 2020-04-09 16:47:36
目录 1.传统的表分区类型 1.1 范围分区 1.2 散列分区 1.3 列表分区 1.4 复合分区 2.Oracle 11g新增的分区 2.1 引用分区 2.2 间隔分区 2.3 基于虚拟列的分区 2.4 系统分区 3.总结 3.1 增删查分区表 3.2 分区的维护 表分区: 表分区是指允许用户将一个表分成多个分区 用户可以执行查询,只访问表中的特定分区 将不同的分区存储在不同的磁盘,提高访问性能和安全性。 可以独立的备份和恢复每个分区 1.传统的表分区类型 1.1 范围分区 概念:以表中的一个列或一组列的值的范围分区 语法: PARTITION BY RANGE (column_name) ( PARTITION part1 VALUE LESS THAN(range1), PARTITION part2 VALUE LESS THAN(range2), ... [PARTITION partN VALUE LESS THAN(MAXVALUE)] ); 实战演练 -- 创建范围分区表 create table person( p_id varchar2(10) ,p_name varchar2(10) ,p_age number) partition by range(p_age) ( partition p1 values less than(18), partition

(待整理完)正则表达式30分钟入门教程

心不动则不痛 提交于 2020-04-07 03:07:43
正则表达式是什么? Regular Expression(regex、regexp或RE) : 记录文本规则的代码( 描述搜索模式的特殊文本字符串 ) 很可能你使用过Windows/Dos下用于文件查找的 通配符(wildcard) ,也就是*和?。如果你想查找某个目录下的所有的Word文档的话,你会搜索*.doc。在这里,*会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过 比起通配符,它能更精确地描述你的需求 ——当然,代价就是更复杂 入门 学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了不少简单的例子,并对它们作了详细的说明。 假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。 这几乎是最简单的正则表达式了,它可以精确匹配这样的字符串:由两个字符组成,前一个字符是h,后一个是i。通常,处理正则表达式的工具会提供一个忽略大小写的选项,如果选中了这个选项,它可以匹配hi,HI,Hi,hI这四种情况中的任意一种。 不幸的是,很多单词里包含hi这两个连续的字符,比如him,history,high等等。用hi来查找的话,这里边的hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。 \b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter), 代表着

Python基础之set的详解

蓝咒 提交于 2020-03-25 19:28:49
3 月,跳不动了?>>> set 顾明思义,就是个集合,集合的元素是唯一的,无序的。 一个 { } 里面放一些元素就构成了一个集合, set 里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组) 集 合 是 一 个 无 序 不 重 复 元素 的 集 。 基 本 功 能 包 括 关 系 测 试 和 消 除 重 复 元 素 。 集 合 对 象 还 支 持 union( 联 合 ),intersection( 交 ),difference( 差 ) 和 sysmmetric difference( 对称差集 ) 等数学运算。 大括号或 set() 函数可以用来创建集合。 注意 : 想要创建空集合 , 你必须使用 set() 而不是 {} 。 {} 用于创建空字典; 具体的语法总结如下。 add (增加元素) 1 2 3 4 5 name = set(['Tom','Lucy','Ben']) name.add('Juny') print(name) # 输出:{'Lucy', 'Juny', 'Ben', 'Tom'} clear (清空所有元素) 1 2 3 4 5 name = set(['Tom','Lucy','Ben']) name.clear() print(name) # 输出:set() copy( 拷贝 set 集合 ) 1 2 3 4 5 name =