2 changed files with 207 additions and 0 deletions
@ -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. 死锁 |
|||
产生条件:互斥、请求与保持、不剥夺、循环等待 |
|||
避免方案: |
|||
所有事务按相同顺序访问数据行 |
|||
大事务拆分为小事务,减少锁持有时间 |
|||
等值查询用唯一索引,避免间隙锁扩大范围 |
|||
避免无索引查询导致的表锁 |
|||
@ -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. 反弹 |
|||
股价跌了一阵后,短期小幅回升,不是反转大涨。 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue