项目五 实现对学生信息的简单查询

项目五 实现对学生信息的简单查询

1,查询数据库中部分字段的信息

使用select语句对表的选择及连接等操作,结构会生成一个临时表,将select结果存放到临时表中

查询数据表中所有字段的值

#格式:(*:表示所有列)
select * from 表名;
#检索出的列是未排序的,其显示是按 mysql 底层的存储顺序进行显示。

查询数据表中部分字段的值

#只查询一个字段
select 字段名 from 表名;
#查询多个字段
select 字段名 1,字段名 2......字段名 n from 表名;
#注意:每个字段名后用逗号隔开,但最后一个字段名后不加逗号。

查询数据表中表达式的值

1#使用计算字段(就是字段之间,或数值之间的表达式)
mysql> select * from cj;
+------+------+------+------+------+
| id   | name | sx   | yw   | yy   |
+------+------+------+------+------+
|    1 | aa   |   80 |   90 |   60 |
|    2 | bb   |   86 |   96 |   66 |
|    3 | cc   |   66 |   90 |   96 |
+------+------+------+------+------+
#查看总成绩
mysql> select name,sx+yw+yy from cj;
+------+----------+
| name | sx+yw+yy |
+------+----------+
| aa   |      230 |
| bb   |      248 |
| cc   |      252 |
+------+----------+
#mysql 支持+ - * / 的基本运算,只是在显示结果,原数据并没有变

(2)#使用拼接字段(将多个值联结到一起构成单个值)
concat 函数使用方法: concat(参数 1,参数 2......参数 n)
#其中参数可以是表中的字段名或者加入的字符串,若为字符串,应用引号引起来
mysql> select concat(name,'(',yw,',',sx,',',yy,')') from cj;
+---------------------------------------+
| concat(name,'(',yw,',',sx,',',yy,')') |
+---------------------------------------+
| aa(90,80,60)                          |
| bb(96,86,66)                          |
| cc(90,66,96)                          |
+---------------------------------------+
#本例中,concat 函数连接了八部分内容,其中四个是字段名,左半括号、右半括号及两个逗号为字符。

定义容易理解的列别名

#格式:
select 字段名  [as]  列标题

mysql> select concat(StuName,'(',StuID,',',StuSex,')') from Student;
+------------------------------------------+
| concat(StuName,'(',StuID,',',StuSex,')') |
+------------------------------------------+
| 张林浩(150101,男)                        |
| 张林浩(150101,男)                        |
| 张林浩(150101,男)                        |
+------------------------------------------+

mysql> select concat(StuName,'(',StuID,',',StuSex,')') as info  from Student;
+-----------------------+
| info                  |
+-----------------------+
| 张林浩(150101,男)     |
| 张林浩(150101,男)     |
| 张林浩(150101,男)     |
+-----------------------+

#起别名时,只显示在临时表中,原表没变。如果别名标题有空格,要用单引号括起来,但如果含_.则不用单引号。

使用查询语句的输出功能

  • select 语句可以从数据表中查询信息,但当不提供库时,就只完成输出功能
#例如:
mysql> select 'aa';
+----+
| aa |
+----+
| aa |
+----+

mysql> select '3*2' as 乘积;
+--------+
| 乘积   |
+--------+
| 3*2    |
+--------+

mysql> select now();	#当前时间
+---------------------+
| now()               |
+---------------------+
| 2022-09-23 15:09:40 |
+---------------------+

2,根据指定条件进行查询

消除结果集中的重复行

#在字段名前加关键字distinct过滤相同值
语法:select distinct|distinctrow column_name [,column_name...]

#例如:查询生源地,去掉结果中的重复行
mysql> select distinct Native from Student;
#当检索多个字段时,必须每个字段的值都一样才认为是重复行
#即 distinct 用于后面的所有字段而不仅是紧跟在其后的字段。

实现有条件的筛选

MySQL中的运算符

image.png

1,where子句的使用

  • 可以使用 where 子句和特定的 操作符来实现选择行的目的。
#语法:
select 字段名 1,字段名 2....字段名 n
from 表名
where 筛选条件;

#案例:查看所有男生的学号,姓名(字符串常量用单引号括起来)
select StuID,StuName,StuSex from Student where StuSex='男';
#between 操作符的使用方法为:
(not)between 表达式 1 and 表达式 2
#表示值在表达式 1 和表达式 2 之间,包含表达式 1 和表达式 2。

#案例:查询所有期末考试成绩在 80-90 之间的同学的成绩。
select * from Score
where ExamScore between 80 and 90;

2,where子句常使用的操作符:

  • and操作符:两个或多个条件同时满足
  • or操作符:满足多个条件中的任何一个即检索成功
  • in操作符:满足多个条件中的一个
  • like 操作符:配合%通配符和_通配符实现模糊查询
(1)#and操作符案例:
mysql> select *from Student where ClassID='mb1501' and StuSex='男';

(2)#or操作符案例(or前后必须是完整的条件)
mysql> select * from Student where Native='河北保定' or Native='河北石家庄'; 

(3)#in操作符案例
in 操作符的使用格式如下:(not) in (1,值 2,值 3....)
#其含义是使用 in 关键字可以指定一个值表,值表中列出所有可能的值,当与值表中的任一个匹配时,即返回 TRUE,否则返回 FALSE。
mysql> select * from Score where CourseID in ('10101','10102');

(4)#like 操作符与%通配符搭配使用(这是模糊查询),当其与%通配符搭配使用时,可实现匹配任意多个任意字符,包含零个字符。
mysql> select * from Student where StuName like '张%';

(5)#like 操作符与_通配符搭配使用
当 like 操作符与_通配符搭配使用时,可实现匹配任意单个字符。
#查询姓名为两个字的李姓同学。
mysql> select * from Student where StuName like '张__';

#注意事项:
1,根据 SQL 的配置方式,搜索可以是区分大小写的。
2,尾空格可能会干扰通配符,可在最后加一个%,或使用函数
3,%不能匹配 null,如使用 like ‘%’ 并不能搜索出结果中有 null 的行
4,不要过度使用,尽可能用其它操作符
5,除非绝对必要,否则不要放在开始处,因为速度最慢
6,小心通配符的位置,否则达不到效果

4、多个操作符时的计算次序

  • 当 where 子句的条件中有多个操作符时,SQL 语言优先组合 and 操作符

  • 解决的办法是将优先组合的条件用括号括起来

mysql> select * from Student where (Native=河北保定’or Native=’河北石家庄’) and Stusex=’男’;
#如果条件语句意思不明确时,可以加入圆括号

3,完成对查询结果的排序

使用一个字段进行排序

#order by排序语句
ORDER BY {col_name | expr | position} [ASC | DESC] , ...

#ORDER BY 子句后可以是一个列、一个表达式或一个正整数。默认是按升序排列,即 ASC,如果想按某一列降序排列,则应指定 DESC。

#例如1:查询Student表中学生的学号和姓名,并按学号升序排列。
mysql> select StuID,StuName from Student  order by StuID[ASC];

#例如2:查询 Score 表中 10101 课程的成绩,并按成绩降序排列
mysql> select * from Score  where CourseID='10101'  order by ExamScore DESC;

#mysql 中的 orber by 子句还可以用非检索的列来进行排序.
#例如3:查询 Student 表中的学生的姓名和性别并按学号升序排列。
mysql> select StuName,StuSex  from Student order by StuID;

#order by 后面如果是正整数表示按检索结果中整数对应位置上的列进行排序。

使用多个字段进行排序

排序的规则是:若检索结果中第一个字不同,则按第一个字段排序,第一个字段相同时,再按第二个字段排序,依次类推。

#使用多字段排序的查询语句的书写方式为:
select 字段名 1,字段名 2......字段名 n
from 表名
order by 字段名 1,字段名 2......字段名 n
#即 order by 子句的各个字段名间用逗号隔开,最后一个字段后不加逗号。

#例如:查询 Score 表中的信息,按课程号降序排列,相同课程号按学号降序排列。
mysql> select * from Score order by CourseID DESC,StuID DESC;

#当 order by 后面有多个字段时,需逐个指定排序方向,即每个待排序字段后都要加关键字 ASC 或 DESC,否则未加关键字的字段将默认为 ASC。

4,实现分页查询的基础

  • LIMIT 子句:主要用于限制被 SELECT 语句返回的行数
LIMIT {[offset,] row_count | row_count OFFSET offset}
#语法格式中的 offset 和 row count 都必须是非负的整数常数,offset 指定返回的第一行的偏移量,row count是返回的行数。值得注意的是初始行的偏移量为 0 而不是 1。

#例如:查询 Student 表中的前三个同学的信息
mysql> select * from Student limit 3;
#使用 limit 子句时,当实际记录数小于指定显示条数时,按实际记录数显示
#例如,“LIMIT 3”表示返回 SELECT 语句的结果集中最前面 3 行,而“LIMIT 5,3”则表示从第6 行开始返回 3 行

ount 都必须是非负的整数常数,offset 指定返回的第一行的偏移量,row count是返回的行数。值得注意的是初始行的偏移量为 0 而不是 1。

#例如:查询 Student 表中的前三个同学的信息
mysql> select * from Student limit 3;
#使用 limit 子句时,当实际记录数小于指定显示条数时,按实际记录数显示


```shell
#例如,“LIMIT 3”表示返回 SELECT 语句的结果集中最前面 3 行,而“LIMIT 5,3”则表示从第6 行开始返回 3 行

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTF题型 SSTI(2) Flask-SSTI典型题巩固

CTF题型 SSTI(2) Flask-SSTI典型题巩固 文章目录 CTF题型 SSTI(2) Flask-SSTI典型题巩固前记1.klf__sstiSSTI_Fuzz字典(网上收集自己补充) 2.klf_2数字问题如何解决了?|count |length都被禁? 3.klf_3 前记 从基础到自己构造paylo…

算法笔记p154最大公约数和最小公倍数

目录 最大公约数辗转相除法证明例子代码实现 最小公倍数代码实现 最大公约数 正整数a与b的最大公约数是指a与b的所有公约数中最大的那个公约数,一般用gcd(a, b)表示a和b的最大公约数。 辗转相除法 设a、b均为正整数,则gcd(a, b) gcd(b, a % b)。即被…

如何突破差旅补助管控盲区,让业务快人一步?

差旅补助一直是个热门话题,在差旅管理中备受关注。然而,由于补助场景分散,无法实现统一管理,以及补助也总是要经过反复核实才能发放等问题,使得差旅补助一直是个难题。 一、差旅补助管理存在以下三个主要痛点&#xff…

leecode1793 | 好子数组的最大分数 | 求给高度矩阵最大值

题目我就不念了,就一个字难理解,给的题总是这么难懂,总感觉出题人的语文是体育老师教的? 还有就是思维转变,才能能好的理解?一味的钻牛角尖死理解,效果不好 思维的转变 >悟性?&am…

机器人运动学参数辨识(DH参数误差标定)

文章目录 0. 前言1. 全微分几何参数误差模型1.1 末端位置全微分1.2 末端姿态全微分1.3 末端位姿全微分 2 机器人运动学参数辨识算法2.1 偏差辨识流程2.2 最小二乘法2.3 机器人定位误差补偿 3 参考文献 0. 前言 用于辨识几何参数误差的方法众多,其中较为常用的是最小…

C语言笔记:函数与程序结构

目录 ACM金牌带你零基础直达C语言精通-课程资料 一.作用域的基本概念 二.函数 1. 函数的定义和使用 2.为什么一定要有函数结构 3.形参与实参 4.函数的声明和定义 5.递归函数 此代码中递归函数执行流程: 练习:求斐波那契数列第n项的值: 欧几里…

Python-GEE绘制DEM精美图片

目录 上传矢量和DEM获取添加颜色条参考文章 先连接上GEE的自己的项目 import ee import geemap geemap.set_proxy(port33210) ee.Authenticate() ee.Initialize(projecta-flyllf0313)上传矢量和DEM获取 使用Google Earth Engine(GEE)和Google Earth Eng…

人外周血单核细胞来源树突状细胞(MoDC)的制备(二)

MoDC的制备 1.外周血单个核细胞的采集 1.1用血细胞分离机采集患者自身的外周血单个核细胞80-100ml; 1.2淋巴细胞分离液密度梯度离心法进一步纯化单个核细胞(PBMC) 。 1.3无血清培养液洗涤2次, 获得纯度在90%以上的PBMC, 细胞数量需达到1-…

HTML学习:图片格式——超链接

一、图片格式 1.jpg格式 概述:扩展名为.jpg 或.jpeg ,是一种有损的压缩格式(把肉眼不容易观察出来的细节丢弃了)。 主要特点:支持的颜色丰富、占用空间较小、不支持透明背景、不支持动态图。 使用场景:对图片细节没有极高要求的场景,例如:网站的产品…

使用Windows远程访问Kali Linux桌面

安装xrdp、xfce4 apt-get install -y xrdp xfce4修改 xrdp 配置文件启用 xfce 桌面 vim /etc/xrdp/startwm.sh修改后文件如下: #!/bin/sh # xrdp X session start script (c) 2015, 2017, 2021 mirabilos # published under The MirOS Licence# Rely on /etc/pam…

Web API 持续集成:PostMan+Newman+Jenkins(图文讲解)

1. Web Api 测试工具选型 目前市场有很多的用于API 测试的工具,如Postman, SoapUI, YApi, HttpRunner等等。 2. 用Postman创建项目 选型做好了,第二步当然是Postman用起来了,创建自己的项目。参照Postman官网的文档。https://learning.get…

【YOLOv5改进系列(2)】高效涨点----Wise-IoU详细解读及使用Wise-IoU(WIOU)替换CIOU

WIOU损失函数替换 🚀🚀🚀前言一、1️⃣ Wise-IoU解读---基于动态非单调聚焦机制的边界框损失1.1 🎓 介绍1.2 ✨WIOU解决的问题1.3 ⭐️论文实验结果1.4 🎯论文方法1.4.1☀️Wise-IoU v11.4.2☀️Wise-IoU v21.4.3☀️…

高性能 MySQL 第四版(GPT 重译)(一)

前言 由 Oracle 维护的官方文档为您提供了安装、配置和与 MySQL 交互所需的知识。本书作为该文档的伴侣,帮助您了解如何最好地利用 MySQL 作为强大的数据平台来满足您的用例需求。 本版还扩展了合规性和安全性在操作数据库足迹中的日益重要作用。隐私法律和数据主…

小小导出,我大前端足矣!

前言 常网IT戳我呀!常网IT源码上线啦!本篇录入技术选型专栏,希望能祝君拿下Offer一臂之力,各位看官感兴趣可移步🚶。有人说面试造火箭,进去拧螺丝;其实个人觉得问的问题是项目中涉及的点 || 热…

BUU [MRCTF2020]套娃

BUU [MRCTF2020]套娃 开题&#xff0c;啥也没有。 查看网页源代码发现后端源代码&#xff1a; <?php //1st $query $_SERVER[QUERY_STRING];if( substr_count($query, _) ! 0 || substr_count($query, %5f) ! 0 ){die(Y0u are So cutE!); }if($_GET[b_u_p_t] ! 23333 &am…

面试算法-61-二叉树的右视图

题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 解 class Solution {public List<Integer> rightSideView(T…

单目测距那些事儿(上) _ 从MobileEye谈起

单目测距那些事儿(上) | 从MobileEye谈起 全面专业的自动驾驶学习资料:链接 前言 在ADAS领域&#xff0c;有个功能叫自适应巡航控制(Adaptive Cruise Control, ACC)。 ACC是一种纵向距离控制&#xff0c;具体包括发现目标车辆、判断目标车辆所在路径、测量相对本车的距离和速…

B007-springcloud alibaba 消息驱动 Rocketmq

目录 MQ简介什么是MQMQ的应用场景异步解耦流量削峰 常见的MQ产品 RocketMQ入门RocketMQ环境搭建环境准备安装RocketMQ启动RocketMQ测试RocketMQ关闭RocketMQ RocketMQ的架构及概念RocketMQ控制台安装 消息发送和接收演示发送消息接收消息 案例订单微服务发送消息用户微服务订阅…

盲盒一番赏小程序开发:神秘惊喜,等你来揭晓

在当下潮流文化中&#xff0c;盲盒以其独特的魅力&#xff0c;正逐渐成为一种流行的娱乐方式。为了满足广大盲盒爱好者的需求&#xff0c;我们决定开发一款盲盒一番赏小程序&#xff0c;为用户带来更加便捷、丰富的盲盒体验。 一、小程序简介 盲盒一番赏小程序是一个集盲盒购…