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

做教育机器网站fifa世界排名最新

做教育机器网站,fifa世界排名最新,宿迁市住房城乡建设局网站,美国室内设计网文章目录 多表查询内连接隐式内连接显示内连接 外连接左外连接右外连接 子查询 事务事务隔离级别 多表查询 有时我们不仅需要一个表的数据,数据可能关联到俩个表或者三个表,这时我们就要进行夺标查询了。 数据准备: 创建一个部门表并且插入…

文章目录

  • 多表查询
    • 内连接
      • 隐式内连接
      • 显示内连接
    • 外连接
      • 左外连接
      • 右外连接
    • 子查询
  • 事务
    • 事务隔离级别

多表查询

有时我们不仅需要一个表的数据,数据可能关联到俩个表或者三个表,这时我们就要进行夺标查询了。

  1. 数据准备:

创建一个部门表并且插入数据:

create table dept(id int primary key auto_increment,`name` varchar(20)
)	
insert into dept (name) values ('开发部'),('市场部'),('财务部'); 

创建一个员工表并且插入数据:

create table emp (id int primary key auto_increment,name varchar(10),gender char(1),		-- 性别salary double,	-- 工资join_date date,	-- 入职日期dept_id int,foreign key (dept_id) references dept(id) -- 外键,关联部门表(部门表的主键)
)
  1. 查看数据信息。
select * from emp;
select * from dept;

在这里插入图片描述
在这里插入图片描述

  1. 查询员工以及其部门的全部信息
select * from emp,dept where emp.dept_id = dept.id;

在这里插入图片描述
这里我们可以看到我们查询出emp表以及dept表俩个表中的数据了,但是其中存在冗余数据,因此我们要查询出我们所需要的具体数据来提高我们的查询数据。

  1. 查询员工的姓名及其部门名称
select emp.name 员工姓名,dept.name 部门名称 from emp,dept where emp.dept_id = dept.id;

在这里插入图片描述

  1. 通过起别名的方式来使sql代码简单
select e.name 员工姓名,d.name 部门名称 from emp e , dept d where e.dept_id = d.id;

在这里插入图片描述

内连接

用左边表的记录去匹配右边表的记录

隐式内连接

看不到 JOIN 关键字,条件使用 WHERE 指定
语法:

SELECT 字段名 FROM 左表, 右表 WHERE 条件

示例:

select e.name 员工姓名,d.name 部门名称 from emp e , dept d where e.dept_id = d.id;

在这里插入图片描述

显示内连接

使用 INNER JOIN ... ON 语句, 可以省略 INNER
语法:

SELECT 字段名  FROM 左表  [INNER] JOIN 右表  ON 条件

示例:

  1. 查询员工的全部信息
select * from emp inner join dept on emp.dept_id = dept.id;

在这里插入图片描述

  1. 查询员工姓名为猪八戒的全部信息,只要员工姓名和部门名称信息
select e.name as 员工名称,d.name as 部门名称 from emp e inner join dept d on e.dept_id = d.id and e.name = '猪八戒'

在这里插入图片描述

外连接

左外连接

用左边表的记录去匹配右边表的记录,如果符合条件的则显示;否则,显示 NULL
语法:

 SELECT 字段名  FROM 左表  LEFT [OUTER] JOIN 右表  ON 条件
  1. 数据准备
    在部门表中增加一个销售部
insert into dept (name) values ('销售部');
  1. 使用左外连接查询(保证左表的数据全部显示)
select * from dept left outer join emp on dept.id = emp.dept_id;

在这里插入图片描述
这里我们可以看到部门表的信息全部显示了,但是右表中没有匹配的数据则全部为null。

右外连接

用右边表的记录去匹配左边表的记录,如果符合条件的则显示;否则,显示 NULL
语法:

SELECT 字段名  FROM 左表 RIGHT [OUTER ]JOIN 右表  ON 条件
  1. 数据准备
insert into emp values (null, '沙僧','男',6666,'2013-12-05',null); 
  1. 使用右外连接查询(在内连接的基础上,保证右表的数据全部显示)
select * from dept right outer join emp on dept.id = emp.dept_id;

在这里插入图片描述

子查询

  • 一个查询的结果做为另一个查询的条件
  • 有查询的嵌套,内部的查询称为子查询
  • 子查询要使用括号

子查询结果:

  • 单行单列:子查询结果只要是单行单列,肯定在 WHERE 后面作为条件
  • 多行单列: 结果集类似于一个数组,父查询使用 IN 运算符
  • 多行多列: 子查询结果只要是多列,肯定在 FROM 后面作为表

示例:
**单行单列:**查询最低工资的员工信息

select * from emp where salary = (select min(salary) from emp)

在这里插入图片描述

**多行单列:**查询员工工资低于6000的部门名称

select name from dept where id in (select id from emp where salary < 6000)

在这里插入图片描述
**多行多列:**查询出 2011 年以后入职的员工信息,包括部门名称

select * from dept d, (select * from emp where join_date >='2011-1-1') e where d.`id`= e.dept_id ;

在这里插入图片描述

事务

要么成功都成功,要么失败都失败

功能SQL 语句
开启事务start transaction;
提交事务commit;
回滚事务rollback;
  1. 数据准备
CREATE TABLE account (id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(10),balance DOUBLE
);INSERT INTO account (NAME, balance) VALUES ('张三', 1000), ('李四', 1000);

在这里插入图片描述

  1. 手动事务提交
    过程图解:
    在这里插入图片描述
    示例(成功):
start transaction;-- 张三账号-500
update account set balance = balance - 500 where name='张三';
-- 李四账号+500
update account set balance = balance + 500 where name='李四';commit;

当我们开启事务之后,对张三和李四账户进行金额修改的时候,我们可以
看到金额都为1000,并没有发生改变,但是当我们进行提交的时候,账户的金额发生了改变。

示例(失败): 恢复数据张三和李四分别拥有1000元

-- 张三账号-500
update account set balance = balance - 500 where name='张三';
-- 李四账号+500
update account set balance = balance + 500 where name='李四';rollback;

当我们开启事务之后,对张三和李四账户进行金额修改,我们可以看到金额都为1000,并没有发生改变,我们使用事务的回滚,账户金额依然没有变。

  1. 自动提交事务
    MySQL 默认每一条 DML(增删改)语句都是一个单独的事务,每条语句都会自动开启一个事务,语句执行完毕自动提交事务

事务原理(图解):
事务在开启之后,所有操作都会被保存到日志文件当中,事务日志只有在得到commit命令才会同步到数据表中,其他任何情况都会清空事务日志(rollback,断开连接)
在这里插入图片描述

事务隔离级别

事务特性含义
原子性(Atomicity)每个事务都是一个整体,不可再拆分,事务中所有的 SQL 语句要么都执行成功,要么都失败。
一致性(Consistency)事务在执行前数据库的状态与执行后数据库的状态保持一致。
隔离性(Isolation)事务与事务之间不应该相互影响,执行时保持隔离的状态。
持久性(Durability)一旦事务执行成功,对数据库的修改是持久的。就算关机,也是保存下来的。
  • MySQL 数据库有四种隔离级别
级别名字隔离级别脏读不可重复读幻读数据库默认隔离级别
1读未提交read uncommitted
2读已提交read committedOracle 和 SQL Server
3可重复读repeatable readMySQL
4串行化serializable

欢迎java热爱者了解文章,作者将会持续更新中,期待各位友友的关注和收藏。。。

http://www.mnyf.cn/news/15116.html

相关文章:

  • 绵阳的网站制作公司产品软文范例大全
  • 网站聚合页面怎么做万能浏览器
  • 高端建站需要什么条件全国互联网营销大赛官网
  • 哪个网站能学做微商重庆百度小额贷款有限公司
  • 企业信息系统定义网站优化服务
  • 南汇集团网站建设大数据营销案例
  • 厦门市城市建设档案馆网站51外链代发网
  • 营销型网站建设营销型丈哥seo博客工具
  • 枣庄网站建设.com百度站长工具如何使用
  • 网站上的动图axure怎么做淘宝运营培训班
  • 软件系统网站建设seosem是什么职位
  • 上海智能网站建设平台友情视频
  • 山西网站建设软件怎么创建自己的游戏网站
  • 长沙营销网站建设公司百度之家
  • 华大网站建设如何制作网站链接
  • 网站点击按钮回到页面顶部怎么做成功营销案例分享
  • 淄企业网站建设公司成都专门做网站的公司
  • 公司做网站可以用个人域名搜索引擎营销是什么意思
  • 淮安软件园有做网站的吗足球世界排名一览表
  • 网站上做百度广告赚钱么搜索排名广告营销怎么做
  • 西安做网站公司哪家好黄冈便宜的网站推广怎么做
  • 在什么网站可以自承包活来做emlog友情链接代码
  • asp动态网站开发基础教程(第4版)网络销售真恶心
  • 做网站怎么报价谷歌app下载
  • 设计师培训生招聘seo自动工具
  • 东阳做网站公司全网推广平台有哪些
  • 微信官方网页版河北百度推广seo
  • 学校网站建设项目要多少钱磁力搜索引擎
  • 免费行情软件app网站下载大全安卓电销外包团队在哪找
  • 好书推荐ppt模板免费下载seo范畴有哪些