当前位置:网站首页>[Yellow ah code] Introduction to MySQL - 3. I use select, the boss directly drives me to take the train home, and I still buy a station ticket
[Yellow ah code] Introduction to MySQL - 3. I use select, the boss directly drives me to take the train home, and I still buy a station ticket
2022-07-31 08:29:00 【m0_67401382】
大家好!我是,学会了DDL语句了吗?那我们今天就来学习一下基本的查询语法,我见过很多外包机构的程序员都是万物皆可select *,然后项目跑了一段时间就基本跑不动了,问就回答:服务器配置不够,加钱!好家伙,居然可以这样,学习啦【狗头保护】如果你在维护自家公司的项目,老板稍微会点技术,你相信他会打你吗?
好了,废话少说,先上课程目录:
- SELECT 查询的基础语法;
- 如何排序检索数据;
- 什么情况下用
SELECT*
,如何提升 SELECT 查询效率?
SELECT 查询的基础语法
SELECT 可以帮助我们从一个表或多个表中进行数据查询.我们知道一个数据表是由列(字段名)和行(数据行)组成的,我们要返回满足条件的数据行,就需要在 SELECT 后面加上我们想要查询的列名,可以是一列,也可以是多个列.如果你不知道所有列名都有什么,也可以检索所有列.
1、检索所有列【你:好家伙,这么简单,我爸妈看到都会说我是大聪明】
select * from user_info;
呐,不就出来了吗?
2、检索单个列【你:这也太简单了吧,小瞧我大聪明了?】
select user_name from user_info;
:但,你这结果好像顺序不对啊,张三不是该排在最前吧 .
你:嗯哼,我不管,能得到结果就行了.
:啪,啪,老老实实给我看到最后.
3、起别名,说通俗易懂就是给它起个外号,比如你的外号就是二狗,哦,不对,是靓仔、靓女
select user_name as u_name from user_info;
你:啊码,我很懒,我不想写那么多代码;
:啪,就知道你不想写那么多,把as去掉不就少写两个字母了吗?
:结果是不是一样?
你:是一样,但,但是,下次能不能不打我?
:打是亲,骂是爱,不打不骂不自在.
你:好家伙,待我东西学到手,让你知道什么叫做人间大爱!
4、查询常数
SELECT 查询还可以对常数进行查询.对的,就是在 SELECT 查询结果中增加一列固定的常数列.这列的取值是我们指定的,而不是从数据表中动态取出的.你可能会问为什么我们还要对常数进行查询呢?SQL 中的 SELECT 语法的确提供了这个功能,一般来说我们只从一个表中查询数据,通常不需要增加一个固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数.
比如我们想在user_name前增加一列‘u_name’代表人物名称,我们可以这么写:
select ‘人物名称’ as u_name,user_name from user_info;
你:啊码,你这样写有点像脱裤子放屁,我一看觉得那是人物名称;
:啪,啪,啪,你说什么? 不要你觉得,我要我觉得,我觉得这是在教你东西就行了,这三丈红给你个记性.
但切记,如果把人物名称改为数字,就不需要加单引号了,直接这样
你:666,啊码就是厉害;
:啪,要你夸,我厉害我能不知道?
5、去除重复行,比如:
这明显就有两个张三,我想获取这张表里边的所有user_name,并且是独一无二的,该咋弄?
你:啊码,我知道,我知道,distinct!distinct!;
:谁让你说的,你这样会让我很没面子的,啪!
select distinct user_name from user_info;
这里有两点需要注意:
- DISTINCT 需要放到所有列名的前面,如果写成
SELECT user_age, DISTINCT user_name FROM user_info
会报错. - DISTINCT 其实是对后面所有列名的组合进行去重,
如何排序检索数据
最最最普通的方式如下:
select * from user_info ORDER BY user_id asc;
你:啊码,那是不是可以asc去掉;
:啪,你终于有点觉悟了,确实是的.
你:啊码,我说对了,你为啥还要打我;
我:不好意思,纯粹顺手,习惯了,啪;
你:捂着脸,敢怒不敢言.
使用 ORDER BY 子句有以下几个点需要掌握:
- 排序的列名:ORDER BY 后面可以有一个或多个列名,如果是多个列名进行排序,会按照后面第一个列先进行排序,当第一列的值相同的时候,再按照第二列进行排序,以此类推.
- 排序的顺序:ORDER BY 后面可以注明排序规则,ASC 代表递增排序,DESC 代表递减排序.如果没有注明排序规则,默认情况下是按照 ASC 递增排序.我们很容易理解 ORDER BY 对数值类型字段的排序规则,但如果排序字段类型为文本数据,就需要参考数据库的设置方式了,这样才能判断 A 是在 B 之前,还是在 B 之后.比如使用 MySQL 在创建字段的时候设置为 BINARY 属性,就代表区分大小写.
- 非选择列排序:ORDER BY 可以使用非选择列进行排序,所以即使在 SELECT 后面没有这个列名,你同样可以放到 ORDER BY 后面进行排序.
- ORDER BY 的位置:ORDER BY 通常位于 SELECT 语句的最后一条子句,否则会报错.
至于WHERE … GROUP BY … HAVING …我们后边在学,Afraid that you will have indigestion if you eat too much,到时啪的可是我.
什么情况下用 SELECT*,如何提升 SELECT 查询效率?
如果我们只是练习,或者对数据表进行探索,那么是可以使用SELECT *?
的.它的查询效率和把所有列名都写出来再进行查询的效率相差并不大.这样可以方便你对数据表有个整体的认知.但是在生产环境下,不推荐你直接使用SELECT *?
进行查询,如果你想强制上【潮汕话:硬爱】那没办法,这边建议您回炉重造.
好了,今天的课程学到这里,有问题的留个言,别忘了一键三连,下次我们还会再见!
最后留个问题,这文章出现了几个“啪”,数错了给我重新学一遍!
我是,码字的码,退...退...退...朝!
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在.深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小.自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前.因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担.添加下方名片,即可获取全套学习资料哦
边栏推荐
- Shell编程之条件语句
- XSS详解
- Collation and sharing of related classic papers and datasets in the field of deep learning communication
- 安装部署KubeSphere管理kubernetes
- 【插值与拟合】
- Vue项目通过node连接MySQL数据库并实现增删改查操作
- [Interview: Concurrency 37: Multithreading: Thread Pool] Custom Thread Pool
- MySQL table creation statement_Three commonly used MySQL table creation statements
- 报销流程|By天放师兄
- 【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(下) -- 搜索历史
猜你喜欢
随机推荐
【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(中)-- 搜索建议
【idea 报错】 无效的目标发行版:17 的解决参考
7/28-7/29 期望+思维+后缀数组+ST表
关于Error EPERM operation not permitted, mkdir...几种解决办法的比较
正则表达式绕过
Docker-compose安装mysql
免安装版的Mysql安装与配置——详细教程
Unreal基础概念
使用PageHelper实现分页查询(详细)
Vulkan与OpenGL对比——Vulkan的全新渲染架构
"The C language games" mine clearance
sqli-labs(less-11)
Shell编程之条件语句
关于yum源的配置及更新
mysql安装教程【安装版】
UML图及在drawio中的绘制
页面懒加载
regex bypass
【小程序项目开发-- 京东商城】uni-app之自定义搜索组件(下) -- 搜索历史
【插值与拟合】