首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL快速入门(二)

目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 group...zerofill 多余的使用数字0填充 not null 非空 default 默认值 unique 唯一值 primary key 主键 foreign key 外键 auto_increment...级联更新/删除 用外键做了表与表的对应关系后,那么操作(增删改)一个表数据,是不允许的; 那么可以通过添加级联更新和删除来同步数据,添加在设置外键下边··· on update cascade:级联更新...''' 注意 外键字段建在任何一方都可以,但是推荐建在查询频率较高的表中 SQL语句实现 create table peo( id int primary key auto_increment,...在创建表的时候,需要注意先创建没有设置外键的表 在插入数据的时候,要确保被关联表中有数据 在插入新数据的时候,外键字段只能填写被关联表中已经存在的数据 在修改和删除被关联表中的数据的时候,无法直接操作

2.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DevOps工具介绍连载(48)——静态扫描工具Brakeman

    质量分配 使用String#strip或String.squish(#1459)检查SQL查询字符串 处理(#1465)locals哈希中的非符号键render 渲染参数中的索引调用(#1459) 全球批量分配...例如: ActiveRecord::Base.connection.execute "SELECT * FROM #{user_input}".squish 本地哈希中的非符号键 使用符号文字以外的其他值作为...locals哈希中的键render将不再导致错误。...自4.7.2起的更改: 添加JUnit XML报告格式(Naoki Kimurai) 按指纹和行对忽略文件进行排序(Ngan Pham) 在CheckExecute(Jacob Evelyn)中捕捉危险的串联...变化 排序忽略文件 以前,“忽略文件”中的警告仅按指纹排序。由于有了Ngan Pham,现在可以按指纹然后按行号对它们进行排序,以保持具有相同指纹的警告之间的稳定顺序。

    2.2K10

    面试必问之mysql基础

    No No Yes No 支持全文索引 Yes No No No 支持树索引 Yes Yes Yes No 支持哈希索引 No Yes No No 支持数据缓存 No N/A Yes No 支持外键...主键索引:特殊的唯一索引,不允许有空值。 复合索引:将多个列组合在一起创建索引,可以覆盖多个列。 外键索引:只有InnoDB类型的表才可以使用外键索引,保证数据的一致性、完整性和实现级联操作。...,因为Hash值的大小关系并不一定和Hash运算前的键值完全一样; Hash索引不能利用部分索引键查询,对于组合索引,Hash索引在计算Hash值的时候是组合索引键合并后再一起计算Hash值,而不是单独计算...Hash值,所以通过组合索引的前面一个或几个索引键进行查询的时候,Hash索引也无法被利用; Hash索引在任何时候都不能避免表扫描,由于不同索引键存在相同Hash值,所以即使取满足某个Hash键值的数据的记录条数...B+ 树,mysql 中的数据都是按顺序保存在 B+ 树上的(所以说索引本身是有序的)。

    35110

    Mysql基础

    八、排序 ASC :升序(默认) DESC :降序 可以按多个列进行排序,并且为每个列指定不同的排序方式: SELECT * FROM mytable ORDER BY col1 DESC, col2...十三、分组 分组就是把具有相同的数据值的行放在同一组中。 可以对同一分组数据使用汇总函数进行处理,例如求分组数据的平均值等。 指定的分组字段除了能按该字段进行分组,也会自动按该字段进行排序。...SELECT col, COUNT(*) AS num FROM mytable GROUP BY col; GROUP BY 自动按分组字段进行排序,ORDER BY 也可以按汇总字段来进行排序。...并发:MyISAM 只支持表级锁,而 InnoDB 还支持行级锁。 外键:InnoDB 支持外键。 备份:InnoDB 支持在线热备份。...、CHECK控制字段范围) 16 Mysql数据库引擎MyISAM和InnoDB( MyISAM: 表锁、 不支持事务、 不支持外键、 全文索引、 快、内存利用低, InnoDB: 行锁、 外键 事务

    1.8K00

    MySQL 查询专题

    ❑ 如果分组列中包含具有 NULL 值的行,则 NULL 将作为一个分组返回。如果列中有多行NULL值,它们将分为一组。...你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。 你可以设定多个字段来排序。 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。...在指定一条 ORDER BY 子句时,应该保证它是SELECT语句中最后一条子句,否则这将报错 不限制是否使用非选择列进行排序 除了能用列名指出排序顺序外,ORDER BY 还支持按相对列位置进行排序,...在升序排序时可以指定它。但实际上,指定 ASC 没有多大用处 在对文本性数据进行排序时,A 与a 相同吗?a位于 B 之前,还是Z之后?这些问题不是理论问题,其答案取决于数据库的设置方式。...一对一关系 (夫妻关系) 从表的主键即是外键 一对多关系(部门和职员的关系) 从表有一个键作为外键 多对多(学生老师关系) 需要一个中间表, 然后指定两个外键 一般主表的记录数会少.

    5K30

    Citus 11 官方手册脑图 - PostgreSQL 超大规模分布式数据库解决方案上手指南

    分布表 按租户分布表 共置意味着更好的功能支持 查询性能 迁移现有应用程序 确定分布策略 选择分布键 确定表的类型 为迁移准备源表 添加分布键 回填新创建的列 准备申请 Citus 设置 Development...Citus 集群 在键中包含分布列 向查询添加分布键 Ruby on Rails Django ASP.NET Java Hibernate 其他(SQL原则) 启用安全连接 检查跨节点流量 迁移生产数据...如何更改哈希分区表的分片数? citus 如何支持 count(distinct) 查询? 分布式表在哪些情况下支持唯一性约束? 如何在 Citus 集群中创建数据库角色、功能、扩展等?...如果工作节点的地址发生变化怎么办? 哪个分片包含特定租户的数据? 我忘记了表的分布列,如何找到? 我可以通过多个键分发表吗? 为什么 pg_relation_size 报告分布式表的零字节?...一个带有 HLL 的汇总表胜过一千个没有 HLL 的汇总表 想了解更多关于 Postgres 中的 HLL 的信息吗?

    4.4K30

    Mysql基础

    八、排序 ASC :升序(默认) DESC :降序 可以按多个列进行排序,并且为每个列指定不同的排序方式: SELECT * FROM mytable ORDER BY col1 DESC, col2...十三、分组 分组就是把具有相同的数据值的行放在同一组中。 可以对同一分组数据使用汇总函数进行处理,例如求分组数据的平均值等。 指定的分组字段除了能按该字段进行分组,也会自动按该字段进行排序。...SELECT col, COUNT(*) AS num FROM mytable GROUP BY col; GROUP BY 自动按分组字段进行排序,ORDER BY 也可以按汇总字段来进行排序。...并发:MyISAM 只支持表级锁,而 InnoDB 还支持行级锁。 外键:InnoDB 支持外键。 备份:InnoDB 支持在线热备份。...、CHECK控制字段范围) 16 Mysql数据库引擎MyISAM和InnoDB( MyISAM: 表锁、 不支持事务、 不支持外键、 全文索引、 快、内存利用低, InnoDB: 行锁、 外键 事务

    1.5K00

    「春招系列」MySQL面试核心25问(附答案)

    总结 事务: InnoDB 是事务型的,可以使用 Commit 和 Rollback 语句。 并发: MyISAM 只支持表级锁,而 InnoDB 还支持行级锁。 外键: InnoDB 支持外键。...索引使用的是B树中的B+Tree,BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。...BTREE :BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。...覆盖索引就是把要查询出的列和索引是对应的,不做回表操作! 25、数据库中的主键、超键、候选键、外键是什么?...主键:用户选作元组标识的一个候选键程序主键 外键:如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。

    53330

    《逆袭进大厂》第十一弹之MySQL25问25答

    总结 事务: InnoDB 是事务型的,可以使用 Commit 和 Rollback 语句。 并发: MyISAM 只支持表级锁,而 InnoDB 还支持行级锁。 外键: InnoDB 支持外键。...索引使用的是B树中的B+Tree,BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。...BTREE :BTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。...覆盖索引就是把要查询出的列和索引是对应的,不做回表操作! 25、数据库中的主键、超键、候选键、外键是什么?...主键:用户选作元组标识的一个候选键程序主键 外键:如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。

    48420

    《深入浅出SQL》问答录

    有办法确定外键已经连接到父键了吗? A:外键为NULL,表示在父表中没有相符的主键。但我们可以确认外键包含有意义、已经存储在父表中的值,请通过约束实现。...不能单纯的使用另一张表的键,称之为外键,而不加上约束吗? A:其实可以,但创建成外键约束后,就只能插入已经存在于父表中的值,有助于加强两张表间的连接。 加强连接?是什么意思?...A:外键约束能确保引用完整性(换句话说,如果表中的某行有外键,约束能确保该行通过外键与另一张表中的某一行一一对应)。...如果我们试着删除主键表中的行或者是改变主键值,而这个主键是其他表的外键约束时,你就会收到错误警告。 所以上面说的那种,我就不能删除了是吗? A:还是可以的,先移除外键行即可。...插入外键列的值必须已经存在与父表的来源中,这是引用完整性。 创建外键作为表的约束提供了明确的优势,如果违反了规则,约束会阻止我们破坏表。 外键不一定要是父表的主键,但是要具有唯一性。 ?

    2.9K50

    分布式 PostgreSQL 集群(Citus),分布式表中的分布列选择最佳实践

    共置的实际示例 使用常规 PostgreSQL 表 按 ID 分布表 按租户分布表 共置意味着更好的功能支持 查询性能 确定应用程序类型 在 Citus 集群上运行高效查询要求数据在机器之间正确分布...您可以保留所需的关系语义,例如 联接、外键约束、事务、ACID 和一致性。 示例:为其他企业托管店面的网站,例如数字营销解决方案或销售自动化工具。 特征:与单个租户相关的查询,而不是跨租户加入信息。...使用 Citus 扩展多租户应用程序还需要对应用程序代码进行最少的更改。我们支持流行的框架,如 Ruby on Rails 和 Django。...虽然它没有以分布式方式提供 PostgreSQL 的全部功能,但在许多情况下,它可以通过托管在单台机器上充分利用 PostgreSQL 提供的功能,包括完整的 SQL 支持、事务和外键。...聚合 外键 分布式外部联接(outer join) Pushdown CTEs(要求 PostgreSQL >=12 ) 数据共置是一种强大的技术,可以为关系数据模型提供水平扩展和支持。

    4.5K20

    理解存储引擎MyISAM与InnoDB

    不是事务安全的,而且不支持外键,如果执行大量的select,insert   MyISAM比较适合。 2、InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。...解决死锁的方法: 1、  数据库参数 2、  应用中尽量约定程序读取表的顺序一样 3、  应用中处理一个表时,尽量对处理的顺序排序 4、  调整事务隔离级别(避免两个事务同时操作一行不存在的数据,容易发生死锁...) 3、关于count()函数 myisam保存有表的总行数,如果select count(*) from table;会直接取出出该值 innodb没有保存表的总行数,如果使用select count...alter table tablename type=innodb;   或者使用 alter table tablename engine = innodb; 下面先让我们回答一些问题:    ◆你的数据库有外键吗...◆你需要事务支持吗?    ◆你需要全文索引吗?    ◆你经常使用什么样的查询模式?    ◆你的数据有多大?

    60120

    100道MySQL数据库经典面试题解析(收藏版)

    InnoDB与MyISAM的区别 InnoDB支持事务,MyISAM不支持事务 InnoDB支持外键,MyISAM不支持外键 InnoDB 支持 MVCC(多版本并发控制),MyISAM 不支持 select...B树和B+树的区别,数据库为什么使用B+树而不是B树? 在B树中,键和值即存放在内部节点又存放在叶子节点;在B+树中,内部节点只存键,叶子节点则同时存放键和值。...超键、候选键、主键、外键分别是什么? 超键:在关系模式中,能唯一知标识元组的属性集称为超键。 候选键:是最小超键,即没有冗余元素的超键。...主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。。...FOREIGN KEY: 用于预防破坏表之间连接的动作,也能防止非法数据插入外键。 CHECK: 用于控制字段的值范围。 70. 谈谈六种关联查询,使用场景。

    2.6K20

    常见PHP面试题型汇总(附答案)

    按值传递:函数范围内对值的任何改变在函数外部都会被忽略 按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改 优缺点:按值传递时,php必须复制值。...,尽可能减少定义字段宽度,尽量把字段设置NOTNULL 使用连接(JOIN)来代替子查询 适用联合(UNION)来代替手动创建的临时表 事务处理 锁定表、优化事务处理 使用外键,优化锁定表 使用索引 优化查询语句...) - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组进行排序 ksort() - 根据键,以升序对关联数组进行排序 arsort() - 根据值,...,PRIMARY KEY[索引字段]) 不支持。PHP中只允许单继承,父类可以被一个子类用关键字“extends”继承。 22、PHP支持多继承吗?...LIKE 关键字和通配符 (5).使用事务和外键 25、MySQL主从备份的原理?

    2.8K20

    Active Record 迁移

    products, :categories, column_options: {null: true} 需要说明的是数据表的名称默认由前两个参数按字母顺序组合而来,可以传入 :table_name 选项来自定义数据表名称...除此之外,还有 change_column_null 和 change_column_default 方法,分别用于设置字段是否可为空、修改字段的默认值。...:name 字段设置为 NOT_NULL,把 :approved 字段的默认值由 true 改为 false 。...字段修饰符 字段修饰符可以在创建或修改字段时使用,有 limit precision scale polymorphic null default index comment 外键 使用外键约束可以保证引用的完整性...rails db:migrate 命令,这个方法会调用所有未运行的change或者up方法,调用的顺序是根据迁移文件名的时间戳确定的。

    1.6K20

    Mysql - 数据库面试题打卡第一天

    3)可以从灾难中恢复(通过 bin-log 日志等)。 4)外键约束。只有他支持外键。 5)支持自动增加列属性 auto_increment。...他主要适用于访问频率不高的数据或历史数据归档 4、MyIASM MyIASM是 MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当 INSERT(插入)或 UPDATE...、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些 Memory:全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在...常见的查询算法,顺序查找,二分查找,二叉排序树查找,哈希散列法,分块查找,平衡多路搜索树 B 树(B-tree) ,索引是对数据库表中一个或多个列的 值进行排序的结构,建立索引有助于快速获取信息。...尽量使用数据量少的索引 如果索引的值很长,那么查询的速度会受到影响。尽量使用前缀来索引 如果索引字段的值很长,最好使用值的前缀来索引。

    87620

    mysql 知识总结

    外键约束:用来和其他表建立联系的字段,是另一表的主键,可以重复可以为空,可以有多个外键。非空约束:不能为空。默认值约束:不指定值时使用默认值填充。...InnoDB默认存储引擎,支持ACID事务、外键和行锁。并发条件下要求数据一致性,适合更新比较频繁的场景。MyISAM不支持事务,不支持外键,只支持表锁。适用于读多写少且对事务要求不高的场景。...哈希,时间复杂度O(1),只支持等值查询,不支持排序和范围,innodb 自动创建的内存索引。物理存储聚集索引:叶子节点包含完整一行数据,类比于字典的按首字母排序组织。一个表必须有一个聚集索引。...分区键必须是主键或唯一索引的部分或全部字段。分区类型RANGE:按范围分区。LIST:按离散值分区。HASH:按哈希值分区,分区键必须是整数。...KEY:类似按哈希值分区,分区键支持除 BLOB 和 TEXT 外的类型。

    17210

    关于-github的六个神技巧

    匹配 GitHub 拥有的存储库中的问题,按最少的反应和评论组合数排序 # 按反应排序 语法 例子 org:github sort:reactions 匹配 GitHub 拥有的存储库中的问题,按最高反应数排序...GitHub 拥有的存储库中的问题,按最多点赞 () 反应排序 org:github sort:reactions- -1 匹配 GitHub 拥有的存储库中的问题,按最多 () 反应排序 org:github...,按大多数欢呼 () 反应排序 org:github sort:reactions-heart 匹配 GitHub 拥有的存储库中的问题,按大多数心脏 (❤️) 反应排序 # 按作者日期排序 语法 例子...# 按语言搜索 语法 例子 rails language:javascript 匹配使用 JavaScript 编写的带有“rails”一词的存储库 # 按主题搜索 语法 例子 topic:jekyll...星号少于父存储库的分叉不会为代码搜索编制索引。要在搜索结果中包含星数多于父级的分叉,您需要将fork:true或添加fork:only到您的查询中。

    1.2K10
    领券