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

老杜MySQL入门基础 第二天

导入演示数据

1、连接MySQL
2、创建"bjpowernode"数据库

create database bjpowernode;

3、选择数据库

use bjpowernode

4、导入数据

source D:\bjpowernode.sql(文件的路径)

1 去除重复记录(把查询结果去除重复记录)(原表数据不会改变)

使用关键字distinct

1 select job from emp;
2 select distinct job from emp;

注意:distinct只能出现在所有字段的最前方

distinct出现在job和deptno两个字段之前,表示两个字段联合起来去重
select distinct job,deptno from emp;
select job,deptno from emp;

统计工作岗位的数量:
select count(distinct job) from emp;

2 连接查询(多张表联合起来查询数据)

笛卡尔积现象

当两张表进行连接查询 没有任何条件限制的时候 最终查询结果的条数 是两张表条数的乘积

如何避免笛卡尔积现象

连接时 加条件 满足这个条件的 记录被筛选出来

select ename,dname
from emp,dept
where emp.deptno = dept.deptno;

表起别名

select e.ename,d.dname
from emp e,dept d
where e.deptno = d.deptno;

表的连接次数越多 效率越低

3 内连接之等值连接

select e.ename,d.dname 
from emp e,dept d 
where e.deptno = d.deptno;
或者
select e.ename,d.dname 
from emp e
join dept d 
on e.deptno = d.deptno;
或者
select e.ename,d.dname 
from emp e
inner join dept d  //inner可以省略
on e.deptno = d.deptno;

select …
from a
join b
on a和b的连接条件
where 筛选条件;

4 内连接之非等值连接

条件不是一个等量关系,称为非等值连接
select e.ename,e.sal,s.grade
from emp e
(inner) join salgrade s
on e.sal between s.losal and s.hisal;

5 内连接之自连接

一张表看成是两张表

select a.ename as ’员工名‘,b.ename as '领导名'
from emp a
join emp b
on a.mgr = b.empno;

6 外连接

1、右外连接(right)
select e.ename,d.dname 
from emp e right join dept d 
on e.deptno = d.deptno;
right代表着:表示将join关键字右边的这张表看成主表,
主要是为了将这张表的数据全部查询出来,
捎带着关联查询左边的表

在外连接中,两张表连接产生了主次关系
在内连接中,两张表是平等的

2、左外连接(left)
select e.ename,d.dname 
from dept d left join emp e 
on e.deptno = d.deptno;

3、在join前面右outer可以省略
select e.ename,d.dname 
from emp e 
right outer join dept d 
on e.deptno = d.deptno;
或者
select e.ename,d.dname 
from dept d 
left outer join emp e 
on e.deptno = d.deptno;

外连接的查询结果条数是不是一定是大于等于内连接的查询结果条数?

正确

7 多张表的连接(三张或者四张表的连接)

select ...
from a
join b
on a和b的连接条件
join c
on a和c的连接条件
join d
on a和d的连接条件

8 子查询

select语句中嵌套select语句,被嵌套的select语句称为子查询

select
	...(select)
from
	...(select)
where
	...(select)

9 where子句中的子查询

10 from子句中的子查询

11 select子句中的子查询


http://www.kler.cn/a/3352.html

相关文章:

  • vscode 自用插件
  • WIN11 UEFI漏洞被发现, 可以绕过安全启动机制
  • [碎碎念] 重启学习与博客之旅-我的每日计划
  • 亚马逊新店铺流量怎么提升?自养号测评新趋势
  • Git 详细安装教程以及gitlab添加SSH密钥
  • AIGC专栏18——EasyAnimateV5.1版本详解 应用Qwen2 VL作为文本编码器,支持轨迹控制与相机镜头控制
  • 【22年蓝桥杯】十三届蓝桥杯真题JavaB组解析+代码(带你复习知识点)(一)
  • 【LeetCode】消失的数字
  • 【数据结构】用栈实现队列
  • vue3:setup
  • U - 速算24点
  • 2022(一等奖)D775北部湾红树林生理结构参数对水位变化的响应特征研究
  • 【去哪儿旅行笔试题】德州扑克
  • 【云原生】Kubernetes(k8s)之Pod概念和使用
  • 基于pytorch+Resnet101加GPT搭建AI玩王者荣耀
  • 【VScode】远程连接Linux
  • 2. 01背包问题
  • Python解题 - CSDN周赛第38期
  • 【机器学习基础 3】 sklearn库
  • 智能触摸面板开关一Homekit智能家居
  • ES6新增功能强大的运算符详解!!!写项目事半功倍!!!力荐!!!
  • 深入探索Android卡顿优化(上)
  • AD/DA转换(XPT2046)
  • [oeasy]python0116_文字的起源_苏美尔文明_楔形文字_两河流域
  • 【数据结构】二叉树及相关习题详解
  • SANGFOR 旧防火墙配置怎么导入新防火墙