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

老杜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子句中的子查询

12 union合并查询结果集

union在进行结果集合并的时候,要求两个结果集的列数要相同。

13 limit

limit将查询结果的一部分取出来,通常使用在分页查询当中。

MySQL当中 limit 在 order by 之后执行

limit 加两个参数 (第一个参数是起始位置,第二个参数是长度)
起始位置是从0开始
limit后面加一个参数 就表示长度

14 分页

limit (pageNo-1)*pageSize,pageSize
pageNo是当前所在第几页
pageSize是每页显示的记录数目

15 关于DQL语句的总结

select
from
where
group by
having
order by
limit

执行顺序:
1、from
2、where
3、group by
4、having
5、select
6、order by
7、limit

16 表的创建(建表)

建表属于DDL语句:create、drop、alter

create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型
);

17 关于MySQL中的数据类型

varchar(最长255)可变长度的字符串会根据实际的数据长度 动态分配空间char(最长255)定长字符串不管实际的数据长度是多少分配固定长度的空间去存储数据int(最长11)bigint长整型
floatdoubledate短日期类型
datetime长日期类型clob字符大对象最多可以存储4G的字符串超过255个字符的都要采用clob字符大对象来存储blob二进制大对象存储图片、声音...插入数据需要使用IO流

18 删除表

drop table 表名;
或者
drop table if exists 表名;
//如果这张表存在就删除

19 insert语句(DML语句)

insert into 表名(字段名1,字段名2...) values(值1,值2...);
字段名要与值一一对应:数量要对应,数据类型也要对应

可以在建表的时候:使用default的方式来指定默认值
如果省略了的前面的字段名,相当于都写上
所以说后面的值都要给出

20 insert插入日期

str_to_date:将字符串varchar类型转换为date类型
date_format:将date类型转换为具有一定格式的varchar字符串类型

21 修改update(DML语句)

update 表名 set 字段名1 = 值1,字段名2 = 值2,字段名3 = 值3... where 条件;
注意:没有条件限制会导致所有的数据全部更新

22 删除数据delete(DML语句)

delete from 表名 where 条件;
注意:没有条件会导致整张表的数据全部删除
http://www.lryc.cn/news/42885.html

相关文章:

  • Python深度学习实战:人脸关键点(15点)检测pytorch实现
  • linux简单入门
  • 给准备面试网络工程师岗位的应届生一些建议
  • 主线程与子线程之间相互通信(HandlerThread)
  • 13基于双层优化的电动汽车日前-实时两阶段市场竞标
  • REDIS19_zipList压缩列表详解、快递列表 - QuickList、跳表 - SkipList
  • JavaScript 基础 - 第3天
  • 23.3.26总结
  • 【Java学习笔记】37.Java 网络编程
  • Azure OpenAI 官方指南03|DALL-E 的图像生成功能与安全过滤机制
  • 【数据结构】堆
  • 电脑硬盘文件数据误删除/格式化为什么可以恢复? 怎么恢复?谈谈文件删除与恢复背后的原理
  • Gateway服务网关
  • K8S + GitLab + Jenkins自动化发布项目实践(一)
  • 【数据结构篇C++实现】- 堆
  • C++笔试题
  • 【Python】基本语法
  • 用栈实现队列(图示超详解哦)
  • Spring - Spring 注解相关面试题总结
  • 【数据结构】实现二叉树的基本操作
  • 代码随想录算法训练营第五十二天| ● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组
  • 手机验证发送及其验证(基于springboot+redis)保姆级
  • 【JavaScript 逆向】数美滑块逆向分析
  • 多任务之线程
  • (数字图像处理MATLAB+Python)第二章数字图像处理基础-第二节:色度学基础与颜色模型
  • 【华为OD机试 2023最新 】 网上商城优惠活动(C++)
  • 记一次CentOS 8 部署packstack部署OpenStack失败案例,请直接看最后
  • 【2023春招】美团技术岗笔试10min+AK
  • Echarts实现图表自适应屏幕分辨率
  • 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一