mysql的高阶语句

mysql的高阶语句

数据库的权限一般是很小的,我们在工作使用最多的场景就是查

排序 分组 子查询 视图 多表连接查询(左连接 右连接 内连接)别名

使用select语句,使用order by

查看:select id,name,score from info order by name DESC;

order by 结合where条件过滤:

select name,score from info where address=南京西路 order by score desc;

查id 姓名 成绩,根据性别=女.按照id进行降序排序

select name,score from info where sex='女' ORDER BY id desc;

只有第一个参数出现相同值的时候,第二个才会按照要求排序

区间判断查询和去重查询:

AND/or

且   或

大于70而且小于等于90:SELECT * from info where score > 70 and score <=90;

大于80或者小于90:SELECT * from info where score > 80 or score < 90;

嵌套条件:select * from info where score > 70 and (score > 75 and score < 90);

嵌套条件,满足性别是男,然后进行筛选 成绩80-90:select * from info where sex='男' and (score > 80 and score < 90);

去重查询:SELECT distinct address from info;

select distinct sex from info;

根据address去重,然后过滤出成绩=90且性别男:SELECT distinct address from info where sex='男' and score = 90;

对结果进行分组查询:group by语句

一般是结合聚合函数一块使用

count():统计有多少行

sum():把列的值相加求和

avg():对列的值求平均数

max():过滤出列的最大值

min():过滤出列的最小值

分组的时候可以按照一个字段,也可以按照多个字段对结果进行分组处理

根据where条件筛选,score >=80:select count(name),sex,score from info where score >= 80 group by sex;

求和:以地址为分组,对score求和:select sum(score),address from info group by address;

算出男生女生的平均成绩:select avg(score),sex from info group by sex;

分别求出男生组和女生组的成绩最低的姓名:select min(score),sex,name from info group by sex;

如何使用group by实现条件过滤(后面跟上having语句实现条件过滤):select avg(score),address from info group by address having avg(score) > 60;

按照地址分组,求成绩的平均值,然后>50,按照id的降序排列:select avg(score),address,id from info group by address having avg(score) > 50 order by id desc;

统计name的行数,计算出学生的个数,把成绩也查出来,然后按照统计出来的学生个数,升序排列。按照地址分组(学生的成绩>=70):select count(name),score,address from info group by address having score >=70 order by count(name);

按照性别分组,求出男生和女生的最大成绩,最大成绩是否超过了75分,满足条件的过滤处理:select max(score),sex from info group by sex having max(score) > 75;

使用聚合函数必须要加group by分组的条件,要选用有多个重复值的列。过滤条件要用having语句过滤

limit:限制输出的结果记录,查看表中的指定行

只看前三行:select * from info limit 3;

快速的查看后几行:select * from info order by id desc limit 3;

通配符:主要用于替换字符串中的部分字符,通过部分字符的匹配将相关的结果查询出来

通配符和like一起使用,使用where语句一起来完成查询

%:表示0个,1个,或者多个

_:表示单个字符

以山为开头:select * from info where address like 山%

以路为结尾:select * from info where address like %路

表示内容当中包含:%c%

表示单个字符:select * from info where name like '刘__';

select * from info where name like '_树_';

通配符可以结合在一块使用

设置别名:alias >> AS

在mysql查询时,表的名字或者字段名太长,可以使用别名来进行替代。方便书写。增加可读性

例如:select name 姓名,score 成绩 from info;

create table test as select * from info;

创建了一个表,test,test的数据结构从info复制过来,但是约束不会被复制

desc test;

使用as复制表,约束不会被复制过来

作业:

通过as创建,主键没了,外键在不在,索引在不在?

create table test1 as select * from info where score >=60

通过as创建,主键没了,外键在不在,索引在不在?

可以给表起别名,但是要注意别名不能和数据库中的其他表名冲突

列的别名在结果中可以显示,但是表的别名在结果中没有显示,只能用于查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五表联筛:从五个表格中筛选出出现过两次及两次以上的人名

五表联筛&#xff1a;从五个表格中筛选出出现过两次及两次以上的人名 需求分析&#xff1a; 1.把五个表格合并起来&#xff0c;合并之前必须确保五个表格的项是一样 2.合并之后查找哪些人出现过两次 3.最后输出结果代码&#xff1a; def delete_from(self):# 读取五份表格文件…

STM32 GPIO 描述

一、GPIO功能描述 每个GPIO端口有两个32位配置寄存器(GPIOx_CRL&#xff0c;GPIOx_CRH) &#xff0c;两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR) &#xff0c;一个32位置位/复位寄存器(GPIOx_BSRR)&#xff0c;一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR…

数据可视化:地图

1.基础地图的使用 如何添加颜色表示层级 代码实现 """基础地图的使用 """ from pyecharts.charts import Map from pyecharts.options import VisualMapOpts# 准备地图对象 map Map() # 准备数据 data [("北京市", 9),("上海市…

实验记录之——git push

平时做开发的时候经常push代码不成功&#xff0c;如下图 经好友传授经验&#xff0c;有如下方法 Win cmd使用Clash&#xff08;端口是7890&#xff09;代理操作&#xff0c;在cmd中输入&#xff1a; set http_proxy127.0.0.1:7890 set https_proxy127.0.0.1:7890Linux export …

有关LED显示屏对比度的知识

LED显示屏的对比度是指显示屏的亮度范围&#xff0c;即显示屏能够显示的最亮和最暗的部分之间的差异。对比度是一个重要的显示参数&#xff0c;它影响图像和视频的质量&#xff0c;以及用户对显示内容的感知。你知道LED显示屏的亮度和对比度是如何调节的吗&#xff1f; 一般来说…

【渗透测试】垂直越权(高危)、水平越权(中危)

目录 一、简介1.1 水平越权&#xff08;中危&#xff09;1.2 垂直越权&#xff08;高危&#xff09;1.3 方便记忆方法 二、修复方案2.1 水平越权修复2.2 垂直越权修复 一、简介 1.1 水平越权&#xff08;中危&#xff09; 漏洞危害&#xff1a; 水平越权 是相同级别&#xff0…

智能井盖传感器实时批发价格

城市之中高楼大厦林立&#xff0c;越来越多的人群涌入一线城市或二线城市。同时即便是县城之中接连不断的高楼大厦拔地而起&#xff0c;住宅小区的面积在不断拓宽。随着这一系列情况的出现&#xff0c;首先要完善的是每一个地区的城市道路设施建设。无论小区还是在城市路面之中…

antv G6 开发踩坑记录

1、通过键盘 鼠标拖拽创建边 根据官方实例&#xff0c;在画布上创建边基本都是点击端点构建边&#xff0c;或者固定端点后拖拽创建边&#xff0c;但是倘若有个这样的需求&#xff1a;“键盘按住ctrl后&#xff0c;鼠标从一个端点拖拽出边到另一个端点来创建边” 改如何应对呢…

使用c++解压rar文件,基于UnRAR64,非命令行

最近项目需要解压缩rar文件&#xff0c;我们都知道rar是闭源收费软件&#xff0c;如果直接采用命令行可能会有限制&#xff0c;或者盗版问题&#xff0c;使用正版的winrar命令行解压rar文件是否有限制&#xff0c;这个我没来得及测试&#xff0c;但是从交互体验上来说&#xff…

面试—如何介绍项目中的多级缓存?

项目中使用的多级缓存也就是 分布式缓存 Redis 本地缓存 Caffeine&#xff0c;那么令 Caffeine 作为一级缓存&#xff0c;Redis 作为二级缓存&#xff0c;在项目中通过记录数据的访问次数&#xff0c;将热点数据放在 本地缓存&#xff0c;将非热点数据放在 Redis缓存 中&#…

Springboot实现人脸识别与WebSocket长连接的实现

0.什么是WebSocket,由于普通的请求是间断式发送的,如果要同一时间发生大量的请求,必然导致响应速度慢(因为根据tcp协议要经过三层握手,如果不持续发送,就会导致n多次握手,关闭连接,打开连接) 1.业务需求: 由于我需要使用java来处理视频的问题,视频其实就是图片,相当于每张图片…

11月1日 mybatis入门

java程序与数据库对接端: jdbc 步骤固定, 代码固定, 大量重复代码 SQL写在代码中, 修改sql,需要重新编译代码, 动态sql, 手动拼接 结果集与java对象转换, java程序与前端对接端: javaWeb 手动获取请求参数, 需要手动进行数据转换 一个请求对应一个Servlet,造成Servlet类暴增…

【MongoDB】索引 - 复合索引

一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, class: { id: 1, name: "1班" }},{ _id: 2, name: "李四", age: 22, class: { id: 2, name: "2班" }},{ _id: 3, name: "王五…

在C#中创建全局热键

在C#中创建全局热键通常涉及使用Windows提供的平台特定功能。在C#中&#xff0c;您可以使用Windows API的RegisterHotKey函数来创建全局热键。以下是如何创建全局热键的详细步骤&#xff1a; using System; using System.Runtime.InteropServices; using System.Windows.Forms;…

2023年最热门的五大编程技术趋势

2023年最热门的五大编程技术趋势 摘要&#xff1a;本文将介绍2023年最热门的五大编程技术趋势&#xff0c;包括人工智能、区块链、WebAssembly、5G和边缘计算以及自动化。我们将详细讨论这些趋势的当前状态、未来展望以及如何利用这些技术来提高您的编程技能。 一、前言 随着…

linux+python3.6.8+uwsgi+postgresql+django部署web服务器

linuxpython3.6.8uwsgipostgresqldjango部署web服务器 1.查看系统信息2.配置postgresql数据库2-1.安装postgresql数据库2-2.设置密码2-3.修改postgresql数据库配置文件 3.Python虚拟环境激活虚拟环境 4.Django4-1.Python 安装Django4-2.创建Django项目4-3.配置Django 5.uwsgi5-…

解决docker tag打标签时报错:Error response from daemon: no such id

现象&#xff1a; 原因&#xff1a; docker tag时不仅仅要Repository仓库名&#xff0c;也需要原有的tag作为版本号 解决办法&#xff1a; docker tag 原有仓库名: 原有tag值 新的打标名称 问题解决&#xff01;

【vue3/高德地图】实现地图打点/自定义点位图标/地理围栏实现

<template><div class"app-container"><div id"container"></div></div> </template><script setup> import AMapLoader from amap/amap-jsapi-loader; /*在Vue3中使用时,需要引入Vue3中的shallowRef方法(使用s…

响应式编程-Project Reactor Mono 介绍

响应式编程-Project Reactor Mono 介绍 本文以Mono的角度来介绍Reactor编程&#xff0c;Flux的使用同理。 初体验 Web应用 controller 方法在Spring webmvc 和 Spring webFlux下Controller方法实现示例如下&#xff1a; Spring webmvc: GetMapping("/test1") …

【bug-maven】(一)java: 错误: 不支持发行版本 5 (二):java: 错误: 无效的源发行版:15

【bug-maven】&#xff08;一&#xff09;java: 错误: 不支持发行版本 5 &#xff08;二&#xff09;&#xff1a;java: 错误: 无效的源发行版&#xff1a;15 &#xff08;一&#xff09;java: 错误: 不支持发行版本 5 报错截图&#xff1a; 出错原因&#xff1a; 打开Projec…