20260512-SQL学习大览

一个市场专员转码的自救之路

今天来学习SQL语句

一、建表

以学校管理系统为例,学校管理一定会涉及到学生、班级、老师、教导主任。

班主任表和班级表属于1对1关系

学生表和班级表是多对一或者一对多的关系

学生表和课程表是多对多关系

1)班主任表和班级表------1V1建表如何关联?

要求查询1班的班主任是谁,需要通过唯一字段bid先将班主任表和班级表关联起来。

班级表的bid与班级表的id相关联,再进行查询即可成功(也可以设置班主任表的bid,与班级表的id相关联,字段设置比较随意)

由此可知,1v1的关系需要设置关联字段,字段设置在任何一张表中都是可以的。

2)学生表和班级表------1V多/多V1 如何建表?

一对多/多对1需要设置关联字段,字段只能设置在多表当中

3)学生表和课程表------多V多如何建表?

多对多关系中需要新建设置关系表(映射表)

4)表和表之间没有关系

二、如何建表建库?

数据库有五大约束:主键约束、唯一约束、非空约束、默认约束、外键约束

主键约束:能够帮我们快速检索数据,建表时一定要建立主键

非空约束

默认约束:

唯一约束

设置索引方式为唯一索引,索引方法为B树查找

外键约束相当于关联的plus版,会拖慢查询速度

三、MYSQL概念结构设计

E-R图就是实体、关系、属性三个基本概念概括数据的基本结构

比如:

四、MYSQL语句

增删改SQL语句示例

增加数据(INSERT) 插入单条数据时,若id设置为自增,可省略id字段。字符串类型需用单引号包裹:

sql 复制代码
INSERT INTO user(name, age, phone) VALUES('张思', 20, '183')

批量插入多条数据时,用逗号分隔值组:

sql 复制代码
INSERT INTO user(name, age, phone) 
VALUES('张思', 20, '183'), ('张思', 20, '180'), ('张思', 20, '189')

修改数据(UPDATE) 带条件的修改需指定WHERE子句:

sql 复制代码
UPDATE user SET name='小黑', age=88 WHERE id=6

无条件修改会更新整张表:

sql 复制代码
UPDATE user SET name='12', age=88

删除数据(DELETE) 条件删除指定记录:

sql 复制代码
DELETE FROM user WHERE id = 6

清空表数据有两种方式:

  • 逐行删除(可回滚):

    sql 复制代码
    DELETE FROM user
  • 快速清空(不可回滚,重置自增计数器):

    sql 复制代码
    TRUNCATE TABLE user
相关推荐
复园电子1 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
AI-好学者8 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
xian_wwq8 小时前
【学习笔记】模型权重管理:Safetensors与私有化Hub(23/35)
笔记·学习
其实防守也摸鱼9 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
ctrl_v助手9 小时前
Halcon学习笔记2
人工智能·笔记·学习
懒鸟一枚9 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔7259 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋9 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
YUS云生10 小时前
Python学习笔记·第31天:FastAPI入门——路由、路径参数、查询参数与请求体
笔记·python·学习
Database_Cool_10 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云