Oracle基础之单表数据查询
假设只有一张表:students(stu_id,stu_name,stu_sex,stu_birthday,stu_score,stu_class)
select语句的一般格式:
select <字段名或表达式列表> from [方案名].<数据表名或视图名> [where <条件表达式>] [group by<分组的字段名或表达式>] [having <筛选条件>] [order by <排序的字段名或表达式> [asc|desc]]
select语句的使用语法:
①select是查询语句必需的关键字。
②from子句是select语句所必需的子句,用于标识从中检索数据的一个或多个数据表表名或试图。
③where子句用于设定检索条件,以返回需要的记录。
④group by子句用于将查询结果按指定的一个字段或多个字段的值进行分组统计,分组字段或表达式的值相等的被分为同一组。
⑤having子句与group by子句配合使用,用于对由group by子句分组的结果进一步限定搜索条件。
⑥order by子句用于将查询结果按指定的字段进行排序。
创建与使用基本查询
- 查询表的全部信息
select * from students;
- 查询表的指定列信息
select stu_id,stu_name,stu_sex from students;
查询表中指定列时,在select后面书写列名,如果多列,之间用逗号隔开。
- 查询表并更改显示的列标题
select stu_id as 学号,stu_name as 姓名,stu_sex as 性别 from students;
在更改显示的列标题时,用as引出要显示的列标题,或者不用as,而在原来列标题的后面输入空格,之后输入要显示的列标题。
创建与使用条件查询
SQL语言中包括的运算符与表达式主要有:算术运算符、比较运算符、逻辑运算符、集合运算符和连接运算符等。
(1)算术运算符
算术运算符主要用来进行加、减、乘、除等算术运算。SQL中常用的算术运算符有:+、-、*、()等。
(2)比较运算符
SQL中常用的比较运算符有:=(等于)、!=(不等于)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)、in(在列表中)、between(介于之间)、like(匹配)等。
(3)逻辑运算符
SQL语言中常用的逻辑运算符有:and(与)、or(或)、not(非)。逻辑运算符的优先顺序为:not>and>or。
(4)集合运算符
集合运算符又称为谓词运算符。常用的集合运算符有:union、intersect、minus。
(5)连接运算符
用来连接多个字段,或者将多个字符串连接起来。
操作符的优先级别:算术>连接>比较>逻辑。
- 查询表中指定行
例:查询“STUDENTS”表中学号为“100001”的学生的全部信息。
select * from students where stu_id='100001';
- 查询不重复的行
例:查询“STUDENTS”表中“STU_CLASS”的所有信息,并使用distinct去除重复的记录。
select distinct stu_class from students;
- 查询表中前若干行
例:查询“STUDENTS”表中前5个学生信息。
select * from students where rownum<6;
- 指定条件查询
例:查询“STUDENTS”表中出生日期在“1997-09-01”以前的男生信息;查询“STUDENTS”表中姓“陈”的女生信息;查询“001”和“002”班入学成绩大于500的学生信息;查询成绩在450~500之间的学生信息;查询所有入学成绩>500或者姓“张”的学生信息。
//查询“STUDENTS”表中出生日期在“1997-09-01”以前的男生信息 select * from students where STU_BIRTHDAY<to_date('19970901','yyyymmdd') and STU_SEX='男'; //查询“STUDENTS”表中姓“李”的女生信息 select * from students where stu_name like'李%' and stu_sex='女'; //查询“001”和“002”班入学成绩大于500的学生信息 select * from students where STU_CLASS in('001','002') and stu_score>500; //查询成绩在450~500之间的学生信息 select * from students where stu_score between 450 and 500; //查询所有入学成绩>500或者姓“张”的学生信息 select * from students where stu_score>500 or stu_name like'张%';
通配符 | 含义 | 示例 | 说明 |
---|---|---|---|
% | 替代0个或多个字符 | stu_name like’李%’ | 查找姓李的,且姓名是任意长度 |
_ | 仅替代一个字符 | stu_name like’李_’ | 查找姓李的,且姓名是2个字 |
如果要查询包含某些特殊字符的字符串,如“%”,“_”等,需要在其前面使用转义字符,转移字符一般使用“\”。
如果要查询“王%”的姓名,则SQL语句为:
select * from students where stu_name like'王\%%' escape '\';
第一个%标识真正的字符,第二个标识通配符。
创建与使用分组查询
- 分组查询数据
例:查询“STUDENTS”表并分班显示人数。
select stu_class,count(stu_id) from students group by stu_class;
数据先分组,分组之后统计个数。count()函数中的参数可以写任何非空的字段或者*,都能正确统计出人数。*代表统计一行一行的记录。
- 分组查询并筛选满足要求的记录
例:查询“STUDENTS”表并分班显示学生人数大于7人的班级。
select stu_class,count(stu_id) from students group by stu_class having count(stu_id)>7;
在分组查询的结果中进行筛选时,使用having关键字书写筛选条件。
- 分组查询时进行排序
例:查询“STUDENTS”表中各个班级的平均成绩并升序显示。
select stu_class ,round(avg(stu_score),2) from students group by stu_class order by avg(stu_score);
order by可以对结果进行排序,默认是升序排列,也可以加ASC代表升序;如果降序排列,使用DESC。
- Oracle基础学习二:表的创建 数据的操作 在VS程序中的查询显示
- Oracle基础知识笔记(4) 简单查询、限定查询、数据的排序
- SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等
- Oracle基础学习二:表的创建 数据的操作 在VS程序中的查询显示
- 数据库(学习整理)----4--Oracle数据查询(基础点1)
- Oracle基础查询(3)
- ORACLE查询表最近更改的数据 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE
- 【python】 python 查询oracle数据生成excel
- ORACLE 数据库表字段查询报错之ORA-00904:invalid identifier
- oracle 基础SQL语句 多表查询 子查询 分页查询 合并查询 分组查询 group by having order by
- oracle插入和查询日期型数据例子
- Oracle中字符型格式的日期数据查询
- ORACLE-用户常用数据字典的查询使用方法
- Oracle编写简单的查询语句,以及限制数据和对数据的排序
- Oracle基础学习五 : PACKAGE(包) 新建包 加入项 修改项 删除项 访问项 查询包 删除包
- Oracle 之——子查询 DDL DML 集合 及其他数据对象
- 解决oracle中lob数据类型查询问题
- Oracle 没有查询数据,但是视图中有
- 基于批量查询服务的基础数据服务server框架
- c#基础数据查询