当前位置:网站首页>MySQL 高级(进阶) SQL 语句 (一)
MySQL 高级(进阶) SQL 语句 (一)
2022-07-30 20:14:00 【良月生秋】
目录
- 环境:创建表
- 一、order by语句
- 二、升序与降序(ASC和DESC)
- 三、select查询
- 四、and/or-且/或
- 五、where
- 六、distinct(查询不重复记录)
- 七、group by(对结果进行分组)
- 八、limit
- 九、alias(设置别名)
环境:创建表
mysql> show databases;
mysql> use kgc
mysql> show tables;
mysql> create table ky19;
mysql> create table ky19 (id int,name varchar(10)primary key not null,score decimal(5,2),address varchar(20),hobbid int(5));
mysql> insert into ky19 values(1,'zhusang',100,'riben',2);
mysql> insert into ky19 values(2,'liangsang',59.89,'taiguo',2);
mysql> insert into ky19 values(3,'wusang',80,'miandian',3);
mysql> insert into ky19 values(4,'chenbao',99,'ouzhou',4);
mysql> insert into ky19 values(5,'gangzi',88,'hanguo',5);
mysql> insert into ky19 values(6,'xiangxi',66,'shanghai',3);
mysql> insert into ky19 values(7,'jianjian',87,'cv',6);
mysql> select * from ky19;
一、order by语句
(增、删、改、查)
对MysQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取10条数据、对查询结果进行排序或分组等等。
按关键字排序
PS:类比于windows任务管理器,使用SELECT语句可以将需要的数据从MySQL数据库中查询出来,如果对查询的结果进行排序,可以使用ORDER BY语句来对语句实现排序,并最终将排序后的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段
语法
SELECT column1,column2,... FROM table_name ORDER BY column1,column2,...
---- ORDER BY ----按关键字排序
语法:SELECT "栏位" FROM "表名" [WHERE "条件"] ORDER BY "栏位" [ASC, DESC];
#ASC 是按照升序进行排序的,是默认的排序方式。
#DESC 是按降序方式进行排序。
二、升序与降序(ASC和DESC)
ASC:
是按照升序进行排序的,是默认的排序方式,即ASC可以省略。SELECT语句中如果没有指定具体的排序方式,则默认按ASC方式进行排序。
DESC:
是按降序方式进行排列。当然 ORDER BY前面也可以使用WHERE子句对查询结果进一步过滤。
三、select查询
---- SELECT ----显示表格中一个或数个栏位的所有资料
语法:SELECT "字段" FROM "表名";
SELECT Store_Name FROM Store_Info;
四、and/or-且/或
---- AND OR ----且 或
语法:SELECT "字段" FROM "表名" WHERE "条件1" {[AND|OR] "条件2"}+ ;
SELECT Store_Name FROM Store_Info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);
五、where
--- WHERE ----有条件查询
语法:SELECT "字段" FROM "表名" WHERE "条件";
六、distinct(查询不重复记录)
---- DISTINCT ----不显示重复的资料
语法:SELECT DISTINCT "字段" FROM "表名";
SELECT DISTINCT Store_Name FROM Store_Info;
定义两个字段 name,hobbid以name作为计数统计,查询表中score大于等于80的进行hobbid分组
七、group by(对结果进行分组)
通过SQL查询出来的结果,还可以对共进行分组,使用GROUP BY 语句来实现,GROUP BY通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数( COUNT) 、求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN),GROUP BY分组的时候可以按一个或多个字段对结果进行分组处理。
语法
SELECT column_name,aggregate_function (column_name)FROM table_name WHERE column_nameoperator valueGROUP BY column name;
---- GROUP BY ----对GROUP BY后面的栏位的查询结果进行汇总分组,通常是结合聚合函数一起使用的
GROUP BY 有一个原则,就是 SELECT 后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY后面。
语法:SELECT "字段1", SUM("字段2") FROM "表名" GROUP BY "字段1";
八、limit
限制结果条目( limit )
limit限制输出的结果记录
在使用MySQL SELECT语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅需要返回第一行或者前几行,这时候就需要用到LIMIT子句。
语法
SELECT column1,column2,... FROM table_name LIMIT [offset, ] number
LIMIT的第一个参数是位置偏移量(可选参数),是设置 MysQL从哪一行开始显示。如果不设定第一个参数,将会从表中的第一条记录开始显示。需要注意的是,第一条记录的位置偏移量是0,第二条是1,以此类推。第二:个参数是设置返回记录行的最大数目。
九、alias(设置别名)
设置别名( alias ——》as )
在MysQL查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者
多次使用相同的表,"可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性
语法
对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name (s)FROM table_name As alias_name;
在使用AS 后,可以用alias_name代替table_name,其中 As i语句是可选的。AS之后的别名,主要是为表内的列或者表提供临时的名称,在查而过程中使用,库内实际的表名或字段名是不会被改变的
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数
- Database indexes: indexes are not a panacea
- [Node implements data encryption]
- TensorFlow2:概述
- 推荐系统:开源项目/工具【谷歌:TensorFlow Recommenders】【Facebook:TorchRec】【百度:Graph4Rec】【阿里:DeepRec和EasyRec】
- PR视频剪辑软件教程
- 基于人脸的常见表情识别(1)——深度学习基础知识
- Redisson 的分布式锁找不到?
- ERROR 1045 (28000) Access denied for user 'root'@'localhost'Solution
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
猜你喜欢
These services can't ali interview?Then don't go to, the basic notification, etc
基于Apache Doris的湖仓分析
excel数字下拉递增怎么设置?
WPS表格怎么自动1234排下去?wps表格怎么自动生成序号?
Weak Banks to data conversion ability?Matt software help solve bank dilemma
推荐系统-排序层-模型(一):Embedding + MLP(多层感知机)模型【Deep Crossing模型:经典的Embedding+MLP模型结构】
Database indexes: indexes are not a panacea
啊?现在初级测试招聘都要求会自动化了?
PPT如何开启演讲者模式?PPT开启演讲者模式的方法
MySql密码
随机推荐
使用MULTISET来比较数据集的实例介绍
MySQL sub-database sub-table
el-input 只能输入整数(包括正数、负数、0)或者只能输入整数(包括正数、负数、0)和小数
el-input can only input integers (including positive numbers, negative numbers, 0) or only integers (including positive numbers, negative numbers, 0) and decimals
vlookup函数匹配不出来只显示公式的解决方法
推荐系统:评估指标【离线评估指标:RMSE(均方根误差)、AUC、准确率、召回率、F1】【在线评估:A/B测试】【一般要求响应时间<0.5s】
[Ask] SQL statement to calculate the sum of column 2 by deduplicating column 1?
树形结构:二叉树的递归非递归遍历、BST
Multi-threaded mutex application RAII mechanism
ELK日志分析系统
明解C语言第五章习题
excel数字显示e+17怎么恢复?excel数字变成了小数点+E+17的解决方法
Linux download and install mysql5.7 version tutorial the most complete and detailed explanation
Apple Silicon配置二进制环境(一)
推荐系统:AB测试(AB Test)
明解C语言第六章习题
OSS简单上传图片
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
英文字母间隔突然增大(全角与半角转换)
MySQL的DATE_FORMAT()函数将Date转为字符串