ORACLE SQL 总结

作者:杨裙
本次任务完成时间:2019年4月7日
开发工具与关键技术:Oracle sql*plus 、 PLSQL Developer
ORACLE SQL基础
1、空值是无效的,不是空格或者0,当需要计算的时候,其含有空值,则需用‘NVL’来转换,否则计算出来的结果也为空。
2、对于列名,可以加AS,也可以直接省略,可以使用双引号,也可以在字段后面直接写,如果不加双引号系统会自动把小写的字母转换成大写的字母。
3、拼接符‘||’会把两个字符连接在一起,或列与列,用来合成一个列。
4、当查询出重复行可以用‘DISTINCT’来去除重复行,只能把其放在第一位置。
以上例子如图:
在这里插入图片描述二、过滤和排序
1、WHERE 子句紧跟在FROM子句的后面,可以用WHERE子句进行过滤和筛选,WHERE的
执行顺序在FROM的后面,首先执行完FROM子句之后,WHERE子句紧跟着执行。
2、比较运算操作符(BETWEEN…AND,IN,LIKE,IS NULL)。IN等于查询出结果的任意一个,它跟OR的结果差不多;其中‘%’是代表零个字符或多个字符,‘_’代表一个字符。‘ESCAPE’:转义符;
3、ORDER BY子句排序:其中升序为‘ASC’,降序为‘DESC’。ORDER BY子句的执行顺序永远在最后,当存在多个列进行排序时,其排序顺序根据其前一个列进行排序。当要把列进行排序时,可以把查询的字段用数字1,2…等代表或者直接根据要排序的字段进行排序,
当要排序的字段在SELECT子句中没有查询出来,也可以进行排序,升序排序可以省略不写。
以上例子如图:
在这里插入图片描述
ORACLE SQL函数
1、大小写控制函数(LOWER,UPPER,INITCAP);
2、字符控制函数(CONCAT,SUBSTR,INSTR,LENGTH,LPAD,RPAD,TRIM,REPLACE)。对于字符控制函数
CONCAT:可以用来进行字符与字符的拼接,相当于用拼接符‘||’;
SUBSTR:截取字符,其中第一个数字代表从哪个开始,第二个代表截取多少个字符;
INSTR:计算指定字符的索引位置;
LENGTH:计算字符串的长度;
LPAD:左填充,RPAD:右填充;
TRIM:可以去空格,但也可以去字符;
REPLACE:可以使用指定的字符来替代字符串中的字符;
在这里插入图片描述 ORACLE SQL日期函数
一、对于日期,只能进行减法运算,不能进行加法运算,也可以用‘TO_CHAR’ 或者‘TO_DATE’对日期进行转换,同时可以利用日期函数对日期进行操作(MONTHS_BETWEEN、ADD_MONTHS、NEXT_DAY、LAST_DAY、ROUND、TRUNC)。如果只想单独获取年或月或日可以利用‘TO_CHAR’进行截取,还可以利用‘EXTRACT’来截取。‘TO_CHAR’和‘TO_DATE’两者不能混用,否则会
报错,当要求把字符串日期转变成日期格式的时候,就要用‘TO_DATE’,‘TO_CHAR’函数是对日期的转换,如图:
1、对日期字符的操作:
在这里插入图片描述2、TO_DATE,TO_CHAR
在这里插入图片描述
3、注意:字符串转换成日期格式时,对于‘小时’的写法,系统默认是24小时如果在写时间格式的时候,没有写24那么会报错:
在这里插入图片描述
ORACLE SQL分组函数
1、组函数的类型(COUNT,SUM,MAX,MIN,AVG)。
2、GROUP BY 子句用来进行分组,可以把数据分成若干个小组。注意:在查询列表中所有未包含在组函数的字段在GROUP BY子句中必须写,否则会报错,但包含在GROUP BY子句中的列不一定要包含在查询列表中。
3、过滤分组:HAVING子句紧跟在GROUP BY 子句后,有HAVING子句前面一定要有GROUP BY,但有GROUP BY 不一定有HAING。可以在HAVING子句中使用组函数,但不能在WHERE子句中使用组函数。
4、组函数忽略空值,但‘NVL’函数使分组函数无法忽略空值。
以上例子如图:
在这里插入图片描述ORACLE SQL查询
一、多表查询
1、多表连接:笛卡尔集,当两张表连接在一起,没有写连接条件,那么就会出现两张表的所有字段相乘,CROSS JOIN :叉集和笛卡尔集的效果相同,如图:
在这里插入图片描述
2、等值连接:两张表的值是相等的,有两种写法,如图:
在这里插入图片描述3、左连接和右连接(外连接)其实就是反过来,第一种写法直接在左或右直接加‘(+)’符号就行,当符号在左边时为右连接,反之符号在右边时为左连接。第二种‘SQL1999’的写法,左连接直接写‘LEFT (outer)JOIN’,右连接直接写‘RIGTH (outer) JOIN’,外连接可以查询不满足连接条件的数据,如图:
在这里插入图片描述4、自然连接和USING子句创建连接。自然连接:会把两个表相同的列连接起来,创建等值连接,如employees 和departments 两张表,相同的列有两个,所以相同两个列会自动连接起来。join 和 using子句经常同时使用,using子句可以在满足多个条件时进行选择,指定其列,如图:
在这里插入图片描述 5、满外连接:其满外连接会返回两个表满足的连接条件外还会返回两个表不满足的条件,满外连接用关键词:FULL (OUTER) JOIN …ON…

二、子查询
1、子查询查询出来的结果给主查询使用,当子查询的结果返回多个时,会出现错误,如图:
在这里插入图片描述
3、 如果子查询返回的是多个值,那么就要用(IN,ANY,ALL)。用IN代表列表中的任意一个值;ANY代表和子查询返回的某一个值比较;ALL代表和子查询返回的所有值比较。

ORACLE SQL DDL语言
1、创建和管理表:创建数据库表(CREATE TABLE),更改表的结构(ALTER TABLE)、添加、删除、修改列长度,删除表(TRUNCATE、DROP),创建索引(CREATE INDEX)。创建表的时候表名必须以字母开头,只能在1-30个字符之间,可以用的字符为‘_’、‘$’、‘#’和0-9,a-z,创建表名时不能重复,下面是对于DDL数据定义语言的所有展示如图:
在这里插入图片描述2、索引:索引被删除或损坏,不会对表产生影响,其影响的只是查询的速度;通过指针加速 Oracle 服务器的查询速度;在删除一个表时,所有基于该表的索引会自动被删除;
在这里插入图片描述
ORACLE SQL DML语言
1、DML(数据操纵语言):可以添加数据到数据库,修改数据库中的数据,删除数据库中的数据,查询数据。当插入数据时,每次只能插入一条数据。对于数据操纵语言,如下图:
在这里插入图片描述2、约束:约束是一种在创建表的时候进行添加的约束,如下五种约束:NOT NULL(不为空约束),UNIQUE(唯一性约束),PRIMARY KEY(主键约束),FOREIGN KEY(外键约束),CHECK(检查性约束)。NOT NULL:其只能作用在列级上,同时也比较特殊,可以在列级写多个非空约束,NOT NULL也是唯一一个可以进行修改的约束;其它约束只能写一个约束,同时也不能进行修改,只能添加或删除约束,见如下图:
在这里插入图片描述3、序列的创建,如图:
在这里插入图片描述
ORACLE SQL DCL语言
1、创建用户可以在安装数据库的时候创建,也可以在PLSQL Developer这里创建,用户本人还可以进行修改其密码。不同的对象具有不同的权限,对象的拥有者拥有所有的权限,对象的拥有者可以向外分配权限,使其拥有与对象拥有者一样多的权限,而且具有很多数据库权限(修改、删除、执行、索引、更新等),当赋予其它用户权限的时候,还可以收回权限,收回权限的关键字:REVOKE,关于用户的权限如下图:
在这里插入图片描述ORACLE 日期的扩充
1、日期的转换除了‘TO_CHAR’和‘TO_DATE’的转换和截取外,还有EXTRACT和CAST两个课外对日期同样可以进行转换和截取,第一个EXTRACT它可以对日期进行截取,然后得到想要的年、月、日,第二个CAST它是对日期的转换和数字类型的转换,而且也较简单。EXTRACT:它的用法就是直接(年/月/日 + from EXTRACT),如图例题EXTRACT的用法:
在这里插入图片描述CAST的用法它是直接通过日期字符串进行转换,转换格式CAST(‘日期字符串’ + AS + DATE)如图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值