【数据库系统】单表数据查询
选择表中的若干列:
查询指定列
例:查询全体学生的学号与姓名
select Sno,Sname
from Student;
例:查询学生的姓名、学号和所在系
select Sname,Sno,Sdept
frmo Student;
查询全部列
例:查询全体学生的详细记录
select * from Student;
查询经过计算的值
例:查全体学生的姓名和出生年份
select Sname,2022-Sage
from Student;
例:查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名
select Sname,'Year of Birth:',2014-Sage,lower(Sdept)
from Stduent;
使用列别名改变查询结果的列标题
select Sname (as) NAME,'year of birth:' (as) birth,2014-Sage (as)birthday,lower(Sdept) (as)department
from Student
选择表中的若干数组
消除取值重复的行
select distinct Sno
from SC;
查询满足条件的元组
比较:= ,> ,< ,<= ,!=
确定范围:between and ,not between and
确定集合:(not)in
字符匹配:(not)like
空值:is (not)null
逻辑运算:and,or,not
查询计算机科学系全体学生的名单:
select * from Student where Sdept='CS';
查询所有年龄在20岁以下学生姓名及其年龄
select Sname,Sage
from Student
where Sage<20;
查询考试成绩有不及格的学生的学号
select distinct Sno
from SC
where Grade<60;
注意去重
between and
查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄
select Sname,Sdept,Sage
from Student
where Sage between 20 and 23;
查询年龄不再20~23岁之间学生姓名、系别和年龄
select Sname,Sdept,Sage
from Student
where age not between 20 and 23;
in:
查询CS系,MA系,IS系学生的姓名和性别
select Sname,Ssex
from Student
where Sdept in ('CS'.'MA','IS');或
where Sdept='CS' or Sdept='MA' or Sdept='IS'
查询既不是CS系,MA系,也不是IS系的学生的姓名和性别
select Sname,Ssex
from Student
where Sdept not in('IS','MA','CS');
通配符:
%任意多个字符,_匹配一个字符
查询所有刘姓学生姓名、学号和性别
select Sname,Sno,Ssex
from Student
where Sname like '刘%';
查询姓'欧阳'且全名为三个汉字的学生的姓名
select Sname
from Student
where Sname like '欧阳_';
查询名字中第2个字为‘阳’字学生的姓名和学号
select Sname,Sno
from Student
where Sname like '_阳%';
查询所有不姓刘的学生姓名
select Sname
from Student
where Sname not like '刘%';
空值:
查询缺少考试成绩的学生的学号和课程号
select Sno,Cno
from SC
where Grade is null
逻辑运算符:
and 优先级高于OR,可以使用括号改变优先级
例:查询计算机系年龄在20岁以下的学生姓名
select Sname
from Student
where Sdept='CS' and Sage<20;
order by子句:
例:查询选修3号课程的学生的学号及成绩,查询结果按分数降序排序
select Sno,Grade
from SC
where Cno='3'
order by Grade desc;
例:查询全体学生情况,查询结果按所在系号升序排序,同一系中的学生按年龄降序排列。
select *
from Student
order by Sdept,Sage desc;
聚集函数:
count(*)统计元组个数
sum():计算一列值的总和
avg():计算一列值的平均值
max():求一列中最大值
min():求一列中最小值
查询学生总人数:
select count(*)
from Student;
查询选修了课程的学生人数
select count(distinct Sno)
from SC;
计算1号课程的学生平均成绩:
select avg(Grade)
from SC
where Cno='1';
查询选修1号课程的学生最高分数
select max(Grade)
from SC
where Cno='1';
group by:
group by用于细化聚集函数的作用对象
如果未对查询结果分组,聚集函数将作用于整个查询结果。
对查询结果分组后,聚集函数将分别作用于每个组
按指定的一列或多列值分组,值相等的为一组
例:求各个课程号对应的选课人数
select Cno,count(*)
from SC
group by Cno;
例:查询选修了3门以上课程的学生学号
select Sno
from SC
group by Sno
having count(*)>=3;
having 选择满足条件的组
where作用于表,从中选择满足条件的元组
例:查询平均成绩大于等于90分的学生学号和平均成绩
select Sno,avg(Grade)
from SC
group by Sno
having avg(Grade)>=90
【数据库系统】单表数据查询相关推荐
- SQL查询单表数据之组合(三)
[SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...
- SQL查询单表数据(一)
[SQL从一点一滴分析系列文章]为实际开发中的点点滴滴的总结,从最最简单的SQL 查询 到 综合分析查询 在分析 SQL 时,也会同时分析 mybatis .Hibernate 中的相关操作 点击查看 ...
- MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql
mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...
- oracle单表数据量上亿_MySQL数据库中,数据量越来越大,有什么具体的优化方案么?...
个人的观点,这种大表的优化,不一定上来就要分库分表,因为表一旦被拆分,开发.运维的复杂度会直线上升,而大多数公司和开发人员是欠缺这种能力的. 所以MySQL中几百万甚至小几千万的表,先考虑做单表的优化 ...
- 单表数据量过大处理策略
今天和一个朋友在讨论怎么样应对单表数据量过大,比如一些交易数据,每天都有10W的交易量.没有多久该表的查询,插入速度将变慢,最终将不可用. 对于关系数据库来说,应对单表数据量过大的策略大体上有两种. ...
- MySQL单表数据不要超过500万行:是经验数值,还是黄金铁律?
今天,探讨一个有趣的话题:MySQL 单表数据达到多少时才需要考虑分库分表?有人说 2000 万行,也有人说 500 万行.那么,你觉得这个数值多少才合适呢? 曾经在中国互联网技术圈广为流传着这么一个 ...
- 面试官问单表数据量大一定要分库分表吗?我们用六个字和十张图回答
1 文章概述 在业务发展初期单表完全可以满足业务需求,在阿里巴巴开发手册也建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,请不要在创建表时 ...
- AJAX for Java简单表数据查询实例
AJAX for Java简单表数据查询实例<?XML:NAMESPACE PREFIX = O /> AJAX WebShop 3对Java开发具有良好的支持,同时也提供了各种层次的后台 ...
- 由于单表数据已经达到2000万数据,所以想分表,现假如分1000万为一单表,例有如一两个表:
由于单表数据已经达到2000万数据,所以想分表,现假如分1000万为一单表,例有如一两个表: 表a: id title 1 张三 2 李四 ............ 表b: id ...
最新文章
- java语言修饰符$_Java语言中的修饰符
- Dubbo3.0|阿里巴巴服务框架三位一体的选择与实践
- ./sqlplusSP2-0667: Message file sp1lang.msb not found。SP2-0750: You may need to set ORACLE_HOME t
- 热胀冷缩,但为什么水结冰体积会膨胀?
- elasticsearch date_MySQL数据实时增量同步到Elasticsearch
- HDOJ 1036 Average is not Fast Enough!
- xulrunner弹出窗口不显示解决方法
- 第二十一天 认识一维数组part3
- Nginx Unit 与 LEMUR 新架构
- 转载:ASP.net页面跳转方式三种
- opencv之调取摄像头拍照
- 游戏开发关卡设计(16)
- F	 小名的回答 (奇偶) 湖南师范大学2018年大学生程序设计竞赛新生赛
- PHP剧影评系统的设计与实现毕业设计源码140859
- Conflux CTO 伍鸣博士出席 2019 CAN 大会
- python爬取pexels网站图片
- 记录导出微信聊天记录到硬盘的过程
- android设置不锁屏adb,如何通过ADB锁定Android屏幕?
- 洛谷:P1875 佳佳的魔法药水(有向有环图 + Dijkstra变式)
- 好玩的API调用之---星座运势的API与爬虫爬取