Oracle数据库基础总结

5 篇文章 0 订阅
4 篇文章 0 订阅

--Oracle是大型关系型数据库

--关系型数据库:用表保存数据,用表描述数据与数据之间关系的数据库。

--表的操作:增,删,查,改

--关系型数据库对表的操作使用SQL语句

*/注意:

1,Oracle查询数据的SELECT语句,FROM子句不能省略。

2,SQL语句不区分大小写

3,SQL语句可以写成一行或多行

4,只能直接使用半角标点符号

5,工作中不建议使用*,查询效率低

*/

--算数运算符:+,-,*,/

--Oracle中+只有加法运算功能,而没有连接符的功能

--查询employees表中所有员工的last_name,salary,年薪:

SELECT

LAST_NAME,SALARY,SALARY*12

FROM EMPLOYEES;

--列别名

/*

1, 列名 列别名

2,列名 AS 列别名

3,Oracle会自动将英文列名变成大写

4, 当列别名区分大小写时,或者别名中包含了特殊字符,

或者列别名为关键字时,需要将列别名放到一对双引号中

5,关系数据库中双引号通常用于表示别名

SELECT

LAST_NAME "USER",SALARY,SALARY*12 AS "Sal"

FROM EMPLOYEES;

*/

--关系数据库中单引号通常用于表示字符串

--连接符:||

SELECT FIRST_NAME||'.'||LAST_NAME AS NAME 

FROM EMPLOYEES;

--DISTINCT关键字:屏蔽查询结果中的重复数据

SELECT DISTINCT JOB_ID,SALARY

FROM EMPLOYEES;

--通常情况下,一个SELECT语句中只能出现一个DISTINCT关键字

--通常情况下,DISTINCT关键字必须出现在SELECT与第一个列之间


--过滤与排序

--过滤:WHERE子句

SELECT 3

FROM 1

WHERE 条件 2 --条件结果类型一定是boolean

--条件为数字类型:

SELECT  LAST_NAME,DEPARTMENT_ID

FROM EMPLOYEES

WHERE DEPARTMENT_ID=50

or

WHERE LAST_NAME='Fay'

or

WHERE HIRE_DATE='7-6月-94'

--条件为日期类型:值必须放到一对单引号中,格式必须为Oracle默认的格式日期(DD-MON-RR)

--比较运算符:>,>=,<,<=,=,!=,<>

--查询employees表中年薪>10000的员工的last_name,年薪

SELECT LAST_NAME,SALARY*12 FROM EMPLOYEES WHERE SALARY*12>100000;

WHERE 年薪>100000;错误:WHERE子句中不能使用别名

WHERE HIRE_DATE>='1-1月-98'

--特殊比较运算符:BETWEEN ...AND... :查询指定范围内的数据(包含边界值)

--IN(值列表):与任意一个值匹配,只能判定是否相等

... WHERE DEPAERTMENT_ID IN (20,50);

--LIKE :模糊查询

/*

1 %: 任意长度的任意字符

2  _ :    一个长度的任意字符

*/

...WHERE LAST_NAME LIKE '%a%';

-- 查询employees表中job_id中包含A_的员工的last_name,job_id

SELECT LAST_NAME,JOB_ID FROM EMPLOYEES WHERE JOB_ID LIKE '%A/_%' ESCAPE '/';

--IS NULL/IS NOT NULL

--NULL:关系型数据库中需要一个与类型无关,表示未知或不确定的值

--逻辑运算符:AND ,OR ,NOT

--AND 优先级大于 OR

--查询employees表中工资在5000-12000之间,并且在20或50号部门工作的员工的last_name,salary,departmnet_id
SELECT LAST_NAME,SALARY,DEPARTMENT_ID
FROM EMPLOYEES

WHERE SALARY BETWEEN 5000 AND 12000 AND DEPARTMENT_ID IN(20,50);

--查询employees表last_name列中包含a(不区分大小写)员工的last_name
SELECT LAST_NAME
FROM EMPLOYEES

WHERE LAST_NAME LIKE '%A%' OR LAST_NAME LIKE '%a%';

--排序:ORDER BY子句
SELECT        3
FROM          1
[WHERE]       2
[ORDER BY 列] 4 --通常情况下,ORDER BY子句出现在SELECT语句的最后
/*
1.升序:使用ASC关键字,默认为升序排序。
2.降序:使用DESC关键字。
*/

--查询employees表中所有员工的last_name,job_id,department_id,salary, 查询结果根据department_id升序排序,salary降序排序。
SELECT LAST_NAME,JOB_ID,DEPARTMENT_ID,SALARY
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID ASC NULLS FIRST,SALARY DESC;

--Oracle认为NULL是最大的。
--SQL Server认为NULL是最小的。

--NULLS FIRST/NULLS LAST:在不影响排序规则的前提下,将NULL值放在结果的最前/最后面。


其它:

Oracle数据库基础++

Oracle数据库基础之单行函数

Oracle数据库基础之组函数




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值