mysql查询语句之实践篇

news2024/10/7 20:28:45

基础查询语句

完整语法格式如下:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定

-- 创建表
create table stu(
	id int,
	name varchar(20),
	chinese double,
	english double,
	math double
);
-- 插入记录
insert into stu(id,name,chinese,english,math) values(1,'tom',89,78,90);
insert into stu(id,name,chinese,english,math) values(2,'jack',67,98,56);
insert into stu(id,name,chinese,english,math) values(3,'jerry',87,78,77);
insert into stu(id,name,chinese,english,math) values(4,'lucy',88,NULL,90);
insert into stu(id,name,chinese,english,math) values(5,'james',82,84,77);
insert into stu(id,name,chinese,english,math) values(6,'jack',55,85,45);
insert into stu(id,name,chinese,english,math) values(7,'tom',89,65,30);
# 1.最简单的查询,查询所有; *代表所有的列;
select * from stu;
# 2.查具体的列名,则select后面直接跟列名;
select id,name,english from stu;
# 3.去除重复数据; 针对后面多个列,完全相同的时候,去除重复数据;
-- select DISTINCT 列名  from 表名;
select DISTINCT name  from stu;
# 4.ifnull,原因在于英语为null,在mysql里面null+其他数据=null
# ifnull(参数1,参数2) 如果参数1有值,则有参数1;如果参数1位null,则走参数2;
# 查询id,name,总成绩
select id,name,(chinese+ifnull(english,0)+math) from stu;
-- mysql会将 字符串'123'转成数字123,再和100加,加完之后是223
SELECT '123' + 100;
-- 'abc'不能转为数字,只输出100;
SELECT 'abc' + 100;
-- null+数据=null
select null+100;
# 5.别名机制;
# 5.1 列的别名;列名 as '别名'
select id as '编号',name as '姓名', chinese as '语文成绩' from stu;
# 5.2 可以省略as
select id  '编号',name  '姓名', chinese  '语文成绩' from stu;
# 5.3 单引号省略
select id  编号,name  姓名, chinese  语文成绩 from stu;
# 5.4 给表加别名; 一般用在多个表查询的时候,或表名 比较长的情况;mydbstudentscore
select s.id,s.`name`,s.chinese from stu s;
# 5.5 函数可以加别名;
select CURRENT_DATE() 当前日期;


where条件语句查询

-- 创建表
CREATE TABLE stu1 (
  id int,
  name varchar(20),
  age int,
  sex varchar(5),
  address varchar(100),
  math int,
  english int
);
-- 插入记录
INSERT INTO stu1(id,NAME,age,sex,address,math,english) VALUES 
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65);

# 1.查询数学成绩>60分的学生信息;
select * from stu1 where math>60;
# 2.查询年龄不等于20的学生信息;
select * from stu1 where age<>20;
select * from stu1 where age!=20;
# 3.查询年龄在20到45之间的人员信息;
select * from stu1 where age>=20 && age<=45;
select * from stu1 where age>=20 and age<=45;
# 3.2 BETWEEN and方式; BETWEEN 小值 and 大值; 
select * from stu1 where age BETWEEN 20 and 45;
select * from stu1 where age BETWEEN 45 and 20;
# 4.地址是杭州或香港 或南京人员信息
# or ;not in/ in(集合)
select * from stu1 WHERE address='杭州' or address='香港' or address='南京';
select * from stu1 WHERE address='杭州' || address='香港' || address='南京';
select * from stu1 where address in('杭州','香港','南京');
select * from stu1 where address not in('杭州','香港','南京');
# 5.查询英语没考试的人员信息;english null,在mysql里面null不是0;
-- 对于null的数据,不能用=,也不是0
select * from stu1 where english is null;
# 6.模糊查询,like,比较常用;%:表示多个字符;
-- 6.1 查询所有姓马的人员信息;
select * from stu1 where name like '马%';
-- 6.2 查询所有以‘华’结尾的人员信息;
select * from stu1 where name like '%华';
-- 6.3 查询所有名字包含‘德’字的人员信息;
select * from stu1 where name like '%德%';
-- 6.4 查询所有以‘德’开头的人员信息,且名字长度为4的人员;
select * from stu1 where name like '德___';

ordery by排序

-- 创建表
CREATE TABLE stu2 (
  id int,
  name varchar(20),
  age int,
  sex varchar(5),
  address varchar(100),
  math int,
  english int
);
-- 插入记录
INSERT INTO stu2(id,NAME,age,sex,address,math,english) VALUES 
(1,'马云',55,'男','杭州',66,78),
(2,'马化腾',45,'女','深圳',98,87),
(3,'马景涛',55,'男','香港',56,77),
(4,'柳岩',20,'女','湖南',76,65),
(5,'柳青',20,'男','湖南',86,NULL),
(6,'刘德华',57,'男','香港',99,99),
(7,'马德',22,'女','香港',99,99),
(8,'德玛西亚',18,'男','南京',56,65),
(9,'唐僧',25,'男','长安',87,78),
(10,'孙悟空',18,'男','花果山',100,66),
(11,'猪八戒',22,'男','高老庄',58,78),
(12,'沙僧',50,'男','流沙河',77,88),
(13,'白骨精',22,'女','白虎岭',66,66),
(14,'蜘蛛精',23,'女','盘丝洞',88,88);
# 1.按照年龄进行排序; 默认升序
select * from stu2 ORDER BY age; 
select * from stu2 ORDER BY age asc; 
select * from stu2 ORDER BY age desc; 
# 2.按照年龄先降序排序,数学成绩升序排列 ;
SELECT * from stu2 order by age desc,math asc;
# 3.针对所有的成绩做降序排列;
select name,(math+ifnull(english,0)) from stu2 
order by (math+english) desc;
-- 也可以使用别名进行排序;
select name,(math+ifnull(english,0)) 总成绩 from stu2 
order by 总成绩 desc;
-- 只查性别为男的人员信息的总成绩排序
select name,(math+ifnull(english,0)) 总成绩 from stu2 
where sex='男'
order by 总成绩 desc;

在这里插入图片描述

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

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

相关文章

ATFX汇市:美联储年内或仍将加息依次,美指向下空间不大

环球汇市行情摘要—— 昨日&#xff0c;美元指数上涨0.08%&#xff0c;收盘在102.08点&#xff0c; 欧元贬值0.07%&#xff0c;收盘价1.1003点&#xff1b; 日元贬值0.51%&#xff0c;收盘价142.47点&#xff1b; 英镑升值0.28%&#xff0c;收盘价1.2784点&#xff1b; 瑞…

NPM包的安装、更新、卸载

目录 1、下载安装全局包 2、解决全局安装包时的EACCES权限错误 2.1 重新安装NPM 2.2 手动更改npm的默认目录 3、更新从注册表下载的包 3.1 更新本地包 3.2 更新全局安装的软件包 3.3 确定哪些全局包需要更新 3.4 更新单个全局包 3.5 更新所有全局安装的软件包 4、在项…

Zabbix监控系统详解及配置

前言 作为一个运维&#xff0c;需要会使用监控系统查看服务器状态以及网站流量指标&#xff0c;利用监控系统的数据去了解上线发布的结果&#xff0c;和网站的健康状态。利用一个优秀的监控软件&#xff0c;我们可以&#xff1a; 通过一个友好的界面进行浏览整个网站所有的服务…

实战项目ssm权限系统 2-自定义springsecurity组件实现认证授权

一 springsecurity 作用 1.1 springsecurity Spring security是spring家族的一个安全性框架&#xff0c;主要是用来进行用户认证(Authentication)和用户授权(Authorization)的框架。 用户认证&#xff1a;验证用户登录是否合法 用户授权&#xff1a;登录成功后用户具有哪些…

Linux ARM64架构 动态替换 altinstructions

文章目录 简介一、altinstructions节1.1 .altinstructions1.2 .rela.altinstructions 二、内核模块重定位源码分析参考资料 简介 在内核开发中&#xff0c;有时需要对内核代码进行修补&#xff0c;以解决bug、优化性能或引入新功能。替代指令&#xff08;altinstructions&…

云原生K8S------Yaml文件详解

目录 一&#xff1a;K8S支持的文件格式 1&#xff0c;yaml和json的主要区别 2&#xff0c;YAML语言格式 二&#xff1a;yuml 1、查看 api 资源版本标签 2、写一个yaml文件demo 3、创建service服务对外提供访问并测试 4、详解k8s中的port 三&#xff1a;文件生成 1、kubec…

如果你需要使用重试机制,请使用Spring官方的Spring Retry

Spring Retry 是 Spring Framework 中的一个模块&#xff0c;提供了一种简单的方式来在应用程序中实现重试机制。 在应用程序中&#xff0c;如果遇到了一些不可避免的错误&#xff0c;比如网络连接失败、数据库连接失败等&#xff0c;我们通常需要对这些错误进行重试&#xff…

搭建日志服务器Rsyslog

Rsyslog介绍 Rsyslog的全称是 rocket-fast system for log&#xff0c;它提供了高性能&#xff0c;高安全功能和模块化设计。rsyslog能够接受从各种各样的来源&#xff0c;将其输入&#xff0c;输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。 特…

Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播

程序示例精选 QtC实现灯带动画运动位置变换移动跑马灯图片轮播 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC实现灯带动画运动位置变换移动跑马灯图片轮播>>编写代码&…

Vue项目npm run dev 启动报错TypeError: Cannot read property ‘upgrade‘ of undefined

vue项目启动报错 TypeError: Cannot read property upgrade of undefined 由于我的vue.config.js文件 里面的代理target为空导致的 修改&#xff1a; 结果就可以正常运行了 参考原文&#xff1a; vue项目运行时报Cannot read property ‘upgrade’ of undefined错误_cannot r…

【Docker】Docker的应用场景,Docker 的优点,Ubuntu Docker 安装,使用 Shell 脚本进行安装

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

【福建事业单位-资料分析】01 速算技巧-基期与现期

【福建事业单位-资料分析】01 速算技巧-基期与现期 一、速算技巧&#xff08;基于选项的速算&#xff09;1.1 计算类别——截位直除练习总结 二、速算技巧-比较类-分数比较2.1 一大一小&#xff08;一大/一小&#xff09;2.2 同大同小①分子分母都变大&#xff0c;保留两位直接…

智橙PDM系统:图文档与物料数据同时管理编辑系统

在当今快速变化的商业环境中&#xff0c;数字化转型已经成为企业不可或缺的一部分。产品数据的高效管理和协作变得尤为重要&#xff0c;而智橙的PDM系统&#xff08;产品数据管理系统&#xff09;为企业提供了无限协作的全新维度。 无限协作&#xff0c;创新无限 智橙PDM系统瞄…

QListView的使用(正逆序插入)

首先在介绍QListView之前&#xff0c;先说一下QListView和QListWidget的区别&#xff1a; 1、QListView是model&#xff08;模型/视图&#xff09;表格类型&#xff0c;QListWidget它是Item表格类型。 2、QListView使用较复杂&#xff0c;一般需要配合数据模型QAbstractListMod…

【Linux】公网环境下Ubuntu系统SSH远程树莓派

前言 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于恒川的日常汇报系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏C语言初…

Nginx与Tomcat的区别,什么是HTTP服务器(处理静态资源的服务器),什么是处理动态资源的服务器

Nginx和Tomcat都是常用的Web服务器&#xff0c;但它们的主要作用不同。Nginx是一个HTTP服务器&#xff0c;反向代理服务器和通用TCP/UDP代理服务器。它通常用于静态内容、媒体流和负载均衡。在高流量和高并发负载下&#xff0c;Nginx表现更出色&#xff0c;并且能够轻松处理静态…

解决android studio妙明奇妙出现的模拟器

1&#xff0c;查看设备 adb devices 2&#xff0c; adb命令断开指定的设备 要断开ADB与特定设备的连接&#xff0c;可以使用以下命令&#xff1a; adb disconnect <设备ID> 将 <设备ID> 替换为您要断开连接的设备的实际ID。设备ID可以在运行 adb devices 命令…

C语言刷题------(2)

C语言刷题——————&#xff08;2&#xff09; 刷题网站&#xff1a;题库 - 蓝桥云课 (lanqiao.cn) First Question&#xff1a;时间显示 题目描述 小蓝要和朋友合作开发一个时间显示的网站。 在服务器上&#xff0c;朋友已经获取了当前的时间&#xff0c;用一个整数表…

Ansible的安装和配置

安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件&#xff0c;以满足以下要求&#xff1a; 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.2…

电测知识分享——10分钟学会!超火网络应用测试教程来了,火速收藏

在当今的网络应用中&#xff0c;当属以太网最流行&#xff0c;特别是终端电脑的连接几乎是以太网的天下&#xff0c;即使无线网卡最终也是以太网协议。终端网络分为有线以太网和无线WF,目前都形成了IEEE的标准。 今天&#xff0c;我们就来学习一下&#xff0c;1000M BASE-T&am…