当前位置:网站首页>MySQL高阶语句(一)
MySQL高阶语句(一)
2022-06-27 11:43:00 【Kiro君】
MysQL高级SQL语句
一、SQL语句常用查询
对mysql数据库的查询,除了基本的查询外,有时候需要对查询的结果进行处理。例如只取一部分数据,对查询结果进行排序或分组等等。
模板表
按关键字排序 :类比于windows 任务管理器
使用select语句可以将需要的数据从mysql数据库中查询出来,如果对查询的结果进行排序,可以用 OEDER BY 语句来对语句实现排序,并最终将排序后的结果返回给客户。
这个语句可针对一个或多个字段
语法
select colunm1,colunm2, ... from table_name order by column1,column2 , ... ASC|DESC
ASC: 是按照升序进行排序的,默认的排序方式,可省略(如果没有指定的的具体排序方式,则默认ASC方式进行排序)
DESC: 是按照降序方式进行排列(order by前边也可以使用 where 字句对查询结果进一步过滤)
1.1 按关键字查询
== 1.按年龄排序,默认不指定升序排列==
mysql> select id,name,age,hobby from info1 order by age;

1.2 年龄按降序排列
mysql> select id,name,age,hobby from info1 order by age desc;

ORDER BY还可以结合where进行条件过滤
#筛选名单里30岁的人
mysql> select name,age from info1 where age='30' order by id desc;

1.3 升降序查询学生信息
ORDER BY 语句也可以使用多个字段来进行排序
如果是多字段的时候,第一个参数相同的情况,第二个字段有效
① 查询学生名单先按id降序排列,相同年龄的,id也按降序排列
select id,name,age,hobby from info1 order by age desc,id descc;

② 查询学生信息先按兴趣id降序排列,相同分数的,id按升序排列
select id,name,age,hobby from info1 order by age desc,id;

二、区间判断AND /OR
2.1 查找年龄在某个区间
mysql> select * from info1 where age > 18 and age < 25;

2.2 嵌套/多条件查询
mysql> select * from info1 where age > 29 or (age <25 and age > 18 );

2.3 distinct 查询不重复记录
mysql> select distinct age from info1;

三、对结果进行分组
通过SQL查询出来的结果,还可以对其进行分组,使用GROUP BY 语句来实现,GROUP BY通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(COUNT)、求和(SUM)、求平均数(AVG)、最大值(MAX)、最小值(MIN)、GROUP BY分组的时候可以按照一个或多个字段对结果进行分组处理:
语法
SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator valueGROUP BY column_name;
3.1 将age相同的分为一组,统计name学生的个数

结合where语句
四、限制结果条目(limit)
在使用 MySQL SELECT 语句进行查询时,结果集返回的是所有匹配的记录(行)。有时候仅 需要返回第一行或者前几行,这时候就需要用到 LIMIT 子句
语法
SELECT column1, column2, ... FROM table_name LIMIT [offset,] number
LIMIT 的第一个参数是位置偏移量(可选参数),是设置 MySQL 从哪一行开始显示。 如果不设定第一个参数,将会从表中的第一条记录开始显示。需要注意的是,第一条记录的 位置偏移量是 0,第二条是 1,以此类推。第二个参数是设置返回记录行的最大数目。
4.1 查询所有信息的前4行

4.2 查询第3行开始,往后2行的记录

4.3 按id的大小升序排列显示前三行

4.4 按id的大小升序排列显示后三行

五、设置别名(alias ——as)
在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性
语法
对于列的别名:SELECT column_name AS alias_name FROM table_name;
对于表的别名:SELECT column_name(s) FROM table_name AS alias_name;
使用场景
- 对复杂的表进行查询时,别名可以缩短查询语句的长度
- 多表相连查询时(通俗易懂、剪短sql语句)
5.1 查询字段数量
select count(*) as number from info1;
5.2 列别名设置

5.3 用as创建表
创建了一个新表test1 并定义表结构,插入表数据(与info1表相同)
但是”约束“没有被完全”复制“过来
#但是如果原表设置了主键,那么附表的:default字段会默认设置一个0
create table bakup2 as select * from zhuangzu;

克隆、复制表结构
create table bakup (select * from zhuangzu);


六、通配符
- 通配符主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来。
- 通常通配符都是跟 LIKE 一起使用的,并协同 WHERE 子句共同来完成查询任务。常用的通配符有两个,分别是:
%:百分号表示零个、一个或多个字符 *
_:下划线表示单个字符
select id,name from info1 where name like 'z%';

select id,name from info1 where name like 'l_z';

select id,name,address from info1 where address like '%a%';

select id,address from info1 where address like 'C%_';
select id,name from abc where name like '%n_';


七、子查询
子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。
子语句可以与主语句所查询的表相同,也可以是不同表
select name,age from info1 where id in(select id from zhuangzu);
主语句:select name,age from info1 where id
从语句:select id from zhuangzu
7.1update子查询
UPDATE 语句也可以使用子查询。UPDATE 内的子查询,在 set 更新内容时,可以是单独的一列,也可以是多列。
7.2delete子查询

7.3取反子查询
在 IN 前面还可以添加 NOT,其作用与 IN 相反,表示否定(即不在子查询的结果集里面)
删除年龄不是大于20岁的记录

7.4exists子查询
EXISTS 这个关键字在子查询时,主要用于判断子查询的结果集是否为空。如果不为空, 则返回 TRUE;反之,则返回 FALSE
八、mysql视图
数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了真实数据的映射
功能: 简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性
PS: 视图适合于多表连接浏览时使用!不适合增、删、改
而存储过程适合于使用较频繁的SQL语句,这样可以提高执行效率!
区别:
①、视图是已经编译好的sql语句。而表不是
②、视图没有实际的物理记录。而表有。 show table status\G
③、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
④、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户触数据表,从而不知道表结构。
⑤、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
⑥、视图的建立和删除只影响视图本身,不影响对应的基本表。(但是更新视图数据,是会影响到基本表的)
创建视单表图
在视图中展示24岁以上的
查看视图
查看视图和原表结构

边栏推荐
- 器审科普:创新医疗器械系列科普——胸骨板产品
- Xuri 3sdb, installing the original ROS
- 内存四区(栈,堆,全局,代码区)
- Interview shock 60: what will cause MySQL index invalidation?
- C # WPF realizes undo redo function
- Mathematical knowledge -- ideas and examples of game theory (bash game, Nim game, wizov game)
- 手把手带你入门 API 开发
- C# wpf 实现撤销重做功能
- c/s 架构
- Jwas: a Bayesian based GWAS and GS software developed by Julia
猜你喜欢

Open source model library of flying propeller industry: accelerating the development and application of enterprise AI tasks

In 2021, the global professional liability insurance revenue was about USD 44740million, and it is expected to reach USD 55980million in 2028. From 2022 to 2028, the CAGR was 3.5%

如何修改 node_modules 裏的文件

Unity shader learning (II) the first shader

2022ciscn central China Web

alibaba jarslink

This privatized deployed enterprise knowledge base makes telecommuting a zero distance

Youboxun attended the openharmony technology day to create a new generation of secure payment terminals

pull request

Summary of qstype class usage (III)
随机推荐
AutoCAD - three pruning methods
[tcapulusdb knowledge base] tcapulusdb doc acceptance - create business introduction
动态规划【三】(区间dp)石子合并
干货!零售业智能化管理会遇到哪些问题?看懂这篇文章就够了
Dynamic programming [4] (counting class DP) example: integer partition
"Internet +" contest topic hot docking | I figure to understand 38 propositions of Baidu
Matlab exercises - create 50 rows and 50 columns of all zero matrix, all 1 matrix, identity matrix, diagonal matrix, and output the 135 element of the matrix.
Llvm family (1) - Introduction to llvm
[tcapulusdb knowledge base] Introduction to tcapulusdb system management
57. The core principle of flutter - layout process
Getting started with go web programming: validators
R language uses GLM function to build Poisson logarithm linear regression model, processes three-dimensional contingency table data to build saturation model, uses step function to realize stepwise re
Unity shader learning (I) understanding the basic structure of unity shader
Drive to APasS! Use Mingdao cloud to manage F1 events
c/s 架构
After Jerry's sleep, the regular wake-up system continues to run without resetting [chapter]
Interview shock 60: what will cause MySQL index invalidation?
mysql学习1:安装mysql
Don't miss it. New media operates 15 treasure official account to share
MapReduce原理剖析(深入源码)