数据库—多表查询、事务

news/2024/10/21 16:01:21

1.多表查询:
例:

点击查看代码
# 创建部门表
CREATE TABLE dept(
did INT PRIMARY KEY AUTO_INCREMENT,
dname VARCHAR(20)
);# 创建员工表
CREATE TABLE emp (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10),
gender CHAR(1), -- 性别
salary DOUBLE, -- 工资
join_date DATE, -- 入职日期
dep_id INT,
FOREIGN KEY (dep_id) REFERENCES dept(did) -- 外键,关联部门表(部门表的主键)
);-- 添加部门数据
INSERT INTO dept (dNAME) VALUES ('研发部'),('市场部'),('财务部'),('销售部');-- 添加员工数据
INSERT INTO emp(NAME,gender,salary,join_date,dep_id) VALUES
('孙悟空','男',7200,'2013-02-24',1),
('猪八戒','男',3600,'2010-12-02',2),
('唐僧','男',9000,'2008-08-08',2),
('白骨精','女',5000,'2015-10-07',3),
('蜘蛛精','女',4500,'2011-03-14',1),
('小白龙','男',2500,'2011-02-14',null);
如果多表查询使用:select * from emp , dept; 那么会查询到24条结果,其中包含错误无效的数据,原理:-- 笛卡尔积:从A,B两个集合取所有集合情况,也就是6条员工数据和4条部门数据的全部组合 因此查询时需要限制条件:select * from emp , dept where emp.dep_id = dept.did;

(1).多表查询——内连接、外连接

2.事务
(1)简介:
数据库的事务是一种机制,一个操作序列,包含了一组数据库操作命令。
事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即一组数据库命令要么同时成功,要么同时失败。
(2)事务操作语句:

(事务的操作是临时操作,只有当提交事务时之前的操作才会变为永久操作,否则回滚事务,之前的操作全部取消。)

点击查看代码
CREATE TABLE account(
id int PRIMARY KEY auto_increment,
name varchar(10),
money double(10,2)
);
-- 添加数据
INSERT INTO account(name,money) values('张三',1000),('李四',1000);select * from account;
update account set money = 1000;-- 转账操作
-- 开启事务
BEGIN;
-- 查询李四余额
select money from account where name = '李四';
-- 李四金额减500
update account set money = money - 500 where name = '李四';
-- 出错了... 
-- 张三金额加500
update account set money = money + 500 where name = '张三';
-- 提交事务
commit;
-- 回滚事务
ROLLBACK;
开始表中张三李四余额都为1000; 从begin开始事务,如果出现错误那么该表访问结果为张三余额1000,李四余额500 但是从另一个查询中发现数据没变(因为事务begin开始后的操作都为临时操作,只有遇到提交事务才会永久改变)张三李四都为1000 此时出错后进行回滚事务:rollback 表中数据变回都为1000 当把错误清除后进行提交事务:commit 发现两个查询中都已转账成功:张三余额1500,李四余额500

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74218.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

021 天气案例

@click后面也可以写一些简单语句,这样就不用配置methods了

通义灵码操作指南——插件配置指南

点击链接,立即下载通义灵码插件:https://tongyi.aliyun.com/lingma/ 通义灵码支持在 Visual Studio Code、JetBrains IDEs 中修改常用快捷键、进行行间生成的启用/禁用等功能开关配置。 Visual Studio Code 中配置通义灵码 准备工作 如果需要在 Visual Studio Code 中使用通义…

1200PLC通过NODERED,将数据发布到阿里云物联网平台

配置要求:1,电脑上需要安装有博图软件,我这里使用的是TIA Portal V16版本 2,电脑上需要安装NODE_RED 3,已经有阿里云物联网平台账号。新建PLC项目,编写PLC程序, *新建PLC项目,我这里硬件为cpu1214,dcdc_R| | | | | ---- | ---- | ---- | | | …

织梦数据库主表?dedecms数据库包含那些表

以下是织梦CMS (DedeCMS) 数据库表的汇总表格,包括主要表及其用途:表名 用途dede_admin 管理员信息表,存储管理员账号、密码、权限等信息。dede_addonarticle 附加文章表,存储文章的详细内容。dede_arctype 栏目类型表,存储网站栏目的分类信息。dede_archives 文档主表,存…

UI自动化测试方案及各个环境部署步骤

Saas后台UI自动化测试方案 一、背景saas后台功能繁多,人工回归工作量大; 版本持续迭代周期快,无足够的人力资源进行全量回归测试,特别是后端架构变动时,影响范围很广,导致测试占用时间太多。二、目标 目标一:对冒烟测试、主功能回归测试进行自动化,这样可以持续,快速的…

织梦数据库在哪个文件夹

织梦CMS数据库连接文件的内容及其参数说明:<?php // 数据库连接信息 $cfg_dbhost = localhost; // 数据库主机地址 $cfg_dbname = dedecmsv56gbk; // 数据库名称 $cfg_dbuser = root; // 数据库用户名 $cfg_dbpwd = 123456; // 数据库密…

020 计算属性简写

注意,只有当计算属性只需读取而不需修改,即没有setter时才能用简写

重磅 | 乐维CMDB V7.0正式发布

在企业数字化转型过程中,IT基础设施的管理和优化变得尤为重要。CMDB(配置管理数据库)作为当代IT运维管理的一大利器,能够实现企业IT资产的可视化、智能化管理,有效提高IT服务的效率和质量,获得越来越多企业的认可与应用。然而,CMDB的建设过程却充满了挑战,失败率居高不…