【数据库】Oracle数据库学习笔记

Oracle数据库

!tip

当我们学习一个新知识的时候,往往是先学会怎么用,然后再使用的过程中慢慢理解原理,这样也许不失为一种高效的学习方式

数据库语言的分类

数据库语言一般分为四种

  • DDL:数据库定义语言:create、drop
  • DML:数据库操作语言:insert、update、delete
  • DQL:数据库查询语言:select
  • DCL:数据库控制语言:grant、revoke

!warning

在数据库语言中,对大小写是不敏感的

Select语句的用法

sql 复制代码
select column1,column2 from table1; //查询表中某几个列的数据
select * from table2; //查询表中所有列的数据

Order by子句

sql 复制代码
select * from table1 order by id ASC; //查询结果根据id排序,其中ASC表示升序,DESC表示降序(不加ASC也默认是升序)
select * from table1 order by id ASC NULLS FIRST;//如果出现了null,就将所有带有null的放到前面

Distinct子句

sql 复制代码
select distinct column1 from table1; //过滤掉了column1中重复项后输出

Where子句

sql 复制代码
select * from table1 where id = 1; //查询id为1的数据
select * from table2 where id = 1 and column1 = 'alice'; //查询id为1并且某一列是alice的数据
select * from table3 where id between 10 and 60; //查询id在10到60之间的数据
select * from table3 where id in(1,3); //查询id为1或者id为3的数据
select * from table4 where column1 like 'alic%'; //%是一个通配符,查询column1中值为alic开头的数据

And和Or子句

  • And子句在上面介绍过,表示两个条件同时满足
  • Or字句表示两个条件满足一个即可
  • 二者可以结合使用,可以多次使用

Fetch子句

FETCH 子句在 Oracle 中可以用来限制查询返回的行数,但仅能在12c以上版本使用

sql 复制代码
select * from table1 order by score fetch next 5 rows only; //获取前五行内容,其中的 next ... rows 可以替换为 first ... row
select * from table2 order by score fetch next 5 rows with ties; //如果前五行之后有并列第五的,也会包含在内
select * from table3 order by score fetch next 5 percent rows only; //查询前5%
select * from table4 order by score offset 10 rows fetch next 5 rows; //跳过前10之后的五行,实际上是11~15行

In子句

基本用法上面已经介绍过了,这里说明一下还可用not in 以及执行子子语句

sql 复制代码
select * from table1 where id in(
    select id from table1 where column1 = 'alice'
); //先执行里面的语句筛选出id,然后再进行外部的查询,查找id在in的范围里面的数据

Like子句

前面已经有过样例了,这里介绍几个通配符

  • % 代表0个或多个字符 alic%
  • _ 代表一个字符 alic_
  • charlist 字符表中的任意一个字符 abclice 搜索alice blice clice
  • !charlist或者\^charlist 不在字符表中的任何一个字符 ab 排除alice blice
相关推荐
滕州市燕猫虎计算机科技工作室个体工商户17 分钟前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
唠点键盘之外的1 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨1 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
别动我齐刘海1 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
ly76891 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉1 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10243 小时前
不会写复杂SQL怎么办?
数据库·sql
xier_ran3 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
执笔为剑3 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
江湖有缘3 小时前
Docker实战 | 使用Docker部署rmoments社交平台
jvm·docker·oracle