编程 20 / 627 题
mysql group
SELECT 分组列, 聚合函数(计算列) FROM 表名 [WHERE 条件] GROUP BY 分组列 [HAVING 分组过滤条件]; SELECT department, AVG(salary) FROM employees...
mysql子查询
嵌套在另一个SQL语句(主查询)内部的查询,用于动态生成中间结果供外部使用。根据返回结果可分为:标量子查询:返回单个值(如SELECT MAX(salary)),用于比较运算(=, >)。行子查询:返回单行多列(如SELECT...
mysql连接查询
1、内连接(INNER JOIN)仅返回两表匹配成功的记录(交集)SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.关联列 = 表2.关联列; SELECT e.name,...
mysql数据类型的一些对比
为什么金融系统必须用DECIMAL?答:浮点数二进制存储存在精度丢失,DECIMAL以字符串形式存储确保精确性。CHAR(10)和VARCHAR(10)存"abc"占多少字节?CHAR:10字节;VARCHAR:4字节(3字符+1长度...
Mysql数据类型
1.整数类型2.小数3.日期4.字符串5.长文本6.二进制7.枚举集合8.json直接存储结构化数据(如配置项);支持路径查询:SELECT data->>'$.name' FROM table。5.7+支持
Mysql事务
数据库事务是指数据库管理系统执行的一系列数据库操作,这些操作作为一个逻辑单元被视为一个整体,要么全部成功执行,要么全部失败并回滚到事务开始之前的状态。事务具有以下特性:下面简称为ACID:原子性(Atomicity):...
倒排索引
词典表(Lexicon):存储所有唯一分词(如 “database”、“优化”)。倒排表(Inverted List):记录每个词对应的文档 ID、出现位置(偏移量)、词频(TF)。👉 结构示例:| 词条 | 文档ID列表...
全文检索介绍
MySQL 的 FULLTEXT 索引是一种基于倒排索引(Inverted Index) 的全文搜索技术,核心解决大文本模糊匹配的性能问题。其工作原理如下:分词存储:通过分词器(Tokenizer)...
like和fulltext
MySQL中的FULLTEXT搜索功能
FULLTEXT搜索用于对文本字段内容进行高效、灵活的文本搜索,处理自然语言查询。FULLTEXT索引允许对整列字符串进行全文搜索,支持多个关键字、布尔检索等功能。在MyISAM和InnoDB引擎下可使用。
InnoDB和MylSAM主要有什么区别?-面试版
存储结构:每个MyISAM在磁盘上存储成三个文件;InnoDB所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB.事务支持:MyISAM不提供事务...
一条SQL 查询语句的执行顺序?
FROM:对FROM子句中的左表<left_table>和右表<right_table>执行笛卡儿积(Cartesianproduct),产生虚拟表 VT1ON:对虚拟表 VT1 应用 ON...
MySQL 里记录货币用什么字段类型比较好?
货币在数据库中MySQL常用Decimal和Numric类型表示,这两种类型被MySQL实现为同样的类型。他们被用于保存与货币有关的数据。例如salary DECIMAL(9,...
函数性能问题
1.索引失效原理:对索引字段使用函数(如SUBSTRING()、DATE_FORMAT())会破坏索引值的有序性,优化器放弃树搜索,转为全索引扫描或全表扫描。SELECT * FROM logs WHERE...
Mysql 常用函数
字符串函数:数值函数:日期时间函数:聚合函数:条件逻辑函数:NULL 处理:多数函数遇 NULL 返回 NULL(如 CONCAT('a', NULL) → NULL)聚合函数自动忽略 NULL(SUM()/AVG()),但空表返回...
MyISAM和InnoDB
事务机制:MyISAM表级锁:写操作锁定整个表,阻塞其他所有读写请求。并发瓶颈:高并发写入场景下性能急剧下降(如电商秒杀系统)。InnoDB行级锁 + MVCC:通过多版本并发控制,读不阻塞写,写不阻塞读。间隙锁:防止幻读(例如...
DATETIME和TIMESTAMP的异同?
相同点:两个数据类型存储时间的表现格式一致。均为 YYYY-MM-DD HH:MM:SS两个数据类型都包含「日期」和「时间」部分。两个数据类型都可以存储微秒的小数秒(秒后6位小数秒)区别:日期范围:DATETIME...
LEFT JOIN 、RIGHT JOIN、INNER JOIN
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录INNER JOIN(内连接):获取两个表中字段匹配关系的记录
char 和 varchar 数据类型区别
char:擅于存储经常改变的值,或者长度相对固定的值。比如 type、ip 地址或 md5 之类的数据,不容易产生碎片varchar:善于存储值的长短不一的列,也是用的最多的一种类型,节省磁盘空间,保存可变长度字符串。这也是...
blob 和 text 有什么区别?
blob 用于存储二进制数据,而 text 用于存储大字符串。blob 没有字符集,text 有一个字符集,并且根据字符集的校对规则对值进行排序和比较