mysql03
查询的列不在同一表中必须使用连接内连接,外链接
-- 输出学生姓名以及对应的年级名称
内连接
select studentName,gradeName
from student inner join grade
on student.gradeId=grade.gradeId
隐式内连接
select studentName,gradeName from
student,grade
where student.gradeId =gradeID
左外连接查询
以left join左边的表为准,右表没有的数据返回null
select studentName ,gradeName
from student left join grade
on student.gradeId=grade.gradeId
右外连接查询
以left join右边的表为准,左表没有的数据返回null
select studentName ,gradeName
from student left join grade
on student.gradeId=grade.gradeId
-- 查询考试课程编号为1 的学生姓名,以及年级名称和科目名称以及成绩
select studentName ,gradeName ,subjectName ,studentResult
from student s,grade g, subject b,result r
where s.studentId=r.studentId,
and r.subjectNO=b.subjectNo,
and g.gradeId=s.gradeId ,
and g.gradeId=b.gradeId ,
and b.subjectNo=1
临时表:只在当前连接可见,当这个连接关闭时,会自动ry删除,不会占用数据库空间。修改临时表数据不会影响原来表数据,因此如希望 验证某些修改表后的查询,又不想更改原表内容时,可以使用临时表备份原表数据,在临时表上做数据验证,当连接关闭后,系统会自动删除临时表。
create temporary table 表名 (查询语句);
自连接:
把一个表当成多个表来使用,关键是使用别名。
例 1
name bumen zhiwu
张三 市场 员工
李四 销售 经理
王五 市场 经理
使用自连接的方式 查询员工所在的 部门 经理 的 姓名
select name from table where bumen =(
select bumen from table where name='张三'
) and zhiwu='经理'
例 2
teacher 表
id name tid
1 导师1
2 导师2
3 老师1 1
4 老师2 1
5 老师3 2
---查询老师3的姓名和对应的 导师姓名
t1 老师 t2 导师
select t1.name as 老师名 ,t2.name as 导师名
from teacher t1, teacher t2
where t1.tid=t2.id
and t1.name='老师3'
例 3
name class socre
黑1 1 89
黑2 1 6
黑3 1 90
白1 2 34
白2 2 27
白3 2 72
a.查询分数前三名
b.找出前三名并输出
a. select * from table
order by socre desc
limit 0,3
b. select * from table t1
where (
select count (1) from table t2
where t1.socre <t2.socre
and t1.class=t2.class
)<3
order by class ,socre desc
mysql03的更多相关文章
- MySQL-03 SQL语句设计
学习要点 SQL语句分类 DML语句 DML 查询语句 SQL语句分类 数据操纵语言(DML):用来操纵数据库中数据的命令.包括:SELECT.INSERT.UPDATE.DELETE. 数据定义语言 ...
- 极客mysql03
1.务的特性:原子性.一致性.隔离性.持久性 2.多事务同时执行的时候,可能会出现的问题:脏读.不可重复读.幻读 3.事务隔离级别:读未提交.读提交.可重复读.串行化 4.不同事务隔离级别的区别: 读 ...
- mysql之 mysql 5.6不停机双主一从搭建(活跃双主一从基于日志点复制)
环境说明:版本 version 5.6.25-log 主1库ip: 10.219.24.25主2库ip: 10.219.24.22从1库ip:10.219.24.26os 版本: centos 6.7 ...
- nginx之 nginx虚拟机配置
1.配置通过域名区分的虚拟机[root@mysql03 nginx]# cat conf/nginx.confworker_processes 1; events { worker_connectio ...
- nginx之 nginx-1.9.7 + tomcat-8.5.15 反向代理+应用负载均衡 安装配置
环境说明:nginx 反向代理服务器 ip 为: 10.219.24.26tomcat1 应用服务器 ip 为: 10.219.24.21tomcat3 应用服务器 ip 为: 10.219.24.2 ...
- nginx之 nginx + tomcat + redis 负载均衡且session一致性
说明: 本文描述的是 nginx + tomcat + redis 实现应用负载均衡且满足session一致性,从安装到配置的全部过程,供大家学习!nginx 代理服务器ip: 10.219.24.2 ...
- Nginx+Keepalived 主备高可用 安装与配置
环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...
- mysql+keepalived 双主热备高可用
理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互 ...
- mysql5.7-Group Replication
什么是Group Replication 基于组的复制(Group-based Replication)是一种被使用在容错系统中的技术.Replication-group(复制组)是由能够相互通信的多 ...
随机推荐
- 小程序图片保存的相册授权失败问题,原接口wx.openSeting()已经废弃了的解决办法
项目中使用的是wepy框架开发的小程序,,, 使用场景是,用户点击下载图片的时候,要调起授权button(小程序拉起授权的功能都集成在了button组件,所以这里需要用到button组件里的一个ope ...
- Linux用户群组权限恢复
/etc/passwd:该文件用于存放用户详细信息:例如 root:x:0:0:root:/root:/bin/bash 用户id 0:就表示root用户 bin下的bash:表示可以登入操作系统 s ...
- 8款不错的 CI/CD工具
Jenkins Jenkins是CI市场中最知名且最常见的名号之一.其最初是由Sun公司的一位工程师打造的一个辅助项目,并迅速扩展为最大的开源CI工具之一,可帮助工程团队实现自动化部署.顺带一提:我们 ...
- Python的原型开发带来的关于Mock的思考
Python非常受欢迎,主要原因之一它包包多,能让你快速实现一个功能,并且很方便运行并看到效果,因此,它非常适合做原型开发. 什么是原型开发? 原型开发就是实现一个简单版本的开发. 在使用其他高级语言 ...
- ionic环境配置
1.现在 npm install -g ionic 直接安装ionic2版本.用ionic1版本开发,用 npm install -g ionic@1.6. 2.第一次输入: ionic serve ...
- vue滚动事件销毁,填坑
eg:富文本的头部固定,当滚轮大于200时(举例)固定在浏览器头部,距离大于富文本时,头部消失 效果: 在富文本下面加一个空div 这么写: mounted() { $(window).scroll( ...
- 28.json数组,select选择,input输出对应数据
效果:选择对应的车类,下面的input会实时出现车价. html: <form action="" class="priceModelform1"> ...
- 阿里云云盾服务证书免费CA证书申请与配置 (原)
申请入口(首页导航产品->安全->CA证书服务->立即购买) 免费版选择步骤一步一步来 1.品牌选 Symantec 2.保护类型选择 一个域名(免费版只能一个好像) 3.证书类型选 ...
- Linux 安装Eclipse
安装Eclipse 场景: 我用的是笔记本(Windows系统),我在笔记本上安装了虚拟机,在 虚拟机中安装了Linux系统,使用的镜像是:CentOS-6.6-x86_64-bin-DVD1.iso ...
- MYSQLi数据访问批量删除
<link href="../bootstrap.min.css" rel="stylesheet" type="text/css" ...