oracle 数据库基础知识复习

1. 单表的数据查询

1.1指定字段的数据记录查询

select field1,field2,... FROM  表名 WHERE CONDITION
例:
select t.stuname,t.age,t.sex from STUINFO t where t.stuname='李四';

1.2 查询所有数据

使用通配符“*”,进行所有数据的查询。

select * from STUINFO t where t.stuname='李四';

在实际开发过程中,把需要查询的字段查询处理,用以减轻数据库的压力。

1.3 避免重复数据的查询

select distinct t.sex from STUINFO t;

1.5 实现数学运算的数据查询

  Oracle 的数学运算符:+ - * / %
 例: 
    -- 添加测试数据
	update STUINFO SET salary =1000 
	update STUINFO SET  salary =2000 where stuname='孙悟空'; 
	update STUINFO SET salary =1500     where stuname='小白龙'; 
	commit; -- 提交事务
	
  SELECT t.stuname,salary,salary*12 FROM STUINFO t;
  

1.5 字符串连接符||

Oracle 中利用字符串连接符||(即双竖线)来连接查询结果

SELECT '19 级 3 班-'||stuname||'-同学',salary,salary*12 FROM STUINFO t;

2 条件数据记录的查询

在条件内部定义:

  • 带关系运算符和逻辑运算符的表达式
  • 带 between…and 关键字的条件数据查询
  • 使用 is null 关键字的条件数据查询
  • 使用 in 关键字的条件数据查询
  • 带 like(模糊查询)关键字的条件数据查询

2.1 关系运算符和逻辑运算符的表达式

Oracle 中的关系运算符:>、 >=、 <、 <=、 !=(<>) 、 =
Oracle 中的逻辑运算符:&&(AND)、||(OR)、!(NOT)
在逻辑表达式中,我们一般使用英文表示,如 AND/OR/NOT。

例子:
SELECT stuname,salary,salary*12 FROM STUINFO WHERE salary=1000; 

SELECT stuname,salary,salary*12 FROM STUINFO WHERE salary!=1000;

SELECT stuname,salary,salary*12 FROM STUINFO WHERE salary<>1000;

SELECT stuname,salary FROM STUINFO WHERE NOT(salary>1000 AND salary<2000);

2.2 带 between…and 关键字的条件数据查询

例子:
SELECT stuname,salary FROM STUINFO WHERE salary BETWEEN 1500 AND 2000; 

SELECT stuname,salary FROM STUINFO WHERE NOT(salary BETWEEN 1500 AND 2000);

查询出的结果集包含边界
在实际开发过程中,一般用于对日期类型的数据,进行查询

查询日期函数:
update STUINFO SET enroldate = to_date('2019/9/1','yyyy/mm/dd') where stuname='孙悟空'; 

update STUINFO SET enroldate =to_date('2018/12/1','yyyy/mm/dd') where stuname='小白龙'; 

SELECT * FROM STUINFO WHERE enroldate BETWEEN to_date('2018/9/1','yyyy/mm/dd') AND to_date('2018/12/1','yyyy/mm/dd');

2.3 使用 is null 关键字的条件数据查询

其中空字符串和 null 是两个不同的值,
在使用的时候,需要注意,查询空字符串,
使用”xxx=’’”,而判断是否是 null 值,要使用 is null。

SELECT * FROM t_student WHERE code IS NULL;

SELECT * FROM t_student WHERE code IS NOT NULL; SELECT * FROM t_student WHERE code='';

2.4 使用 in 关键字的条件数据查询

在已知的指定范围内,进行数据的查询。
INSERT INTO t_student(id,name,code) VALUES(3,'Tom',NULL);

INSERT INTO t_student(id,name,code) VALUES(4,'Jack',''); 

commit; --提交事务 

SELECT * FROM t_student WHERE id in(2,4); 

SELECT * FROM t_student WHERE id NOT in(2,4);

2.5 带 like(模糊查询)关键字的条件数据查询

-- 准备数据 
INSERT INTO t_student(id,name,code) VALUES(5,'唐三','001'); 
INSERT INTO t_student(id,name,code) VALUES(6,'白小纯','002'); 
INSERT INTO t_student(id,name,code) VALUES(7,'韩立','003'); 
INSERT INTO t_student(id,name,code) VALUES(8,'林动','004')
commit; // 提交事务 

-- 模糊查询 
只要带有“唐”,会匹配出来
SELECT * FROM t_student WHERE name LIKE '%唐%'; 

以“白”开头 
SELECT * FROM t_student WHERE name LIKE '白%'; 

以“立”结尾 
SELECT * FROM t_student WHERE name LIKE '%立'; 

第一个字符不管,只要第二个字符是“动”,会匹配出来
 SELECT * FROM t_student WHERE name LIKE '_动%';

2.6 排序数据记录

SELECT * FROM table_name ORDER BY field1 排序条件(asc/desc),field2 排序条件(asc/desc) 


SELECT * FROM t_student ORDER BY id DESC;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值