Oracle_SQL 基础知识

来源:互联网 发布:怎么投诉淘宝店铺侵权 编辑:程序博客网 时间:2024/06/05 10:42

基础知识-SELECT语句和条件选择

注意:
测试数据全部在以hr登录的employees以及与它相关的表中存储。

查询当前表的所有信息:

SELECT e.*  FROM employees e

查询工资在5000到10000之前的用户:

SELECT e.*  FROM employees e WHERE e.salary BETWEEN 5000 AND 10000;

查询工作号为FI_ACCOUNT或者PU_CLEARK或者是以S开头的员工信息:

注意:
可使用% 或者_ 作为通配符:
% 代表 0 个或者多个字符.
_ 代表一个单个字符.

SELECT *  FROM employees e WHERE e.job_id IN ('FI_ACCOUNT', 'PU_CLEARK')    OR e.job_id LIKE 'S%';

查询部门号不为100的员工信息:

SELECT *  FROM employees e WHERE e.department_id <> 100;

排序
asc:递增排序
desc:递减排序

按照工资递减排序:

SELECT *  FROM employees e ORDER BY e.salary DESC;

字符串连接
在Oracle中,字符串连接操作符为:||

查询员工信息,并且把员工的 first_name 和 last_name 拼接起来:

SELECT e.employee_id "Employees ID",       e.first_name || ' ' || e.last_name "Employee Name",       from employees;

去除重复行
使用关键字 :distinct

查询所有员工的工资,并且不显示相同工资的行:

SELECT DISTINCT e.salary  FROM employees e;

SQL 一些简单函数

大小写转换函数

全部转化为小写:LOWER
全部转化为大写:UPPER
转化为首字母大写:INITCAP

--转化为小写SELECT lower('ABcD')  FROM dual;--abcd--转化为大写SELECT UPPER('abCd')  FROM dual;--ABCD--首字母大写SELECT INITCAP('abCd')  FROM dual;--Abcd

字符串操作函数

--拼接字符串SELECT concat('hello ', 'world!')  FROM dual;--helloworld!
--字符串截取SELECT substr('ABCD', 1, 2)  FROM dual;--ABSELECT substrb('你好', 1, 3)  FROM dual;--你

说明:
substr:截取字符
substrb:截取字节

--返回字符串的字符数SELECT length('你好')  FROM dual;--2--返回字符串的字节数SELECT lengthb('你好')  FROM dual;--6

数字操作函数

四舍五入:ROUND()

全部舍弃:TRUNC()

取模运算:MOD()

--四舍五入SELECT trunc(45.756),       round(45.632),       MOD(1600, 300)  FROM dual;-- 45 46 100

日期操作函数

显示当前日期

SELECT (SYSDATE)  FROM dual;--2017/7/19 14:40:16

显示当前时间与某一时间的相差时间

SELECT last_name,        --相差天数除以7得到相差周数       (SYSDATE - e.hire_date) / 7 AS weeks,       SYSDATE + 1 AS tomorrow,       e.hire_date + 8 / 24  FROM employees e WHERE department_id = 90;
原创粉丝点击