首先创建一个简单的数据库作为示例数据库,数据库名称为school_db, 里面有三张表 Department_TBL(DNO,DName),Class_TBL(CNO,CName,DNO),Student_TBL(SNO,SName,SSex,CNO)

一 基本查询

基本语法:select (查询列表 |* ) from ( 表列表 )

说明:“ 查询列表 ” 可以是表的字段,表达式,函数。 “ 表列表 ” 可以包含多张表

示例:查询所有学生的基本信息

1Select * from Student_TBL

二 where 条件查询

基本语法:select ( 查询列表 |*) from ( 表列表 ) where ( 限制条件 )

说明:where 关键字后面的限制条件不能包含聚合函数

示例:查询所在班级编号是“003” 的学生的基本信息

2Select * from Student_TBL where CNO=’003’

三 关键字in 的使用

基本语法:select ( 查询列表 |*) from ( 表列表 ) where ( 字段名 ) in ( 值集合 )

说明:in 关键字的作用是查询某一字段是否在一个集合中,一般在 where 语句中使用

示例: 查询学号为 23 , 34 , 35 , 40 学生的信息

3Select * from Student_TBL where SNO in (23,34,35,40)

四 between 和 Not between 的使用

基本语法:select ( 查询列表 |*) from ( 表列表 ) where ( 字段名 ) between||not between 值 1 AND 值 2

说明:判断某个字段的值是否在一个范围之内

示例:查询所有学号大于5 小于 30 的学生的信息

4Select * from Student_TBL where SNO between 5 and 30

五 消除结果集中的重复行

基本语法:select distinct column1,… from ( 表列表 )

说明:去除结果集中跟在distinct 关键字后面所有字段的值相等的记录

示例:查询所有学生的信息, 删除名字相同的多余行

5Select distinct column1,… from Student_TBL

六 返回指定的行数(百分率)

基本语法:select top n [percent](column1,…) from ( 表列表 )

说明:n 为要返回的行数,若含有 percent 关键字则按百分比返回,则此时 n 必须在 0~100 之间,若查询语句中含有 order by 则先对查询结果进行排序,再执行筛选

示例:返回前十名学生的基本信息

6Select top 10 * from Student_TBL

返回前百分之十的学生的基本信息

7Select top 10 percent * from Student_TBL

七 改变查询标题

基本语法:select ‘ 自定义标题 ’=column1,…. From ( 表列表 ) , select column1 ‘ 自定义标题 ’,…. From ( 表列表 ) , select column1 as ‘ 自定义标题 ’,… from ( 表列表 )

说明:改变的只是查询结果的标题,并没有改变表的标题

示例:查询学生的基本信息,SNO , SName , CNO 分别用 “ 学号 ” , “ 姓名 ”,” 所属班级 ” 显示

、这里只使用第三种方法演示了

Select ‘学号 ’ as SNO,’ 姓名 ’ as SName,’ 所属班级 ’ as ‘CNO’ from Student_TBL

八 在查询结果中显示字符串

基本语法:在select 语句中,将增加的字符串用单引号括起来然后和列的名字写在一起,中间用逗号分开

示例:查询所有学生信息,显示的结果的形式是“ 学号 +“ 我的姓名是 +” 性命 + 班级编号 ”

Select SNO,’我的姓名是 ’,SName,CNO from Student_TBL

九 order by 的使用

基本语法:

8select * from table_Name [where..] order by column1 [asc]desc]…

说明:order by 后面可以指定多个列,默认是按升序方式排列的, order by 放在 where 语句之后

示例:查询所有学好大于23 号的学生信息,并按学号的降序排列

9Select * from Student_TBL where SNO>23 order by SNO desc

十 使用Like 实现模糊查询

基本语法:select * from table_Name where column like ( 匹配条件 )

说明:“%” 匹配任意长度的(长度可以为 0 )字符串, “_” 匹配任意单个字符, “[]” :匹配所给定范围或集合中的任意单个字符, “[^]” 匹配所给定的不在所给定的集合或范围中的任意单个字符,通配符或字符串必须用单引号括起来

示例:查询所有姓李的同学地信息

10Select * from Student_TBL where SName like ‘李 %’

查询所有学生名字中第二个字为“ 冰 ” 的同学的信息

11Select * from Student_TBL where SName like ‘_冰 %’

查询所有编号中含有’e,t,y’ 字符的班级信息

12Select * from Class_TBL where CNO like ‘[e,t,y]’

查询所有编号中不含有’e,t,y’ 字符的班级信息

13Select * from Class_TBL where CNO like ‘[^e,t,y]’

十一 使用is null

基本语法:

14select * from table_Name where column is null

说明:查询指定列为输入数据的数据行,通常用在where 语句中

示例:查询还没有分配班级的学生的信息

15Select * from Student_TBL where CNO is null

十二 使用compute 进行计算

基本语法:select * from table_name where 查询条件 compute 聚合函数

说明:用来计算总计或进行分组小计,总计或小计值作为附加行出现在查询结果中

示例:计算在编号为‘001’ 班级的学生的信息并统计该班有多少个学生

16Select * from Student_TBL where CNO=’001’ compute count(*)

十三 使用compute by 分组查询结果

基本语法:select * from table_Name [where..] order by column compute 聚合函数 by column

说明:在使用compute by 之前必须先使用 order by 对要进行分组的列进行排序,注意,在 oerder by 中进行排序的列的数量和顺序必须和 compute by 后的项一样

示例:根据不同班级分组统计各个班级学生的信息

17Select * from Student_TBL order by CNO compute count(SNO) by CNO

十四 使用group by

基本语法:select * from table_name [where…] group by column

说明:在select 子句中使用聚合函数时, group by 计算每组的汇总值,使用 group by 子句时,在 select 子句中出现的列名或者出现在聚合函数中,或者出现在 group by 子句后面,否则会抱错,另外 group by 后面还可以恩 with cube||rollup,

示例:统计每个班级有多少学生,不显示学生的信息,只显示统计信息

18Select CNO,count(SNO) from Student_TBL group by CNO

十五使用having 语句

基本语法:select * from table_name [where …] group by column having …

说明:having 子句用于限定对组或者聚合函数的查询条件,该子句常用于 group by 子句后面,在查询结果分组后对组判断是否满足查询条件,在分组之前可以用 where 语句判断查询条件,使用 where 比使用 having 更有效,因为它先 将不满足条件的行过滤掉,从而减少了要进行分组的行数

示例:分组统计除编号为‘001’ 外所有班级学生的人数

19Select CNO,count(SNO) from Student_TBL group by CNO having CNO<>’001’

十六 子查询

基本语法:

说明:子查询是在查询中包含另一个查询的查询,可以使用子查询代替表达式,自查询只能返回一列数,有时只返回但个值

示例:查询班级人数大于平均班级人数的班级

20Select * from Class_TBL where (select count(*)

21from student where CNO=Class_TBL.CNO)>((select count(*) from Student_TBL)/(select count(*) from Class_TBL))

十七 使用union 运算符合并多个查询结果

基本语法:

22select column1 from table1_name union select column2 from table2_name

说明:所有查询中的列数和列的顺序必须相同,所有查询中按顺序对应列的数据类型必须相同或兼容,如果希望重新排序多个查询结果的合并结果,则在最后的select 语句中使用 order by子句

十八 查询多个表或视图的信息

基本语法:select column1,column2,… from talbe1,table2,…

说明:在涉及多表查询时必须使用where 语句给出多表之间的连接条件,对来自 N 各表或视图查询要写出 N-1 个连接条件

示例:查询每个学生所在的系部的名称,班级的名称和姓名

23Select DName,CName,SName

24from Student_TBL S,Class_TBL C,Department_TBL Dwhere S.CNO=C.CNO and C.DNO=D.DNO

十九 相等连接与自然连接:相等连接是将要连接的列作相等比较的连接,在相等连接列中只保留一个连接列的连接称为自然连接

二十 比较连接:表与表之间的连接不使用“=” 连接,而是使用比较运算符的连接

二十一 自连接就是表与它自己进行连接

二十二 左连接,右连接和全连接

二十三 使用exists :在 where 子句中可以使用 exists 子句,它用于测试跟随的子查询中的行是否存在

oracle查询姓李,oracle 基本知识相关推荐

  1. 查询姓李老师的mysql_day41:MYSQL:select查询练习题

    目录 1.表结构 2.建表和插入数据 #创建班级表 create table class( cid int primary key auto_increment, caption varchar(32 ...

  2. oracle查询列取名,oracle查询列名

    oracle 动态列查询,,oracle查询列名,oracle查询动态sql oracle 动态查询列,查看oracle数据库的表名和列名,oracle查询列名,oracle查询列属性 oracle ...

  3. mysql查询姓李的老师的个数_MySQL 面试题

    MySQL 面试题 一, 建表语句 1, 使用数据库 --USE 数据库名; 2, 建表语句 -- 以一个学生成绩表为例CREATE TABLE test( idintnotnull, namecha ...

  4. SQL经典50查询语句案例_4(4、查询姓“李”的老师的个数)

    SQL经典50查询语句案例_4: 4.查询姓"李"的老师的个数: SELECT COUNT(Tname) FROM teacher WHERE Tname LIKE '李%' 在M ...

  5. oracle+查询主机地址,oracle函数:获取Internet主机名和ip地址

    您可能感兴趣的话题: Oracle 核心提示:oracle函数获取Internet主机名和ip地址 Oracle包utl_inaddr 作用:用于取得局域网或Internet环境中的主机名和IP地址. ...

  6. oracle查询删除时间戳,Oracle查询时间戳,建表时间,新建序列,误删数据

    Oracle的时间戳格式查询如下: SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_TIMESTAMP_FORMAT'. ...

  7. oracle查询当前日期月份,oracle查询截至到当前日期月份所在年份的所有月份

    这篇文章主要介绍了oracle查询截至到当前日期月份所在年份的所有月份,本文通过代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下 下面通过一个查询语句给大家介绍oracle查询 ...

  8. oracle 查询公有同义词,Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)

    一团网资讯 一团资讯 > oracle > Oracle序列(sequence),OracleRUNNUM和Oracle同义词(synonyms)... Oracle序列(sequence ...

  9. oracle 查询条件 if,oracle查询语句if

    oracle语句查询or和andSELECT*FROMPersonsWHERE(FirstName=' (FirstName='Thomas' OR FirstName='William') AND ...

最新文章

  1. type=file的未选择任何文件修改_PDF文件怎样输入到CAD图纸中?懂得这个功能可以快速实现...
  2. GO语言基础map与函数
  3. ZooKeeper--一个具有高可用性的高性能协调服务
  4. Mybatis接口Mapper内的方法为啥不能重载吗?
  5. java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)
  6. SAP ABAP实用技巧介绍系列之 使用simple transformation的mapping功能
  7. Mac OS使用技巧十九:Safari碉堡功能之二查看网页源码
  8. 什么是四路串口服务器?
  9. linux服务器配置与管理_服务器维护实施步骤
  10. docker 主进程 日志_docker 命令 查看启动进程及日志
  11. Quartz.Net 2.0 bate1 使用
  12. 计算机三级之嵌入式系统学习笔记1
  13. python之import子目录文件
  14. AVR 工具指南(一)
  15. Atitit 解析m4a文件的元数据标签音乐名,歌手 专辑 年代等信息 java版本 目录 1.1. 自己解析mp4 m4a结构 1 1.2. 格式返回 1 1.3. /bookmarksHtmlE
  16. 学习爬虫第二天:继续爬公司内部的通讯录
  17. Hive的概述、流程和优化
  18. 软件项目管理期末选择题复习100题(含答案)
  19. 7-6 华氏度转摄氏度(四舍五入)
  20. ucenter php7.0版,UCenter1.5.0UCenter Home1.5Discuz! 7.0 集成安装包

热门文章

  1. 电视剧盘点:10大难以超越的荧屏经典
  2. xbs2009,2010不支持远古2009播放器 解决方案
  3. 服务端备份错误的解决方法,利用fastcopy工具备份
  4. 面试题--JVM面试总结
  5. 上海metro app android,一款让你感动到Cry的地铁App | 地铁通-MetroMan #iOS #Android
  6. 【BZOJ】2140: 稳定婚姻
  7. 电子邮箱品牌中哪个VIP邮箱安全?
  8. 脸上皱纹隐藏健康秘密 看哪里的皱纹最危险
  9. webgl中uniform、varying、attribute的差别
  10. 加速度传感器的量程估算