SELECT 列名 FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 条件; 子查询 将一条查询语句作为一张虚拟表 Mysql约束 主键约束 特点:主键约束默认包含非空和唯一两个功能...即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作 事务的隔离级别 引发的问题 存储引擎 MySQL 支持的存储引擎有很多,常用的有三种:InnoDB、MyISAM、MEMORY。...唯一索引:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值组合必须唯一。 主键索引:一种特殊的唯一索引,不允许有空值。在建表时有主键列同时创建主键索引。...索引的设计原则 创建索引遵循的原则 对查询频次较高,且数据量比较大的表建立索引。 使用唯一索引,区分度越高,使用索引的效率越高。 索引字段的选择,最佳候选列应当从 where 子句的条件中提取。...针对同一份数据,多个事务读取操作可以同时加锁而不互相影响 ,但是不能修改数据。 排他锁:也叫写锁。当前的操作没有完成前,会阻断其他操作的读取和写入。 按粒度分类 表级锁:会锁定整个表。开销小,加锁快。
这意味着禁止基于特权的表/视图安全性。 可以在不指定用户的情况下创建表。 在本例中,动态SQL将“_SYSTEM”指定为user,嵌入式SQL将“”(空字符串)指定为user。...要生成这个类名, IRIS首先从视图名称中去掉标点符号,然后生成一个在前96个字符内唯一的标识符,在需要创建唯一的类名时用一个整数(从0开始)代替最后一个字符。...由于生成的类名不包括标点符号,因此不建议(尽管可能)创建仅在标点符号方面与现有视图或表名不同的视图名称。在这种情况下, IRIS用一个整数(从0开始)代替名称的最后一个字符,以创建唯一的类名。...它们可以是与选择列名不同的名称、与选择列名相同的名称或两者的组合。视图列名的指定顺序与选择列名的顺序相对应。由于可以为视图列分配不相关的选择列的名称,因此在分配视图列名称时必须格外小心。...可以创建使用INTO子句指定SELECT的视图,但该视图的执行失败,并出现SQLCODE-25错误。 CREATE VIEW可以包含UNION语句,以从两个表的联合中选择列。
## 一对多,多对一 # 1.设置外键–在多的一方表中添加一个字段添加外键约束与另一张表主键关联。 ## 多对多 # 1.新建关系表–在关系表中定义两个外键,分别与两个数据表的主键相关联。...2.唯一索引:在数据库表中的唯一列创建的索引(unique),此列的所有值只能出现一次,可以为null。 3.普通索引:在普通字段上创建的索引,没有唯一性的限制。...4.组合索引:两个及以上字段联合起来创建的索引。 –说明– 1.在创建数据表时,将字段声明为主键(添加主键约束),会自动在主键字段创建主键索引。...2.在创建数据表时,将字段声明为唯一键(添加唯一约束),会自动在唯一字段创建唯一索引。...7.1创建索引 # 1.唯一索引 -- 创建唯一索引:创建唯一索引列的值不能重复 -- create unique index on 表名(列名) create unique
组合查询union 什么是组合查询 SQL允许执行多个查询(多条SELECT语句),并将结果作为一个查询结果集返回,这些组合通常称为并union或者复合查询;通常两种情况下需要使用组合查询: 在一个查询中从不同的表返回结构数据...对一个表执行多个不同的查询,按照一个查询返回数据 创建组合查询 可以用UNION操作符来组合数条SQL查询。...; 需要注意4点: 在复制的过程中,任何SELECT选项和子句都可以使用,包含WHERE 和GROUP BY子句 可以利用联结从多个表插入数据 不管从多少个表中检索数据,数据最终只能插入到一个表中 INSERT...在UPDATE或者DELETE语句使用WHERE语句之前,先用SELECT进行测试,保证它过滤掉的是正确的记录 创建和操作表 创建表 SQL中一般有两种创建表的方法: 多数DBMS都具有交互式创建和管理数据库表的工具...: 表名紧跟CREATE TABLE 关键字 列名在圆括号中,各个列之间通过逗号隔开 每列的定义以列名开始,后紧跟数据类型 ,是否允许控制等 整条语句是以分号结束 使用NULL值 NULL值就是没有值或者缺失值
的区别 DDL语言 库的管理 1.库的创建 2.库的修改 修改数据库的字符集 3.库的删除 1.表的创建 3.查看表的结构 4.修改表的相关属性 修改列名---后面必须加上类型---等同于顺带修改列的类型...---- 创建表时添加表级约束 语法: 在各个字段的最下面 [constraint 约束名]--->可以不写,不写就为默认名,除了主键名固定,其余为字段名 约束类型(字段名); 举例: CREATE...主键 : 唯一 ,不可以为空,至多有一个主键,可以组合,但不推荐 唯一: 唯一,可以为空,可以有多个,可以组合,但不推荐 主键组合解释: DROP TABLE IF EXISTS stu; CREATE...,因此只有当插入两条记录的id和stuName都相同时,会报错,因为主键唯一,当插入记录的id和stuName某一条为空时,会报错,因为id和stuName组合为一个主键,因此他们两个其中任意一个都不为空...(id,stuName);//唯一键的组合 ---- 外键的特点 要求在从表设置外键的关系 从表的列的类型和主表的关联列的类型要求一致或者兼容,名称无要求 主表的关联列的必须是一个key(一般是主键或者唯一键
,由其自己拼接 视图 视图是一种虚拟存在的表,本身不包含数据,作为一个select语句保存在数据库中。...通俗的讲视图代表的是一条select语句产生的结果集。 create view 视图名称 as select语句; 创建视图 视图单独不能插入,修改数据,因为视图是虚拟的。...]普通索引 create unique index 索引名 on 表名(列名);创建唯一索引 create table 表名(列名 数据类型···unique 索引名(列名)); 创建表时创建唯一索引...create unique index 索引名 on 表名(列名,列名);创建联合唯一索引 create table 表名(列名 数据类型···unique 索引名(列名,列名)); 创建表时创建联合唯一索引...,BTree 每层节点数多,层数少,减少了IO读写次数,查询结果更加稳定 5.主键 外键 主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。
结果被存储在一个结果表中(称为结果集)。 SELECT 列名称 FROM 表名称 只听到从架构师办公室传来架构君的声音: 一朝卧病无相识,三春行乐在谁边?宛转蛾眉能几时?须臾鹤发乱如丝。...DELETE FROM 表名称 WHERE 列名称 = 值 可以在不删除表的情况下删除所有的行。...在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。 理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。 SQL CREATE INDEX 语法 在表上创建一个简单的索引。...在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。...在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
AND prod_price <= 4; AND 连接同时需要满足的两个条件,OR即满足一个条件即可,NOT 找到与后边条件不匹配的行。...UNIQUE 唯一约束,可唯一标识数据库表中的每条记录。 PRIMARY KEY 主键约束,唯一标识数据库表中的每条记录,唯一且非空。...每种约束可以创建表时设置好,也可以后期增删. 索引:在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。...,即按照列的顺序,分别插入数据(不推荐)。...此处(从同一个表中查询)可以用WHERE , OR代替。 常用作从不同表中查询时,只要列数相同就可以拼接到一起,列名按照第一句中查询的列名。
vend_id = 'DLL01' AND prod_price <= 4; AND 连接同时需要满足的两个条件,OR即满足一个条件即可,NOT 找到与后边条件不匹配的行。...UNIQUE 唯一约束,可唯一标识数据库表中的每条记录。 PRIMARY KEY 主键约束,唯一标识数据库表中的每条记录,唯一且非空。...每种约束可以创建表时设置好,也可以后期增删. 索引: 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。...,即按照列的顺序,分别插入数据(不推荐)。...此处(从同一个表中查询)可以用WHERE , OR代替。 常用作从不同表中查询时,只要列数相同就可以拼接到一起,列名按照第一句中查询的列名。
主键索引:索引列中的值必须是唯一的,不允许有空值。 普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值。 唯一索引:索引列中的值必须是唯一的,但是允许为空值。...全文索引:只能在文本类型CHAR,VARCHAR,TEXT类型字段上创建全文索引。字段长度比较大时,如果创建普通索引,在进行like模糊查询时效率比较低,这时可以创建全文索引。...前缀索引:在文本类型如CHAR,VARCHAR,TEXT类列上创建索引时,可以指定索引列的长度,但是数值类型不能指定。...其他(按照索引列数量分类) 单列索引 组合索引:组合索引的使用,需要遵循最左前缀匹配原则(最左匹配原则)。一般情况下在条件允许的情况下使用组合索引替代多个单列索引使用。...Column_name:索引中包含的列名。 Collation:对该列使用的字符集排序规则,如果该列不在任何索引中,则为NULL。 Cardinality:索引中唯一值的数量估计,不一定准确。
Key_name 索引的名称。 Seq_in_index 索引中的列序列号,从1开始。 Column_name 列名称。 Collation 列以什么方式存储在索引中。...对于多列组合的索引,如果删除其中的某列,则该列也会从索引中删除。 如果删除组成索引的所有列,则整个索引将被删除。...如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。也就是说,唯一索引可以保证数据记录的唯一性。...主键,是一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字 PRIMARY KEY 来创建。...下例主键A数据是1,主键B数据也是1,联合主键其实是11,这个11是唯一值,绝对不充许再出现11这个唯一值。
语法格式: //‘表名1’表示将获取到的记录查到哪个表中,‘表名2’表示从哪个表中查询记录 //‘列名列表1’表示为哪些列赋值,不设置表示所有列,‘列名列表2’表示从表中查询到哪些列的数据 insert...,Students.Cource; 6.3.2 内连接查询 内连接是最普通的连接类型,而且是最匀称的,因为它们要求构成连接的每一部分与每个表匹配,不匹配的行将被排除在最后的结果集之外。...大多数情况下,union 用来把查询产生的 结果集 添加到不同的表,用来创建包括所有结果的一个单独表。 使用 union 关键字时,数据库系统会将所有的查询结果合并到一起。然后去除相同的记录。...以下场景不适合创建索引: 1、在查询中很少被使用的索引 2、拥有许多重复值的字段 索引的分类: 1、普通索引,就是在创建索引时,不附加任何限制条件(唯一、非空等)。...默认情况下,全文索引的搜索执行方式不区分大小写,如果全文索引所关联的字段为二进制数据类型,则以区分大小写的搜索方式执行。 4、单列索引,在表的单个字段上创建索引。单列索引只根据该字段进行索引。
在日常工作中,我们可能会从多个数据集中获取数据,并且希望合并两个或多个不同的数据集。这时就可以使用Pandas包中的Merge函数。...函数将根据给定的数据集索引或列组合两个数据集。...pd.merge(customer, order) 默认情况下,merge函数是这样工作的: 将按列合并,并尝试从两个数据集中找到公共列,使用来自两个DataFrame(内连接)的列值之间的交集。...列和索引合并 在上面合并的数据集中,merge函数在cust_id列上连接两个数据集,因为它是唯一的公共列。我们也可以指定要在两个数据集上连接的列名。...然是如果我们要合并的列名在两个数据集不同时,on参数就没有效果了,这时就需要使用left_on和right_on参数,我们这里以刚刚改名的country列为例: pd.merge(customer,
因此,在这种情况下,能被存储在salary列中的值的范围是从-9999999.99到9999999.99。在ANSI/ISO SQL92中,句法DECIMAL(p)等价于DECIMAL(p,0)。...优点:类似大学图书馆建书目索引,提高数据检索的效率,降低 数据库的IO成本 ,这也是创建索引最主要的原因通过创建唯一索引,可以保证数据库表中每一行 数据的唯一性在实现数据的参考完整性方面,可以 加速表和表之间的连接...1、字段的数值有唯一性的限制业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。...11、在多个字段都要创建索引的情况下,联合索引优于单值索引27、哪些情况下创建索引,但是没有生效?...它们有一个字符集,并根据字符集的排序规则对值进行排序和比较。35、组合索引是什么?为什么需要注意组合索引中的顺序?组合索引,用户可以在多个列上建立索引,这种索引叫做组合索引。
表的完全限定名 SQL 可以使用 表名.列名 的形式引用列,表示唯一的列。...第十五章 联结表 联结就是在正对多个表,进行SQL查询时的组合。能更有效地查询多表数据。...SELECT a,b FORM a_table,b_table WHERE a_table.x = b_table.x; 联结的创建通过 = 在 WHERE 语句中将两个表相同含义的字段关联起来,达到关联表的作用...: 在单个查询中从不同的表返回一样结构的数据 在单个表执行多个查询,按照单个查询返回数据 如何使用组合查询 用 UNION 操作符组件多个 SQL 查询语句。...一般游标配合数据的重复循环处理,MySQL 循环使用 REPEAT-UNTIL。 第二十五章 使用触发器 什么是触发器? 在某个表数据发生变更时自动执行一条 MySQL 语句的东西。
DISTINCT子句应用于SELECT语句的结果集。它将每个不同(唯一)值返回的行数限制为一个任意行。如果未指定DISTINCT子句,则默认情况下显示满足选择条件的所有行。...但是,如果将文字指定为逗号分隔列表中的项值,则该文字将被忽略,并且DISTINCT将为指定字段名的每个唯一组合选择一行。 DISTINCT子句在TOP子句之前应用。...DISTINCT和GROUP BY DISTINCT和GROUP BY这两个记录按指定字段(或多个字段)分组,并为该字段的每个唯一值返回一条记录。...不同于(*)的语法不合法。 子查询:在子查询中使用DISTINCT子句是合法的,但没有意义,因为子查询返回单个值。 未选择行数据:DISTINCT子句可以与不访问任何表数据的SELECT一起使用。...如果SELECT不包含FROM子句,则DISTINCT是合法的,但没有意义。 聚合函数:可以在聚合函数中使用DISTINCT子句,以仅选择要包含在聚合中的不同(唯一)字段值。
dual 在MySQL中,DUAL是一个虚拟表,它主要用于那些不需要从任何表中检索数据但需要返回一个结果集的场合。...尽管MySQL不严格要求使用DUAL,但在一些从Oracle迁移到MySQL的数据库项目中,你可能会遇到在代码中显式引用DUAL的情况。...distinct 在MySQL中,DISTINCT关键字用于在查询结果中返回唯一不同的值。当你从表中检索数据时,如果表中有重复的行,并且你只希望看到每个唯一值一次,那么就可以使用DISTINCT。...DISTINCT通常与SELECT语句一起使用,放在需要返回唯一值的列名之前。你也可以对多个列使用DISTINCT,但这意味着MySQL会考虑这些列的组合作为唯一性的判断依据。...使用DISTINCT可能会影响查询的性能,因为它需要MySQL对结果集进行排序和去重。在大数据集上使用时尤其要注意这一点。
子查询的例子可以参考笔试题中的例子,SQL笔试50题(上),SQL笔试50题(下) 4.9 联接 join 通过联接,可以从两个或多个表中根据各个表之间的逻辑关系来检索数据。...如果表之间有匹配行,则整个结果集行包含基表的数据值。 交叉联接 交叉联接将返回左表中的所有行。左表中的每一行均与右表中的所有行组合。交叉联接也称作笛卡尔积。...4.10 UNION运算符 UNION 运算符可以将两个或多个 SELECT 语句的结果组合成一个结果集。...用 UNION 组合的结果集中的对应列或各个查询中所使用的任何部分列都必须具有相同的数据类型,并且可以在两种数据类型之间进行隐式数据转换,或者可以提供显式转换。...(两个查询结果的并集然后去重后的结果,A∪B) 使用 EXCEPT 或 INTERSECT 比较的结果集必须具有相同的结构。它们的列数必须相同,并且相应的结果集列的数据类型必须兼容。
联合主键 关系数据库实际上还允许通过多个字段唯一标识记录,即两个或更多的字段都设置为主键,这种主键被称为联合主键。...使用主键索引的效率是最高的,因为主键会保证绝对唯一。 唯一索引 在设计关系数据表的时候,看上去唯一的列,例如身份证号、邮箱地址等,因为他们具有业务含义,因此不宜作为主键。...也可以只对某一列添加一个唯一约束而不创建唯一索引: ALTER TABLE students ADD CONSTRAINT uni_name UNIQUE (name); 这种情况下,name列没有索引...小结 通过对数据库表创建索引,可以提高查询速度。 通过创建唯一索引,可以保证某一列的值具有唯一性。 数据库索引对于用户和应用程序来说都是透明的。...注意SQL记录集的索引从0开始。
更改列名 让我们来看一下刚才我们创建的示例DataFrame: ? 我更喜欢在选取pandas列的时候使用点(.),但是这对那么列名中含有空格的列不会生效。让我们来修复这个问题。...按行从多个文件中构建DataFrame 假设你的数据集分化为多个文件,但是你需要将这些数据集读到一个DataFrame中。 举例来说,我有一些关于股票的小数聚集,每个数据集为单天的CSV文件。...但是如果数据集中的每个文件包含的列信息呢? 这里有一个例子,dinks数据集被划分成两个CSV文件,每个文件包含三列: ? 同上一个技巧一样,我们以使用glob()函数开始。...你还可以检查每部电影的索引,或者"moives_1": ? 或者"moives_2": ? 需要注意的是,这个方法在索引值不唯一的情况下不起作用。...读者注:该方法在机器学习或者深度学习中很有用,因为在模型训练前,我们往往需要将全部数据集按某个比例划分成训练集和测试集。该方法既简单又高效,值得学习和尝试。 13.
领取专属 10元无门槛券
手把手带您无忧上云