简单查询

简单查询

1、控制列

简单查询要使用DML中的查询部分支持,对于简单查询的通俗理解就是就是将表中的全部记录都查询出来,但是可以通过语法控制列的显示。

简单查询SQL语法结构:

【②SELECT字句控制所要查询的数据列】SELECT [DISTINCT] * | 列 [别名], 列 [别名],…

【①FROM 控制字句的数据来源】FROM 表名称 [别名];

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZIJomEz-1577802280633)(C:\Users\016322605\Desktop\oracle\捕获51.PNG)]

除了进行基本的查询列之外,简单查询也支持四则运算,可以直接使用列的内容进行四则运算。(定义别名时不建议使用中文)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4E3sQop6-1577802280633)(C:\Users\016322605\Desktop\oracle\捕获52.PNG)]

在进行简单查询的过程之中,还支持数据的连接操作,使用“||”,对于数据的连接操作,考虑两种类型的数据:

  • 普通数字:直接编写(SELECT ename||1 from emp;)

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGfRXe56-1577802280634)(C:\Users\016322605\Desktop\oracle\捕获53.PNG)

  • 字符串: 单引号声明 (SELECT empno||‘hello’ from emp;)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wwlyAeZq-1577802280634)(C:\Users\016322605\Desktop\oracle\捕获54.PNG)]

简单查询中的关键字DISTINCT关键字,主要目的是消除重复内容,重复内容指的是查询出来所有列的内容都重复。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpFyZOck-1577802280634)(C:\Users\016322605\Desktop\oracle\捕获55.PNG)]

2、限定查询(控制行)

如果想要对所选择的数据列进行控制,利用where字句完成,此时SQL语法结构

【③选出所需要的数据列】SELECT [DISTINCT] * | 列 [别名],列 [别名],列 [别名]…

【①确定数据来源】FROM 表名称 [别名]

【②筛选数据行】WHERE 限定条件(s);

SELECT 子句是整个语法最后执行的,但是如果要进行数据筛选,必须要使用若干个条件运算符:

  • 关系运算符:>、<、=、>=、<=、!=(<>);

  • 范围运算:BETWEEN…AND…;

  • 空判断:IS NULL、IS NOT NULL;

  • IN 判断:IN 、NOT IN、exit()(复杂查询);

  • 模糊查询:LIKE、NOT LIKE。

    以上限定符都只能判断一次,如果现在有若干个限定符,那么就需要进行若干个限定符的连接,可以使用逻辑运算符:AND(与)、OR(或)、NOT(非);

    • 与操作表示所有的判断条件都满足时返回真(true)

    • 或操作表示若干个判断条件只要有一个满足就返回真(true)

      以上所给出的判断符号是SQL中的标准支持。

3、关系运算符

范例:查询薪资小于3000的雇员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpbCJakq-1577802280635)(C:\Users\016322605\Desktop\oracle\捕获56.PNG)]

4、逻辑运算符

范例:查询不是办事员,但是工资小于3000 的雇员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XrNgmBZr-1577802280635)(C:\Users\016322605\Desktop\oracle\捕获57.PNG)]

范例:查询出职位是办事员,或者工资大于3000的雇员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qhB9Md2u-1577802280636)(C:\Users\016322605\Desktop\oracle\捕获58.PNG)]

除了AND和OR之外,还可以使用NOT进行求反,即:true变为false,false变为true

范例:查询工资小于等于2000的员工

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SL9lY41k-1577802280636)(C:\Users\016322605\Desktop\oracle\捕获59.PNG)]

5、范围运算

BETWEEN…AND的主要功能是进行范围的查询

语法: WHERE 字段| 数值 BETWEEN 最小值 AND 最大值。(包含边界值)

范例:查询出工资在1500到3000的雇员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HuBWZaP6-1577802280637)(C:\Users\016322605\Desktop\oracle\捕获61.PNG)]

效率问题:使用between…and 是一个运算符,而使用关系与逻辑的组合是两个运算符,所以使用between…and 效率更高。

在Oracle中的所有运算符都不受数据类型的控制,除了数字,也可以使用字符串或者日期进行判断。

日期判断

范例:查询所有在1981年雇佣的雇员信息

  • 范围:1981-01-01到 1981-12-31 按照已有的数据结构通过字符串来描述日期

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egJV3d1E-1577802280637)(C:\Users\016322605\Desktop\oracle\捕获62.PNG)]

6、空判断

null从数据库定义上来讲属于一个未知的数据,任何情况下如果任何一个数字与null进行计算,那么结果恒为null。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpBSO8bE-1577802280638)(C:\Users\016322605\Desktop\oracle\捕获63.PNG)]

null、空、0的区别:

null:表示不知道(例如:电话号码填null 表示有电话号码,但是暂时不知道)

空:表示没有(没有电话号码)

0:表示数字0

在某些数据列上是允许存在有null值的,但是null不能使用关系运算判断,关系运算符判断的是数据,null不是空字符串,也不是数字0.所以在SQL之中只能通过IS NULL来判断为空、IS NOT NULL(NOT 列 IS NULL) 来判断不为空。

范例:查出所有领取佣金的雇员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GseQwz7h-1577802280638)(C:\Users\016322605\Desktop\oracle\捕获64.PNG)]

7、IN操作符(谓词IN)

IN指的是根据一个指定的范围进行数据查询。

范例:查询出雇员编号是7369、7366、7388、9999的雇员信息

①利用关系运算符查找

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UrC1zZ3R-1577802280638)(C:\Users\016322605\Desktop\oracle\捕获65.PNG)]

②利用IN操作符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ETbD8Ds7-1577802280639)(C:\Users\016322605\Desktop\oracle\捕获66.PNG)]

在比较①和②时,发现②不仅短而且性能好。

在使用IN的同时,其实还可以使用NOT IN,但是在使用NOT IN时,如果查询的数据范围之中有null值,则不会有任何结果返回,IN操作无此限制。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QsmkFVhq-1577802280639)(C:\Users\016322605\Desktop\oracle\捕获67.PNG)]

8、模糊查询:LIKE

LIKE可以实现数据的模糊查询操作,如果要想使用LIKE则必须使用如下两个匹配符号:

  • “_”: 匹配任意的以为符号
  • “%”: 匹配任意的符号 (包含匹配 0位、1位、多位) 。

范例:查询所有雇员中以字母A开头的雇员信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q9YCFYJV-1577802280640)(C:\Users\016322605\Desktop\oracle\捕获68.PNG)]

范例:查询所有雇员中第二个字母是M的所有雇员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u0U29Nud-1577802280640)(C:\Users\016322605\Desktop\oracle\捕获69.PNG)]

范例:查询雇员姓名中任意位置上存在有字母A的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oaWmag9s-1577802280641)(C:\Users\016322605\Desktop\oracle\捕获70.PNG)]

关于LIKE的两点说明:

  • 如果在使用LIKE进行限定查询的时候,没有设置任何的关键字,那么表示查询全部;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjArNXfQ-1577802280641)(C:\Users\016322605\Desktop\oracle\捕获71.PNG)]

  • LIKE 可以在任意数据类型上使用

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OcMDDJwa-1577802280642)(C:\Users\016322605\Desktop\oracle\捕获72.PNG)]

虽然所有的数据类型都支持LIKE,但是往往会在字符串上使用,大部分的系统搜索(不包含搜索引擎)功能也都是通过此语句实现的。

9、查询排序

在默认情况下进行数据查询的时候,都会按照自然顺序进行数据排列。用户想要自己来进行排序操作,可以使用ORDER BY子句。

SQL 语法结构:

【③选出所需要的数据列】SELECT [DISTINCT] * | 列 [别名],列 [别名],列 [别名]…

【①确定数据来源】FROM 表名称 [别名]

【②筛选数据行】WHERE 限定条件(s);

【④数据排序】ORDER BY 排序字段[ASC | DESC] ,排序字段 [ASC | DESC] …;

ORDER BY 是在SELECT 子句之后执行,所以ORDER BY 可以使用SELECT 子句定义的别名,而WHERE 子句不可以。

字段排序两种形式(排序可以在任意数据类型上进行,包括字符串、日期):

  • 升序:ASC, 默认不写排序也是升序。
  • 降序: DESC 由高到低进行排序。

范例: 按照工资由高到低进行排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ct36OG77-1577802280642)(C:\Users\016322605\Desktop\oracle\捕获73.PNG)]

除了可以进行单一字段的排序,也可以进行字段的混合排序操作,指的是可以进行若干个字段的排序。

范例:按照工资由高到低排序,如果工资相同,则按照雇佣日期由早到晚排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8Mg3xyU-1577802280643)(C:\Users\016322605\Desktop\oracle\捕获74.PNG)]

范例:查询出所有办事员的编号、职位、年薪,按照年薪由高到低排序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OfLraKHa-1577802280643)(C:\Users\016322605\Desktop\oracle\捕获75.PNG)]

10、总结

1、SELECT 子句控制数据列

2、WHERE子句控制数据行

3、ORDER BY 子句永远最后执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值