当前位置: 首页 > news >正文

mysql数据库高级特性

1、主键primary key

特性:

给某一列设置,防止出现重复

一张表只能有一个主键,外键的前提是依赖主键

也可以做多列主键(两个字段不能出现重复)

创建主键:

CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键自增
name VARCHAR(20),
age INT
);

更改时只能先删除后添加

2、外键 foreign key

特性

强制保证外键列和主表的主键列一致,必须依靠主键存在

创建外键

***

PRIMARY KEY (order_id),#标示主键
FOREIGN KEY (user_id) #外键 REFERENCES student(id)# 引用(对比)student表的id列
);

删除时,先删子表,再删主表,修改时也是先删后添

3、索引

类型:

* 按数据结构分类可分为:B+tree索引、Hash索引、Fulltext索引。
* 按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。
* 按字段特性分类可分为:主键索引、普通索引、前缀索引。
* 按字段个数分类可分为:单列索引、联合索引(复合索引、组合索引)。

意义:

索引是自动调用的,是对经常查找的数据建立的,数据库在查询数据时,有索引会优先使用索引查询,提升速度

命令:

show index from 表名 查看所有索引

SELECT * FROM 表名
FORCE INDEX (索引名)
WHERE 条件; # 强制使用索引

主键默认有主键索引

前面加explain 查看查询路径有没有索引 ref √ all ×

4、存储过程

将一系列SQL语句封装成一个函数,类似于shell和python中的函数,便于重复使用

SHOW PROCEDURE status; 查看所有存储过程

创建储存过程

creat procedure 名字 (in 变量名 int )#什么类型就穿什么类型
begin
select * from 表名 where 字段名=传进来的变量名 ;
end

在navicat中可用,在虚拟机中需要DELIMITER // (更改结束符)最后用//结尾,delimiter ; 恢复源结束符

使用call命令调用函数 CALL 存储名(#参数);

5、check约束

和枚举的区别:枚举只能固定列表选择,不能范围

check约束可以设定范围,比如0-100,更灵活

创建

创建表时加入 CHECK (条件),

表已创建时添加 alter table 表名 add constraint 约束名 check(条件)

删除约束

alter table 表名 drop constraint 约束名

6、触发器trigger

在执行任务之前或之后,自动执行一段SQL,常用来做解决预案

三种触发时机: insert、update、delete ---

两种触发顺序: before、after

以delete为例

CREATE TRIGGER触发器名称
BEFORE DELETE ON 表名1 #给这个表设置触发器
FOR EACH ROW #循环读取
BEGIN
DELETE FROM 表名2 WHERE student_id = OLD.id;
END #当表1执行delete操作之前,去表2删掉old.id

两种触发顺序: before、after

http://www.jsqmd.com/news/608004/

相关文章:

  • 2026届必备的降AI率助手推荐榜单
  • [ 渗透实战篇 ] Kali Linux下ARP欺骗攻防全解析:从断网攻击到流量劫持
  • 如何在Windows上获得完整的AirPods体验?终极解决方案来了!
  • Qwen3-VL-8B快速部署指南:无需网络,本地搭建图片问答AI
  • 来个大佬帮我看一下ip5306是否接对了
  • 【无标题】抚养费18岁后的义务、大学费用与兴趣班买单规则
  • AlexNet架构解析:从理论到实践的深度学习革命
  • 实战指南:在STM32上为LVGL定制专属中文字体库
  • Vagrant-aws故障排除大全:8个常见问题与解决方案
  • Notepad++ 插件创意:Phi-4-mini-reasoning为轻量编辑器注入代码智能
  • BetterGI:5大终极自动化功能带你轻松玩转原神
  • 显示器插座最短连线算法(蓝桥杯十六届C组编程题第二题)
  • wan2.1-vae部署案例:双RTX 4090显卡适配方案与显存优化实操解析
  • AutoDL实例没GPU了?别慌!手把手教你无损迁移数据和镜像到带GPU的新机器
  • 万本双抗焕亮精华水全肤质适配攻略 - 资讯焦点
  • BeRoot高级使用技巧:如何利用LD_PRELOAD和Python库劫持实现权限提升
  • 自定义编码器深度解析:msgpack Golang高级用法终极指南
  • 2026最新商标交易平台怎么选?正规靠谱平台都有这些特征 - 资讯焦点
  • dhcp小实验
  • 深入解析Cesium影像图层:ImageryLayer与ImageryProvider类的核心功能与应用
  • 【从0到1】
  • 开源工具ncmdump:突破NCM格式限制的音频格式转换方案
  • 掌握 cmake --build:跨平台构建的高效实践指南
  • 【Loongson/LS2H】HDMI 显示从 PMON 到 Linux 内核完整打通(配置 + 驱动 + 排查全流程)
  • 用 Microsoft Agent Framework 构建 SubAgent(Multi-Agent)角
  • 黄褐斑过来人实测!BFBY美白修护面膜适配多肤质,淡斑修护双在线 - 资讯焦点
  • 用 Python + OpenCascade 自动生成 3D CAD 模型,并导出 SolidWorks 可打开的 STEP 文件
  • AI Agent Harness模型微调数据管控
  • 2026金平区新房全屋定制选型指南:满足这3个硬指标才算靠谱 - 精选优质企业推荐榜
  • Insights into Imaging 河北医科大学第二医院:基于MRI的瘤内异质性量化用于肝内肿块型胆管癌分级