关系型数据库管理系统RDBMS
Relational Database Management Systems
面向对象的关系型数据库管理系统ORDBMS
Object Relational Database Management Systems
数据定义语言DDL Data Definition Language
数据操纵语言DML Data Manipulation Language
数据控制语言DCL Data Control Language
主键(Primary Key)约束
外键(Foreign Key)约束
属性值上的约束(Null、Check、Create Domain)
全局约束(Create Assertions)
权限、授权(Grant)、销权(Revoke)
创建触发器(Create Trigger)
封装 Encapsulation  多态性Polymorphism
select */column_name(列名)  from tablename(表名);--检索表 
select  column_name column_heading(列标题)tablename(表名);--显示友好列
select  DISTNICT column_name from tablename;--显示非重复行即检索表列中唯一的值
并置运算符||
for instance: select "Antony"||"Martin" from dual;
the result:    AntonyMartin
select  select_list(选择列) from tablename where condition(条件);--显示特定条件的列
通配符Wild Card Character  --%
定义标记符Position Marker Character --_
for example:
select column_name from tablename where column_name like'%a%a%'
the result:显示包含两个a字母的列
select column_name from tablename where column_name like'_s%'
the result:显示第二个字母为s列
select select_list from tablename where column_name IS NULL;--检索空值的列
select select_list from tablename where column_name ORDER BY column_name ASC(升序)/DESC(降序);
select function_name(函数名) (column_name/'character_expression')from tablename  where condition;
Character函数
UPPER -- 以大写方式显示
LOWER--以小写方式显示
INITCAP--以大写方式显示所指字的首字母(只能用于'character_expression'返回一个值)
LTRIM--自左向右地删除输入串的字符(两个参数'character_expression')
RTRIM--自右向左地删除输入串的字符(两个参数'character_expression')
CONCAT('character_expression1','character_expression2')--将两个字符串并置
SUBSTR('character_expression',number1,number2)--从该函数的number1开始到number2抽取字符
INSTR('character_expression',single_character[单个字符])--返回指定字符在字符串中的位置值
LPAD('number_expression',number,'str')--将'str'左补差
RPAD('numer_expression',number,'str')--将'str'右补差
LENGTH('character_expression')--返回指定字符串的长度
Number函数
ABS-- 返回整形的正值
CEIL--返回大于参数的最小整数
FLOOR--返回数值的整数部分
POWER(num1,num2)--计算num1的num2的乘次幂
MOD(num1,num2)--返回num1除以num2的余数
ROUND(num1,num2)--num1四舍五入后保留num2位小数
TRUNC(num1,num2)--num1截断到num2位小数
for instance:
trunc(129.4576,2)
the result:129.45
trunc(129.4567,2)
the result:100
SQRT(number)--返回number的平方根
Date Functions
ADD_MONTHS('date',number)--显示date加上number后的结果,date中月份不能写成数字
GREATEST('date1','date2')--返回两个日期中较大的一个.
LEST('date1','date2')--返回两个日期中较小的一个.
LAST_DAY('date')--显示本月的最后一天日期
MONTHS_BETWEEN('date1','date2')--返回两个日期之间相隔的月份数('date1'-'date2'得到的值)
NEXT_DAY('date','month')--显示'date'的头一个'month'的日子
数据类型转换(ORACLE3.27)
隐式转换
显式转换
日期格式化函数
TO_CHAR(sysdate,'DD-MONTH-YYYY')--按'DD-MONTH-YYYY'显示系统日期
TO_DATE('date','DD-MONTH-YYYY')--以'DD-MONTH-YYYY'显示函数说明的日期(注意:此处与TO_CHAR的区别,TO_DATE年份显示两位数,而TO_CHAR显示四位数,TO_DATE中'DD-MON-YY'指的是10XX年,'DD-MON-RR'指的是20XX年)
ROUND('date','MONTH'/'YEAR')--指日期舍入到月/年的第一天
TRUNC('date','MONTH'/'YEAR')--指日期截断到月/年的第一天 ,到六就算过半
TO_NUMBER--将CHAR或VARCHAR数据类型转换成NUMBER数据类型
NVL(value,substitute)--列中所有空值由值substitute替代
COALESCE(exp_name1,exp_name2...exp_n)--返回前一个.
条件子句
IF boolean_expression/sql_statement/statement_block
ELSE boolean_expression/sql_statement/statement_block
CASE column_name
WHEN condition
THEN statement1
ELSE statement2
END
查询多表中数据
SELECT table1.column_name,table2.column_name  FROM table1,table2 WHERE table1.column1 JOIN_OPERATOR table2.column2

SELECT table_name.column_name
FROM table_name
CROSS JOIN table_name
/NATURAL JOIN table_name
JOIN table_name USING column_name
/JOIN table_name ON(table_name.column_name JOIN_OPERATOR table_name.column_name)
/LEFT JOIN /RIGHT JOIN/OUTER JOIN table_name
ON (table_name.column_name JOIN_OPERATOR table_name.column_name)
等值联接 EQUIJOIN
非等值联接 NONEQUIJOIN
自然联接NATURAL JOIN
交叉联接CROSS JOIN
自联接SELFF JOIN

EQUIJOIN
SELECT column_name FROM table1 JOIN table2
ON table1.ref_column_name = table2.ref_column_name;
SELECT table1.column_name,table2.column_name
FROM table1,table2
WHERE table1.column1 = table2.column2;--显式实现
NONEQUIJOIN 联接其于多个表时,不使用等号.
NATURALJOIN 基于两个表的一个或多个同名列的操作.
如果两个表有同名列,就用USING子句
for instance:
select cEmployeecode,vFirstName,nAnnualSalary,nYear From Employee JOIN AnnualSalary USING(cEmployeecode);
外部联接
SELECT column_name,column_name... FROM table_name LEFT/RIGHT/FULL OUTER JOIN table_name
ON table_name.ref_column_name join_operator table_name.ref_column.name
LEFT OUTER JOIN --返回第一个表所有行和第二个表的匹配行.
RIGHT OUTER JOIN --返回第二个表所有行和第一个表的匹配行.
FULL OUTER JOIN --返回二个表所有行
自联接用于联接在同一个表内的行.表的某一行与同一个表中的其他行相关联.

多行函数/组合函数
AVG --返回N个值的平均值 SELECT AVG(column_name)FROM table_name WHERE condition;
SUM--返回N个值的和 SELECT SUM(column_name)FROM table_name WHERE condition;
MAX--返回一个列的最大值 SELECT MAX(column_name)FROM table_name;
MIN--返回一个列的最小值 SELECT MIN(column_name)FROM table_name;
COUNT--返回行数 SSELECT COUNT(column_name)FROM table_name WHERE condition;
STDDEV--返回一组值的标准偏差 SELECT STDDEV(column_name)FROM table_name;
VARIANCE--返回一组值的方差 SELECT VARIANCE(column_name)FROM table_name;

GROUP BY子句
SELECT column_name1,column_name2
FROM table_name
WHERE search_condition
GROUP BY group_expression(分组列名)
HAVING search_condition

子查询
SELCET outer_select_list
FROM outer_table_name
WHERE expression(SELECT inner_select_list FROM inner_table_name);

WITH 子句
for example:
WITH
EMP_SAL AS(SELECT cEmployeecode,SUM(nMonthlysalary)AS EMP_TOTAL FROM Monthlysalary GROUP BY cEmployeecode)
SELECT*FROM EMP_SAL WHERE EMP_TOTAL>(SELECT AVG(EMP_TOTAL)
FROM EMP_SAL);
相关子查询
SELECT outer_select_list FROM outer_tablename alias
WHERE expression(SELECT inner_select_list FROM inner_tablename
WHERE column_name=alias.column_name);
相关DELETE
DELETE FROM table1 alias1 WHERE expression
(SELECT column FROM table2 alias2
WHERE alias1.column=alias2.column);

创建表和SQL一样
更改表
ALTER TABLE tablename ADD
(columnname datatype [DEFAULT expression]);
修改列
ALTER TABLE tablename MODIFY
(columnname datatype [DEFAULT expression]);
撤消列
ALTER TABLE tablename DROP COLUMN columnname;-- 一次只能撤消一列,必须保证表至少还有一列.
重命名表
RENAME old_table_name TO new_table_name;
撤消表
DROP TABLE table_name;
更新表
UPDATE tablename
SET columnname=value
WHERE condition;
删除表中行
DELETE table_name WHERE condition;--用此方法能恢复.
TRUNCATE TABLE table_name;--用此方法无法恢复.
合并行--MERGE
MERGE INTO table_name table_alias
USING (table/sub_query/view)
ON(condition_join_exp)
WHEN MATCHED THEN
UPDATE SET
col_name1=Col_Name1,
col_name2=Col_Name2
WHEN NOT MATCHED THEN
INSERT (col_list)
VALUES(col_values);

约束
CREATE TABLE table_name(col1 data_type(width),col2 data_type(width), CONSTRAINT constraint_name
 PRIMARY KEY/UNIQUE/CHECK/NOT NULL(col1_name)
[(FOREIGN KEY(col1_name)REFERNCES table_name1(Col_name1));]

添加约束
for instance:
ALTER TABLE candidate ADD CONSTRAINT fke_001 FOREIGN KEY(cEmployeecode) REFERENCES Employee (cEmployeecode);
ALTER TABLE candidate MODIFY (cEmployeeCode CONSTRAINT nke_001 NOT NULL);

撤消约束
ALTER TABLE table_name DROP CONSTRSINT constraint_name;
禁用和启用约束
ALTER TABLE table_name DISABLE/ENABLE CONSTRSINT constraint_name;
级联约束
ALTER TABLE table_name DROP(col)CASCADE CONSTRAINTS;

显式事务
SQL statement1;
SQL statement2;
COMMIT;--保证statement1,statement2所做的修改持久有效.
隐式事务
SHOW AUTOCOMMIT
SET AUTOCOMMIT ON--打开
SET AUTOCOMMIT value--设定对多少个语句有效.
回滚事务(9.13)
 SQL statement1;
SQL statement2;
ROLLBACK;--丢弃自上一个COMMIT语句执行以来所做的数据修改.
保存点
 SQL statement1;
SAVEPOINT savepoint_name;
SQL statement2;
ROLLBAKC TO savepoint_name;

创建视图
CREATE [FORCE|NOFORCE]VIEW view_name[alias]
AS SQLQuery
[WITH CHECK OPTION [CONSTRAINT constraint_name]]
[WITH READ ONLY  [CONSTRAINT constraint_name]];
更改视图
CREATE OR REPLACE VIEW view_name
AS subquery;
重命名视图
RENAME old_view_name   TO new_view_name;
撤消视图
DROP VIEW view_name;

Top-n分析法
SELECT ROWNUM,columnlist
FROM(SELECT columnlist FROM tablename ORDER BY Top-n_columnname)
WHERE ROWNUM<=N;

创建序列
CREATE SEQUENCE sequence_name
INCREMENT BY value
START WITH value
[MAXVALUE value|NOMAXVALUE]
[MINVALUE value|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE|NOCACHE];

更改序列
ALTER SEQUENCE sequence_name
INCREMENT BY value
START WITH value
[MAXVALUE value|NOMAXVALUE]
[MINVALUE value|NOMINVALUE]
[CYCLE|NOCYCLE]
[CACHE|NOCACHE];

NEXTVAL和CURRVAL
for instance:
insert into college (cCollegecode,cCollegeName)values(EmpID_seq.nextval,'Scott Christian College');
select EmpId_seq.currval from dual;
撤消序列
DROP SEQUENCE sequence_name;

创建索引
CREATE[UNIQUE]INDEX index_name
ON table_name(column1,column2);

确认索引
SELECT index_name FROM USER_INDEXS WHERE table_name='EMPLOYEE';

撤消索引
DROP INDEX index_name;

创建公共同义词
CREATE PUBLIC SYNONYM synonym_name
FOR object_name;
创建私有同义词
CREATE SYNONYM synonym_name
FOR object_name;
撤消同义词
DROP SYNONYM synonym_name;

显示同义属性
DESC synonym_name;

创建用户
CREATE USER user
IDENTIFIED BY password;
授予用户访问权(12.5)
GRANT privilege[CREATE SESSION /TABLE /VIEW /SEQUENCE]
TO user;
GRANT object_priv(columns)
ON object
TO user/PUBLIC--所有用户
WITH GRANT OPTION;

修改用户密码
ALTER USER user
IDENTIFIED BY password;

PASSWORD;
OLD PASSWORD:password;
NEW PASSWORD:password1;
RETYPE NEW PASSWORD:password1;

撤消用户
DROP USER user;

废除用户访问
REVOKE privilege
FROM user/PUBLIC;

REVOKE privilege
FROM user/PUBLIC
CASCADE CONSTRAINTS;--除去与指定对象有关联的完整性约束

创建角色
CREATE ROLE role;

CTEATE ROLE role
IDENTIFIED BY password;

角色分配密码
ALTER ROLE  role
IDENTIFIED BY password;

角色授予权限
GRANT privilege
TO role;

角色授权用户
GRANT role
TO user;

SET ROLE NONE;--冻结一个用户

撤消角色
DROP ROLE role;

替代变量--&
DEFINE/UNDEFINE
VERIFY

SET VERIFY ON
select vFirst_name from employee where cemployeecoede=&emp_cod;

COLUMN(14.10)--格式化
COL[UMN] column_name[option]

BREAK--生成报表,防止重复值
BREAK ON column_name;

TTITLE/BTITLE--生成页眉和页脚
TTITLE[text|OFF|ON]
BTITLE[text|OFF|ON]

DESCRIBE
[schema.]--对象模式
object
[@connect_identifier]--数据库连接名

COMPUTE--计算和打印概要结果
[function[LABEL]text]
OF{expr/column/alias}
ON{expr/column/alias|REPORT|ROW}

ORACLE 8023学习总结相关推荐

  1. oracle菜鸟学习之 分析函数-排序

    oracle菜鸟学习之 分析函数-排序 排序函数 1.row_number:返回连续的排序,无论值是否相等 2.rank:具有相等值得行排序相同,序数值随后跳跃 3.dense_rank:具有相等值得 ...

  2. oracle入门学习(3) 所用的学习环境介绍与设置

    oracle入门学习(3) 原文见我的QQ空间:http://user.qzone.qq.com/284648964?ptlang=2052 由于原文是写在我的QQ空间,文章转过来的过程中造图片丢失, ...

  3. oracle buffer block,8 Oracle深度学习笔记——BUFFER CACHE深入一

    8.Oracle深度学习笔记--BUFFER CACHE深入一 最近项目一直和ORACLE死磕,感觉总是找不到出口,只能多看书少说话了. 先记录多少是多少吧! BUFFER CACHE在ORACLE的 ...

  4. oracle数据库的model,Oracle 11g学习笔记–model子句

    Oracle 11g学习笔记–model子句 oracle 10g中新增的model子句可以用来进行行间计算.model子句允许像访问数组中元素那样访问记录中的某个列,这就提供了诸如电子表格计算之类的 ...

  5. oracle权限培训,Java培训-ORACLE数据库学习【2】用户权限

    查询用户拥有的权限: 1.查看所有用户:select *from dba_users;select *from all_users;select *from user_users; 2.查看用户或角色 ...

  6. oracle分区表学习及应用

    oracle分区表学习及应用 -- Create table(创建分区表) create table BILL_MONTHFEE_ZERO (   SERV_ID             NUMBER ...

  7. Oracle RMAN 学习

    Oracle RMAN 学习:三思笔记 1 进入rman Rman--物理备份(结构/数据) 1 本地db Cmd set oracle_sid=orcl 1 rman target / Rman&g ...

  8. oracle菜鸟学习之 复杂的更新语句使用

    oracle菜鸟学习之 复杂的更新语句使用 实例与答案 问题:表T1里有a,b,c...N个字段,表T2里有a,b,c三个字段,然后想在T1中"c"与表T2中"c&quo ...

  9. oracle创建自身连接,oracle菜鸟学习之 自连接查询实验

    oracle菜鸟学习之 自连接查询实验 实验表的创建 表字段说明: id:员工编号 name:员工名字 ano:管理人员编号 create table admin(id varchar2(4),nam ...

  10. Oracle 10g学习笔记(一)

    前言 很不好意思的坦白本人是刚刚学习oracle的菜鸟,以下内容是节取的书中一些值得注意的事项,因为只涉及oracle最初级的知识,并没有太深的内容,希望各位oralce高手们能够帮忙指点指点. Or ...

最新文章

  1. 1.1 内存的四个分区
  2. 进程守护系统,你懂吗?
  3. php7 魔术引号,PHP魔术引号所带来的安全问题分析
  4. mongodb安装_Windows系统安装运行Mongodb服务
  5. linux svn 自动部署,linux下svn安装和自动部署
  6. linux系统md5sum命令用不了,Linux中md5sum命令起什么作用呢?
  7. AC日记——红色的幻想乡 洛谷 P3801
  8. Spring Boot Restful框架搭建和使用【持续更新中】
  9. python计算并返回任意多个整数的和_利用Python的多重处理方法计算一个长输入lin的整数和...
  10. 游戏筑基开发之二进制文件操作的那点事儿(C语言)
  11. OSI七层参考模型、TCP/IP参考模型、数据封装与解封装、TCP三次握手四次挥手及面试题
  12. 【渝粤教育】国家开放大学2018年秋季 0689-21T老年心理健康 参考试题
  13. 通过一个工具类更深入理解动态代理和Threadlocal
  14. 中医药古文献语料库设计与开发研究
  15. 马拉车算法(Manacher's Algorithm)
  16. 怎样做自媒体视频剪辑赚钱?
  17. BUUCTF RE WP31-32 [WUSTCTF2020]level1、[GWCTF 2019]xxor
  18. 五个值得推荐的英语学习APP,你用过哪些
  19. vue 存取、设置、清除cookie
  20. cpp实现直线的DDA算法

热门文章

  1. 鼠标自动不停地按右键
  2. 树莓派结合英特尔神经计算棒二代(NCS2)的openvino包部署人工智能应用
  3. 计算机《画图》教案学生状态,《初识“画图”》教案设计.doc
  4. mac格式化固态为exFAT格式
  5. 在Flask中上传本地图片到服务器
  6. 课程体系包括哪些要素_未来学校的课程体系
  7. Windows系统重装教程
  8. mt4双线macd_手机版MT4双线MACD设置视频教程
  9. 网易2021校招笔试题节选个人解答(题目来源:牛客)
  10. oracle 更改SLA状态,Oracle EBS SLA 详解