MySQL学习第一阶段

想了又想还是觉得需要把它先做一个整合,之后会接续把相关的内容进行补充

这是DDL、DML的一点代码

sql 复制代码
-- 创建数据库
create database db;
-- 使用数据库
use db;
-- 创建学生表
create table students(
id int primary key auto_increment,
name varchar(10),
agender varchar(10),
classroom varchar(10),
born_date varchar(10)
);
-- 添加一班学生
insert into  students values (1, '小黑', '男', '1班', '2004年6月16日');
insert into  students values (2, '李白', '男', '1班', '2004年6月16日');
insert into  students values (3, '王者', '男', '1班', '2004年6月16日');
insert into  students values (4, '韩信', '男', '1班', '2004年6月16日');
insert into  students values (5, '刘邦', '男', '1班', '2004年6月16日');
insert into  students values (6, '闵月', '女', '1班', '2004年6月16日');
insert into  students values (7, '老登', '男', '1班', '2004年6月16日');
-- 添加二班学生
insert into  students values (8, '赔钱虎', '女', '2班', '2004年6月16日');
insert into  students values (9, '子弹头', '男', '2班', '2004年6月16日');
insert into  students values (10, '萧何', '男', '2班', '2004年6月16日');
insert into  students values (11, '张良', '男', '2班', '2004年6月16日');
insert into  students values (12, '项羽', '男', '2班', '2004年6月16日');
-- 创建教室表
create table classroom(
id int primary key
);
-- 添加1班和2班
insert into classroom values (1);
insert into classroom values (2);

-- 添加一个外键约束
alter table students add constraint fk foreign key (classroom) references classroom(id);  

|------|--------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
| | 数据库 DB | 数据库管理 DBMS | SQL |
| 分类 | 数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。 | MySQL Oracle、 microsoft sql server | DDL、DML、DQL、DCL |
| 适用场景 | 通常由数据库管理系统 (DBMS) 来控制。在现实中,数据、DBMS 及关联应用一起被称为数据库系统,通常简称为数据库。 | MySQL 是开源免费,适合中小型企业 Oracle 适用于大型企业,是需要付费的,Microsoft sql server 会存储 Windows 系统的一些数据 | DDL:针对数据库和表的一些简单操作,如创建数据库或表 DML:针对数据库表中的数据进行的操作,增删改的操作 DQL:针对数据库表中的数据进行查询,如排序查询、分组查询等 DCL:针对用户的语言,比如设定 root 账号,还有伪账号 |

|----|-------------------------------------------|--------------|--------------------------|-------------------------|
| | DDL | DML | DQL | DCL |
| 区别 | 对数据库和表 | 对表数据的修改 | 对表数据进行的查询 | 对使用数据库的账户 |
| | 与 DML 的不同在于在操作表的时候进行的是对表的列等需要定义的属性进行定义/设计 | 比如添加数据、删除数据等 | 基础查询、条件查询、排序查询、分组查询、分页查询 | 分为三级账户,root ,和管理员以及普通账户 |

|------|------------------------------------|-----------------------------------------------------------------------|------------------|
| | 约束 | 事务 | 多表查询 |
| 定义 | 是指对表中数据进行的限制 | 数据库的事务是一种机制、一个操作序列,包含了一组数据库操作命令 | 是指从多张表查询数据 |
| 应用场景 | 需要对某些数据进行保护,以免误删 | 同时使用,银行账户的转账,事情必须同生共死,确保事务一致性 | 应对某些内容进行对比 |
| 怎么用 | 设置键进行约束,如外键约束、主键约束、非空约束 | 三个句子 开始事务、提交事务、结束事务 | 连接查询:内连接、外连接 子查询 |
| 方法 | primary key foreign key check 检查约束 | -- 开启事务start transaction; // 或者 begin -- 提交事务commit; -- 回滚事务rollback; | |

|------------|----------------------------------------------------------------------------------|-------------|
| | 数据库设计 | 表关系 |
| 定义 | 数据库设计就是根据业务系统的具体需求,结合我们所选用的 DBMS,为这个业务系统构造出最优的数据存储模型。 建立数据库中的表结构以及表与表之间的关联关系的过程。 | 表之间的关系 |
| 他们两个所关心的问题 | 有哪些表?表里有哪些字段?表和表之间有什么关系? | 只关心表之间有什么关系 |
| | | |

相关推荐
2603_965148118 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl8 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
小席是个热心肠8 小时前
AI相关的自我学习
java·人工智能·学习
xfhuangfu9 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT9 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData9 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
J_bean10 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean10 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
浪子明X10 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
何事误红尘10 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习