商务网站建设实训结论,17做网店一件代发,汕头营销网络公司,电影下载网站 怎么做请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称#xff0c;以及逐级之间的区别#xff1f; 默认隔离级别
mysql repeatable-read
oracle read-committed
脏读#xff1a;不可重复读#xff1a;幻读#xff1a;
CHAR 和 VARCHAR 的区别#xff1f;…请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称以及逐级之间的区别 默认隔离级别
mysql repeatable-read
oracle read-committed
脏读不可重复读幻读
CHAR 和 VARCHAR 的区别
char长度是不可变的但varchar长度是可变的一般用 char 类型的 存放 固定的数据 如 身份证号18 电话号 性别 varchar存储可变的数据
在 MySQL 中 ENUM 的用法是什么
-- Enum(0男, 1女, 2保密)
create table my_enum(gender enum(男, 女, 保密)
) 创建之后这个这一列只能在enum中选择填入可规范数据。
枚举的意义
规范数据本身限定只能插入规定的数据项节省存储空间
MySQL 中使用什么存储引擎
在MySQL中的存储引擎有很多种可以通过“SHOW ENGINES”语句来查看。下面重点关注InnoDB、MyISAM、MEMORY这三种。
show engine 查看存储引擎
InnoDB: 特点mysql默认的存储引擎支持事务和外键操作 使用场景对事物的完整性有比较高的要求在并发条件下要求 数据的一致性
MyISAM: 特点不支持事务和外键操作读取速度快节省资源。 使用场景以查询为主只有很少的更新和删除对事务的完整性、并发性要求不高。
MEMORY 特点将数据保存在内存中在需要快速定位记录和其他类似数据环境下可以更快的访问。 使用场景通常用于更新不太频繁的表可快速得到结果。
主键和候选键有什么区别外键
主键Primary Key
主键是一种用于唯一标识数据库表中每个记录的属性或组合属性。主键必须满足以下条件
唯一性主键值必须唯一每个记录必须有一个唯一的主键值。非空性主键值不能为空。不可变性主键值一旦确定就不能被修改。
主键通常用于连接不同的表中的数据并确保数据的一致性和完整性。
外键Foreign Key
外键是一个关系型数据库表中的字段它引用了另一个表中的主键。外键用于创建两个表之间的关系。外键必须满足以下条件
它必须是被引用表的主键。外键值必须是被引用表的主键值之一。外键值可以为空null如果允许空值的话。
外键可以用来维护数据库表之间的关系例如如果一个表存储了订单信息而另一个表存储了客户信息那么在订单表中客户信息可以通过外键来引用客户表中的主键。
候选键Candidate Key
候选键是一个可以唯一标识表中每个记录的属性或组合属性。与主键不同的是一个表可以有多个候选键。候选键必须满足以下条件
唯一性候选键值必须唯一每个记录必须有一个唯一的候选键值。非空性候选键值不能为空。
在设计数据库表时候选键通常用来确定主键。如果一个表中有多个候选键数据库设计者需要选择其中一个作为主键。
BLOB 和 TEXT 有什么区别
在关系型数据库中BLOBBinary Large Object和 TEXT 是两种用于存储二进制和文本数据的数据类型。它们之间的区别在于存储的数据类型和大小限制。
BLOB BLOB是用于存储二进制数据的数据类型例如图像、音频和视频文件等。BLOB数据可以存储为二进制文件或文本格式。BLOB的最大大小取决于所使用的数据库和存储引擎。在 MySQL 中BLOB 的最大大小可以达到 65,535 字节或 16MB。
TEXT TEXT是用于存储文本数据的数据类型例如文章、评论和其他文本数据。TEXT可以存储纯文本或格式化文本。与 BLOB 不同TEXT 只能存储文本数据不能存储二进制数据。TEXT的最大大小也取决于所使用的数据库和存储引擎。在 MySQL 中TEXT 的最大大小可以达到 65,535 字节或 4GB。
总之BLOB和TEXT都是用于存储数据的数据类型BLOB用于存储二进制数据而TEXT用于存储文本数据。它们的最大大小和具体的限制取决于所使用的数据库和存储引擎。在使用时需要根据实际需要选择正确的数据类型。
LIKE 和 REGEXP 正则表达式操作有什么区别
在关系型数据库中LIKE和REGEXP正则表达式都是用于匹配字符串的操作符它们之间的区别在于匹配方式和匹配能力。LIKE LIKE 是一个通配符匹配的操作符它可以用来在数据库中搜索与指定模式匹配的字符串。 REGEXP REGEXP 是一个正则表达式匹配的操作符它可以使用正则表达式来匹配数据库中的字符串。 如果需要匹配复杂的字符串模式那么 REGEXP 更适合使用而对于简单的字符串匹配使用 LIKE 更为简单和快捷。 SELECT * FROM tablename WHERE * REGEXP ^b;
SELECT * FROM tablename WHERE * LIKE %b; 数据库的三大范式
数据库三大范式是指规范化数据库设计的三个级别通常称为1NF、2NF和3NF它们的目的是通过消除数据冗余和不一致性来提高数据库的数据完整性和可维护性。
第一范式1NF 第一范式要求所有的数据库表都必须是原子性的也就是说每个表中的列必须是不可再分的基本数据项不能包含重复的数据或多值数据。例如如果一个订单表中包含多个商品那么就需要将订单表和商品表分离开来以避免重复数据的出现。 第二范式2NF
第二范式要求在满足第一范式的前提下所有非主键列都必须完全依赖于主键也就是说每个表中的非主键列必须与主键列直接相关。例如如果一个订单表包含订单编号和商品编号那么商品价格就应该存储在商品表中而不是在订单表中。
第三范式3NF 第三范式要求在满足第二范式的前提下任何非主键列之间都不能存在传递依赖关系也就是说不能存在非主键列通过其他非主键列间接依赖主键列的情况。例如如果一个订单表包含订单编号、商品编号和商品类别那么商品类别就应该存储在商品表中而不是在订单表中因为商品类别是由商品编号直接决定的与订单编号无关。
聚合函数
Count字段根据某个字段统计总记录数当前数据库保存到多少条数据 sum字段计算某个字段的数值总和 avg字段计算某个字段的数值的平均值 Max字段、min字段求某个字段最大或最小值
MySQL 中有哪几种锁
共享锁Shared Lock
共享锁也称为读锁它可以允许多个用户同时读取同一资源但是不能同时写入。共享锁可以防止数据在读取过程中被修改从而保证数据的一致性。共享锁不会阻止其他用户读取数据但是会阻止其他用户对数据进行修改。
使用场景在需要进行大量读操作同时需要防止数据被修改的情况下使用。 排他锁Exclusive Lock
排他锁也称为写锁它可以防止其他用户对资源进行读取和写入操作只有获得排他锁的用户才能对资源进行修改。排他锁可以保证数据的一致性但是会降低系统的并发性。
使用场景在需要进行写操作时需要排除其他用户读写操作的情况下使用。 行锁Row Lock
行锁是针对某一行数据进行加锁它可以防止其他用户对该行数据进行修改但是不会影响其他行的操作。行锁的粒度比表锁更细可以提高系统的并发性但是会增加系统的开销。
使用场景在并发操作较高需要对单行数据进行加锁的情况下使用。 表锁Table Lock
表锁是针对整个表进行加锁它可以防止其他用户对该表进行读取和写入操作但是会降低系统的并发性。表锁的粒度比行锁更粗可以降低系统的开销但是会影响系统的并发性。
使用场景在需要对整个表进行操作且操作频率较低的情况下使用。
mysql常用关键字
SELECT用于从数据库中查询数据。INSERT用于将新数据插入到数据库表中。UPDATE用于更新数据库表中的现有数据。DELETE用于从数据库表中删除数据。WHERE用于限制查询结果的返回。AND/OR用于组合多个查询条件。ORDER BY用于按特定列的值对结果进行排序。GROUP BY用于对结果进行分组。JOIN用于将多个表中的数据联合在一起进行查询。AS用于给表或列起别名。DISTINCT用于返回不同的值。COUNT用于计算匹配查询条件的行数。MAX/MIN用于返回某列的最大/最小值。AVG用于计算某列的平均值。SUM用于计算某列的总和。
MongoDB是什么
MongoDB是一种面向文档的非关系型数据库NoSQL它使用JSON格式的文档存储数据而不是使用表格来表示数据。MongoDB非常适用处理半结构化数据而且非常灵活易于扩展和集群。
mongodb 是文档型的非关系 型数据库其优势在于查询功能比较强大能存储海量数据。 MongoDB 的功能
面向文档适合存储对象及 JSON 形式的数据。动态查询Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记可轻 易查询文档中内嵌的对象及数组MongoDB 的适用场景
高度动态的数据MongoDB 非常适合实时的插入更新与查询并具备网站实时数据存储所 需的复制及高度伸缩性。大数据量和高吞吐量的应用程序MongoDB的可扩展性和分布式架构使其适合大规模的数据存储和高吞吐量的应用程序。 Redis、MongoDB 对比 数据模型 Redis是一个基于键值对的内存数据库支持多种数据结构如字符串、哈希表、列表、集合、有序集合等。Redis非常适合缓存、计数器、消息队列等场景。MongoDB是一个文档数据库支持JSON格式的文档存储。MongoDB的文档可以嵌套而且不需要预定义字段这使得MongoDB非常适合存储半结构化数据和多变的数据模型。
存储方式
Redis把所有数据都存储在内存中这使得它非常快但也意味着它的存储能力受到内存大小的限制。Redis支持数据持久化可以把内存中的数据定期或实时地保存到硬盘上以防止数据丢失。MongoDB支持将数据存储在内存中或磁盘上可以选择使用单机或集群部署。MongoDB通过使用索引、复制和分片等技术来提高数据的可靠性、可扩展性和性能。