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

Day05-MySQL

MySQL的数据管理

外键(了解即可)

1.在创建表的时候,增加约束

-- 创建年级表
CREATE TABLE IF NOT EXISTS `grade` (`gradeid` INT NOT NULL AUTO_INCREMENT COMMENT '年级id',`gradename` VARCHAR(50) NOT NULL COMMENT '年级名称',PRIMARY KEY (`gradeid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 学生表的gradeid字段 要去引用年级表的gradeid
-- 定义外键key
-- 给这个外键添加约束(执行引用)references-- 创建学生表(带外键)
CREATE TABLE IF NOT EXISTS `student` (`id` INT NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',`gradeid` INT NOT NULL COMMENT '学生的年级',`address` VARCHAR(50) DEFAULT NULL COMMENT '家庭住址',`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY(`id`),KEY `FK_gradeid` (`gradeid`),CONSTRAINT `FK_gradeid`FOREIGN KEY (`gradeid`) REFERENCES `grade`(`gradeid`)ON DELETE CASCADEON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

删除有外键关系的表的时候,必须要先删除引用别人的表,再删除被引用的表

2.创建表的时候没有外键关系

ALTER TABLE `student`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`)
-- ALTER TABLE 表 ADD CONSTRAINT 约束名 FOREIGN KEY (作为外键的列) REFERENCES 哪个表 (哪个字段)

以上操作都是物理外键,数据库级别的外键,我们不建议使用!

最佳实践

  • 数据库就是单纯的表,只用来存数据,只有行和列
  • 我们想使用多张表的数据,想用外键(程序去实现)

DML语言

数据库的意义:数据的存储与管理

DML语言:数据操作语言

  • insert
  • update
  • delete

添加

insert

-- 插入语句(添加)
-- insert into 表名([字段名1,字段2,字段3])valuse('值1','值2','值3',……)
INSERT INTO `grade`(`gradename`)
VALUES('大四');--- 由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配)
-- 一般写插入语句,我们一定要数据和字段一一对应
-- 插入多个字段
INSERT INTO `grade`(`gradename`)
VALUES ('大二'),('大一')INSERT INTO`student`(`name`,`gradeid`) VALUES('Kongmi','4')
-- 语法
-- insert into 表名(字段名1,字段2,字段3)valuse('值1','值2','值3',……)

注意事项:

  1. 字段和字段之间用英文逗号隔开
  2. 字段可以省略,但是后面的值要一一对应
  3. 可以同时插入多条数据,values后面的值,需要使用,隔开即可valuse(),()

修改

update 修改谁 set原来的值=新值

-- 修改学员名字,带了简历
UPDATE`student`SET`name`='kongmi'WHERE id=1;-- 不指定条件的情况下,会改动所有表
UPDATE `student` SET `name`='kongmi'-- 修改多个属性,逗号隔开
UPDATE `student` SET `name` = 'Kongmi',`pwd` = '654321' WHERE id = 1;-- 语法
-- UPDATE 表名 SET colnum_name = value,[colnum_name = value],…… where [条件]

条件:where自句 运算符 id的数值,在某个区间修改

操作符 含义 范围 结果
= 等于
<>or!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN…AND… 在…之间… [2,5]
AND(&&) 我和你 5>1and1>2 false
OR(||) 我或你 5>1or1>2 ture
-- 通过多个条件定位数据
UPDATE `student` SET `name`='yeee' 
WHERE `name`='Yeee'AND sex='男'

注意:

  • colnum_name 是数据库的列,尽量带上``

  • 条件,筛选的条件,如果没有指定,则会修改所有的列

  • value,是一个具体的值,也可以是一个变量

    UPDATE `student` 
    SET birthday = CURRENT_TIME
    WHERE `name`='Kongmi'AND sex='男'
    
  • 多个设置的属性之间,使用英文逗号隔开

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

相关文章:

  • 告别依赖噩梦:用Buildroot一键集成GStreamer到你的ARM-Linux系统镜像
  • 动态规划经典案例分析之编辑距离
  • 2026年3月升降货梯源头厂家推荐,液压货梯/升降平台/升降货梯,升降货梯源头厂家哪家性价比突出 - 品牌推荐师
  • “金三银四”春招大战正酣!2026职场招聘被AI点燃,岗位暴涨12倍,月薪超6万
  • 还在用 Visio 画架构图?这个 AI 神器让你告别手动绘图,5秒出图还能改!
  • 打卡信奥刷题(3150)用C++实现信奥题 P7682 [COCI 2008/2009 #5] TRESNJA
  • 服务型AI设计:从自助陷阱到智能服务革命
  • 2026 热镀锌桥架实测排行:全维度性能解析与工程采购落地指南 - 外贸老黄
  • 竞技性机器学习:核心优势与实战进阶指南
  • LeetCode 2024. 考试的最大困扰度【不定长滑窗】1643
  • 避开STC15定时器的那些坑:从模式选择到中断响应,我的调试笔记
  • 实战解析:基于GD32与ADS1118的高精度数据采集系统搭建
  • 2026 热镀锌桥架综合实力 TOP 测评:全维度品质实测与工程采购实操指南 - 外贸老黄
  • between的用法
  • 单片机控制板基础设计原则
  • 5分钟掌握SMUDebugTool:AMD Ryzen处理器硬件调试实战指南
  • 别再手动复制DLL了!Qt Creator + CMake一键配置OpenCV库(附完整配置流程)
  • LFM2.5-1.2B-Thinking轻量部署:Ollama系统提示词配置,让1.2B小模型发挥大能量
  • [Windows] Mouser v3.5.3第三方罗技鼠标驱动
  • 速看!黄金秘籍解决华为防火墙最困难的故障
  • 新手必看:CTFHub靶场RCE通关保姆级教程(从环境搭建到Flag获取)
  • 2026年AI生成式引擎优化行业梳理:五家值得企业选型参考的AI优化GEO服务商推荐 - 商业小白条
  • 往前走——成为更好的自己
  • 利用云函数做一个钉钉机器人提醒功能教程
  • Qwen3.5-2B赋能前端开发:自动生成JavaScript组件代码与文档
  • RWKV7-1.5B-world保姆级教程:Gradio界面日志导出功能,用于对话质量人工评估
  • 往前走,做更好的自己
  • JetBrains IDE试用期重置终极指南:2026年免费解锁30天完整功能
  • 大一新生组队玩转CUIT智能车:从零到跑完赛道,我们的STM32电磁循迹调车全记录
  • 别再死记硬背命令了!用Conda+Fastp+Bowtie2搞定ATAC-seq上游分析(附完整代码与避坑记录)