mysql基础:常用SQL语句分类总结,约束,多表查询以及事务详解




-- 创建一个新的数据库
CREATE DATABASE IF NOT EXISTS `example_db` DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
-- 使用example_db数据库
USE `example_db`;
 
-- 创建一个用户表
CREATE TABLE `users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL,
  `email` VARCHAR(100) NOT NULL,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
-- 向用户表中添加数据
INSERT INTO `users` (`username`, `email`) VALUES
('张三', 'zhangsan@example.com'),
('李四', 'lisi@example.com');
 
-- 创建另一个表, 与用户表相关联
CREATE TABLE `posts` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_id` INT(11) NOT NULL,
  `title` VARCHAR(255) NOT NULL,
  `content` TEXT NOT NULL,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `user_id_idx` (`user_id`),
  CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
 
-- 插入一些帖子
INSERT INTO `posts` (`user_id`, `title`, `content`) VALUES
(1, '第一篇帖子', '这是第一篇帖子的内容。'),
(2, '第二篇帖子', '这是第二篇帖子的内容。');
 
-- 查询用户ID为1的所有帖子
SELECT p.*
FROM `users` u
JOIN `posts` p ON u.id = p.user_id
WHERE u.id = 1;
 
-- 开始一个事务
START TRANSACTION;
 
-- 更新用户ID为1的用户的邮箱
UPDATE `users` SET `email` = 'newemail@example.com' WHERE `id` = 1;
 
-- 插入一条新帖子,关联到用户ID为1
INSERT INTO `posts` (`user_id`, `title`, `content`) VALUES (1, '新帖', '这是一个新的帖子。');
 
-- 提交事务
COMMIT;
 
-- 查询最近插入的记录的ID
SELECT LAST_INSERT_ID();

这个例子展示了如何创建数据库、表,以及如何使用外键、事务来管理数据的一致性和完整性。同时,它也演示了基本的SQL查询操作,包括插入、更新、连接查询以及事务处理。

最后修改于:2024年09月06日 09:56

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日