Browse Source

Merge branch 'wuyingzhao' into milestone-20260325-学习笔记

milestone-20260325-学习笔记
吴迎召 2 weeks ago
parent
commit
6407db8605
  1. 150
      吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt
  2. 57
      吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt

150
吴迎召学习笔记/吴迎召3.28学习笔记(技术部分).txt

@ -0,0 +1,150 @@
1. 核心定义与特点
MySQL 是Oracle 公司维护的开源关系型数据库管理系统(RDBMS),基于标准 SQL 语言,是 Web 开发、企业级业务最主流的数据库。
核心优势:开源免费、跨平台、性能优异、支持事务、高可用生态完善、社区活跃。
主流版本:
5.7:企业广泛使用的稳定版,长期支持,兼容性好
8.0:当前最新稳定版,性能大幅提升,新增窗口函数、CTE、原子 DDL、原生 JSON 支持,默认 InnoDB 引擎,默认字符集 utf8mb4,移除查询缓存。
字段约束
NOT NULL:非空约束,建议所有字段都设置,避免 NULL 值带来的性能问题
UNIQUE:唯一约束,字段值唯一,允许 NULL
PRIMARY KEY:主键约束,非空 + 唯一,一张表仅一个
DEFAULT:默认值,字段未赋值时的兜底值
CHECK:检查约束,MySQL 8.0.16 + 正式支持,限制字段取值范围
二、SQL 核心语法
SQL 分为五大类:DDL(数据定义)、DML(数据操作)、DQL(数据查询)、DCL(数据控制)、TCL(事务控制)
1. DDL:操作库、表结构
-- 创建数据库
CREATE DATABASE IF NOT EXISTS test_db
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_general_ci;
-- 删除数据库
DROP DATABASE IF EXISTS test_db;
-- 查看数据库创建语句
SHOW CREATE DATABASE test_db;
-- 创建表(企业级规范示例)
CREATE TABLE IF NOT EXISTS `user` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`phone` CHAR(11) NOT NULL COMMENT '手机号',
`age` TINYINT UNSIGNED DEFAULT 0 COMMENT '年龄',
`gender` ENUM('男','女','未知') DEFAULT '未知' COMMENT '性别',
`balance` DECIMAL(10,2) DEFAULT 0.00 COMMENT '账户余额',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`), -- 主键索引
UNIQUE KEY `uk_phone` (`phone`), -- 唯一索引
KEY `idx_username` (`username`) -- 普通索引
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- 修改表结构
ALTER TABLE `user` ADD COLUMN `email` VARCHAR(100) NOT NULL COMMENT '邮箱' AFTER `phone`; -- 新增字段
ALTER TABLE `user` MODIFY COLUMN `age` TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄'; -- 修改字段属性
ALTER TABLE `user` DROP COLUMN `email`; -- 删除字段
ALTER TABLE `user` ADD INDEX `idx_create_time` (`create_time`); -- 新增索引
ALTER TABLE `user` DROP INDEX `idx_create_time`; -- 删除索引
-- 删除表
DROP TABLE IF EXISTS `user`;
2. DML:增删改表数据
-- 插入数据(批量插入性能远高于循环单条插入)
INSERT INTO `user` (username, phone, age, gender, balance)
VALUES
('张三', '13800138000', 25, '男', 1000.00),
('李四', '13800138001', 22, '女', 500.00);
-- 更新数据(必须加WHERE条件,否则全表更新!!!)
UPDATE `user`
SET balance = 1500.00, age = 26
WHERE id = 1;
-- 删除数据(必须加WHERE条件,否则全表删除!!!)
DELETE FROM `user` WHERE id = 1;
-- 清空全表(比DELETE快,自增主键重置)
TRUNCATE TABLE `user`;
3. DQL:数据查询
-- 语法书写顺序
SELECT [DISTINCT] 字段列表
FROM 表名
[WHERE 条件过滤]
[GROUP BY 分组字段]
[HAVING 分组后过滤]
[ORDER BY 排序字段 ASC/DESC]
[LIMIT 分页偏移量, 条数];
-- 实际执行顺序
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
SELECT u.id, u.username, o.order_no, o.amount
FROM `user` u
INNER JOIN `order` o ON u.id = o.user_id;
-- 查询所有用户,含无订单的用户
SELECT u.id, u.username, o.order_no, o.amount
FROM `user` u
LEFT JOIN `order` o ON u.id = o.user_id;
-- 查询无订单的用户
SELECT u.id, u.username
FROM `user` u
LEFT JOIN `order` o ON u.id = o.user_id
WHERE o.id IS NULL;
-- 创建用户(%允许远程登录,localhost仅本地登录)
CREATE USER 'test_user'@'%' IDENTIFIED BY 'Test@123456';
-- 授权(最小权限原则)
GRANT SELECT, INSERT ON test_db.* TO 'test_user'@'%'; -- 给test库授予查询、插入权限
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'%' WITH GRANT OPTION; -- 管理员全权限
-- 刷新权限
FLUSH PRIVILEGES;
-- 查看权限
SHOW GRANTS FOR 'test_user'@'%';
-- 撤销权限
REVOKE INSERT ON test_db.* FROM 'test_user'@'%';
-- 删除用户
DROP USER 'test_user'@'%';
五、事务与 ACID、MVCC
1. 事务四大特性(ACID)
事务是一组原子性的 SQL 操作,要么全成功,要么全失败回滚,仅 InnoDB 支持。
表格
特性 定义 实现原理
原子性(Atomicity) 事务是最小执行单元,不可分割,要么全成要么全败 undo log(回滚日志),存储数据历史版本,回滚时恢复
一致性(Consistency) 事务执行前后,数据的完整性约束不被破坏 事务的最终目的,由原子性、隔离性、持久性共同保证
隔离性(Isolation) 并发事务之间相互隔离,互不干扰 锁机制 + MVCC 多版本并发控制
持久性(Durability) 事务提交后,数据修改永久生效,崩溃也不丢失 redo log(重做日志),WAL 预写日志机制
2. 事务并发问题与隔离级别
并发问题
脏读:一个事务读到了另一个事务未提交的数据
不可重复读:同一事务内,两次读取同一行数据结果不一致(另一个事务修改并提交)
幻读:同一事务内,两次范围查询返回的行数不一致(另一个事务插入 / 删除并提交)
四大隔离级别
表格
隔离级别 脏读 不可重复读 幻读 说明
读未提交(Read Uncommitted) 可能 可能 可能 最低级别,几乎不用
读已提交(Read Committed) 解决 可能 可能 Oracle、SQL Server 默认
可重复读(Repeatable Read) 解决 解决 可能(InnoDB 已解决) MySQL 默认级别
串行化(Serializable) 解决 解决 解决 最高级别,事务串行执行,并发性能极差
重点:InnoDB 的 RR 级别,通过 ** 临键锁(Next-Key Lock)** 彻底解决了幻读问题。
3. MVCC 多版本并发控制
MVCC 是 InnoDB 实现隔离级别的核心,通过数据行的多个版本实现读写不阻塞,大幅提升并发性能。
核心实现:隐藏字段(DB_TRX_ID、DB_ROLL_PTR)+ undo log + Read View 读视图
核心逻辑:事务开启时生成 Read View,判断当前事务能看到的数据版本,不同隔离级别 Read View 生成时机不同:
RC 级别:每次 SELECT 都生成新的 Read View,解决脏读
RR 级别:第一次 SELECT 生成 Read View,后续复用,解决不可重复读
六、MySQL 锁机制
锁是实现事务隔离性的核心,解决并发修改数据的冲突问题。
1. 锁的分类
按粒度分类
全局锁:锁住整个实例,所有读写阻塞,仅用于全库备份
表级锁:锁住整张表,加锁快、冲突概率高、并发差,MyISAM 默认使用
行级锁:InnoDB 特有,锁住具体行,锁粒度最小、冲突概率最低、并发性能最高
注意:InnoDB 行锁是针对索引加的锁,查询没用到索引会升级为表锁!
按功能分类
共享锁(S 锁,读锁):多个事务可同时加 S 锁,阻塞写操作,用法SELECT ... LOCK IN SHARE MODE;
排他锁(X 锁,写锁):一个事务加 X 锁后,其他事务不能加 S/X 锁,读写都阻塞。UPDATE/DELETE/INSERT 会自动加 X 锁,用法SELECT ... FOR UPDATE;
2. InnoDB 行锁 3 种算法(RR 级别)
记录锁:锁住具体的索引记录,如WHERE id=1,仅锁住 id=1 的行
间隙锁:锁住索引之间的间隙,防止插入数据,解决幻读
临键锁(Next-Key Lock):记录锁 + 间隙锁,左开右闭区间,InnoDB 默认行锁算法,彻底解决幻读
3. 死锁
产生条件:互斥、请求与保持、不剥夺、循环等待
避免方案:
所有事务按相同顺序访问数据行
大事务拆分为小事务,减少锁持有时间
等值查询用唯一索引,避免间隙锁扩大范围
避免无索引查询导致的表锁

57
吴迎召学习笔记/吴迎召3.28学习笔记(金融知识).txt

@ -0,0 +1,57 @@
学习内容:一、核心基础概念
证券与股票
证券是经济权益凭证,股票是上市公司发行的股份凭证,属于有价证券。
证券市场三大功能
筹资(企业募资、投资者投资)、定价(供求决定资本价格)、资本配置(引导资金流向高回报企业)。
投资者分类
分为机构投资者和个人投资者。
二、股票核心特性
股票具备风险性、收益性、流通性、波动性、永久性(不退股、可转让)。
三、股价影响与分析方法
影响股价因素
核心是供求关系,还包括公司经营、宏观经济、政策、心理、人为操纵等。
两大分析流派
基本面分析:看宏观、行业、公司财务,判断价值。
技术面分析:看历史走势,遵循市场包容一切、股价沿趋势运行、历史会重演三大公理。
四、股票交易规则
交易原则:价格优先、时间优先。
核心规则
交易时间:A 股 9:30-11:30、13:00-15:00,含集合竞价。
交易单位:1 手 = 100 股,零股只能卖出。
涨跌幅:普通股票单日 ±10%,新股首日除外。
交收:A 股T+1(次日交割)。
五、股票与市场分类
股票类型
A 股(人民币普通)、B 股(外币计价)、H 股(香港上市)、N/S/T 股(境外上市)。
市场板块
主板(大型企业)、中小板(中小盘)、创业板(成长型企业,风险高)、新三板(中小微企业转让平台)。
六、核心业务与门槛
融资融券:信用交易(杠杆),个人门槛账户资产≥50 万。
沪港通:跨境炒股,个人门槛资产≥50 万。
开户:一人最多可开20 个 A 股账户,本人持身份证、银行卡办理。
七、交易费用
主要包含印花税(卖出单边千一)、交易佣金、过户费。
八、道氏理论(技术分析鼻祖)
市场存在长期(基本运动)、中期(次级运动)、短期(日常波动) 三大趋势,核心是趋势为王、成交量验证趋势、无反转信号则趋势延续。
九、基础核心术语
涵盖 K 线、多空、牛熊市、除权 / 除息、市盈率、建仓 / 平仓、套牢、反弹等常用交易名词。
1. K 线
记录股价一天涨跌的蜡烛图,红涨绿跌;由实体、上下影线组成,能看开盘 / 收盘 / 最高 / 最低价。
2. 多空
多头:看好股价会涨,先买后卖赚差价。
空头:看跌股价,先借股卖出、跌了再买回还券。
3. 牛熊市
牛市:股价长期普遍上涨,多头占优。
熊市:股价长期普遍下跌,空头占优。
4. 除权 / 除息
除息:公司发现金分红,股价扣除分红金额,新股东不再领这笔钱。
除权:公司送股 / 配股,股本变大,股价按比例下调。
5. 市盈率(PE)
股价 ÷ 每股盈利,用来衡量股价贵不贵;数值越低,相对越便宜。
6. 建仓 / 平仓
建仓:开始买入股票(做多)或卖出(做空)。
平仓:把手里的持仓卖掉,结束这笔交易。
7. 套牢
买完股票就跌、卖完就涨,亏着舍不得卖,被 “套” 在里面。
8. 反弹
股价跌了一阵后,短期小幅回升,不是反转大涨。
Loading…
Cancel
Save