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

MySQL基础------sql指令1.0(查询操作->select)

 目录

前言:

单表查询

1.查询当前所在数据库

2.查询整个表数据

3.查询某字段

4.条件查询

5.单行处理函数(聚合函数)

 6.查询时给字段取别名

 7.模糊查询

 8.查询结果去除重复项

 9.排序(升序和降序)

10. 分组查询

 11.分页查询

联表查询

1.笛卡尔积现象

2.内连接查询

 3.左连接查询

4.右连接查询

 


前言:

        MySQL数据库是一种免费的数据库,我们可以通过官网去下载mysql服务器到本地,其中sql指令非常重要,我们可以去通过sql指令来操作数据库,那今天我们就学习sql指令中的查询操作(select)。

操作之前,先通过cmd管理员身份进入DOS指令窗口,然后输入net start mysql 指令打开服务器,然后就是登陆你的mysql。

select 查询的大致框架:

select 后面跟字段或者*(意思是全部) from 跟表名 后面就是条件了;

单表查询

当前表数据如图所示:(表名为user)

1.查询当前所在数据库

select database(); 

2.查询整个表数据

select *from 表名;

3.查询某字段

select 字段1,字段2…… from 表名; 

4.条件查询

 条件查询要使用到where去实现,其中条件包含以下运算符:

比较符号
=
!=
>
<
<=
>=

逻辑运算符号
and 
or 
not 

范围数据
between 两个值之间
not between 
in 在指定集合之间
not in 

select 字段…… from 表名 where 条件;

示例1: 

 示例2:

 示例3:

5.单行处理函数(聚合函数)

我们可以去通过mysql中的内置函数去实现一些函数功能,比如统计,去平均值,最大值小值等等。其单行处理函数如下所示:

sum(字段) 求和

upper(字段) 转大写

lower(字段) 转小写

max(字段) 取最大值

min(字段) 取最小值

avg(字段) 取平均值

count(*) 获取总条数

 

示例1:

示例2: 

 示例3:

 6.查询时给字段取别名

select 字段 as 别名 from 表名 ……

 7.模糊查询

关键字:

%: 匹配0个或者多个字符(null除外)
_: 匹配任意一个字符(多个_,就匹配对应的字符)

select 字段 from 表名 where 字段 like '%……';

示例:

查询名字带有 信 字的

select *from user where name like '%信%';

查询姓李的,而且名字只有两个字

select *from user where name like '李_';

示例1: 

 示例2:

 8.查询结果去除重复项

select distinct 字段 from 表名 ……;

示例:

select distinct belong from user;

(原来abc是多个的,查询去重) 

 9.排序(升序和降序)

一般来说sql查询的结果都是升序的,我们也可以去通过一些指令去控制升序/降序要求

升序:

select *from 表名 order by 字段;

降序:

select *from 表名 order by 字段 desc;

示例1:

示例2:

示例3:

10. 分组查询

关键字:group by 组

select count(*),belong from user group by belong;

注意:分组查询的查询字段也必须是具有分组性质的,比如上面所说的单行处理函数

 11.分页查询

select …… from 表名 where 条件 limit 起点,返回条数;

示例:select *from user where pj> 10 limit 1,5;

 如果返回的条数大于最大条数,结果就直接返回最大的条数;如果起点大于最大的条数就返回空

 

联表查询

联表查询可以实现两张或两张以上的表之间进行关系查询

表1:book

表2:author

1.笛卡尔积现象

select *from book,author;

 查询结果一共有63条也就是,book表中9条数据与author表中7条数据的乘积,这就是笛卡尔积现象,这种查询效率非常低下,而且需要的结果非常少,也就是说我只想要某一条结果,实际上查询出了全部结果,那我还要在这些结果找我想要的,所以千万别用这种指令!!!!!

2.内连接查询

select *from 表1 inner join 表2 on 连接条件;

示例select book.b_name, author.a_name from book inner join author on book.id = author.id;

 内连接返回的条数是按照其中一个表最短的条数返回的查询结果,遵循木桶效应

 3.左连接查询

select *from 表1 left join 表2 on 条件;

(查询结果最大的条数是按照表1为标准)

示例:select *from author left join book on book.id = author.id;

          select *from book left join author on book.id=author.id;

 示例1:

示例2: 

4.右连接查询

 右连接就跟左连接反过来,那就是以表2为标准

select *from 表1 right join 表2 on 条件;

示例:select *from author right join book on book.id=author.id;

          select *from book right join author on book.id=author.id;

示例1:

 

示例2:

 

 今天就先讲这么多吧,后面还有很多我会边学习边补充的。

分享一张壁纸:

http://www.lryc.cn/news/39926.html

相关文章:

  • Python数据分析处理报告--实训小案例
  • OpenCV入门(十二)快速学会OpenCV 11几何变换
  • 小菜鸟Python历险记:(第二集)
  • ContentProvider程序之间数据的相互调用
  • 金三银四最近一次面试,被阿里P8测开虐惨了...
  • 算法题——给定一个字符串 s ,请你找出其中不含有重复字符的最长子串 的长度
  • 机器学习中的数学原理——F值与交叉验证
  • vue.js介绍
  • 【设计模式】1、设计模式七大原则
  • 【前端老赵的CSS简明教程】10-1 CSS预处理器和使用方法
  • BFC详解
  • C++:哈希结构(内含unordered_set和unordered_map实现)
  • Java实现调用第三方相关接口(附详细思路)
  • 基础数据结构:单链表
  • 基于51单片机的智能计算器Protues仿真设计
  • Pandas数据分析实战练习
  • C++ 继承下(二篇文章学习继承所有知识点)
  • 【C++】C++11新特性——类的改进|lambda表达式
  • C语言进阶(37) | 程序环境和预处理
  • Golang每日一练(leetDay0005)
  • occt_modeling_data(一)——拓扑
  • 【AcWing】蓝桥杯备赛-深度优先搜索-dfs(3)
  • 宇宙最强-GPT-4 横空出世:最先进、更安全、更有用
  • HashMap的实际开发使用
  • OpenCV入门(十三)快速学会OpenCV 12 图像梯度
  • 软考:常见小题目计算题
  • 【Linux】进程的程序替换
  • 【C++】模板(上)
  • express框架利用formidable上传图片
  • 测试背锅侠?入职软件测试后大d佬给我丢了这个bug分类分析,至今受益匪浅......