首页 / ORACLE / Oracle学习日记【3】
Oracle学习日记【3】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle学习日记【3】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4213字,纯文字阅读大概需要7分钟。
内容图文
![Oracle学习日记【3】](/upload/InfoBanner/zyjiaocheng/507/d96bc09011b24d94b03901f015278dd1.jpg)
不同点:会话级别只有当会话结束时表中的数据才会被截断,而事务级临时表不管是COMMIT/ROLLBACK或者是会话结束,临时表中的数据都会被截断。
1.3什么时候使用临时表:把复杂的逻辑拆分开来,用临时表储存中间结果,以方便后面的逻辑处理。程序执行过程中可能要存放一些临时的数据,这些数据在整个程序的会话过程中都用到等等。
1.4临时表创建方法
语法结构:CREATE GLOBAL TEMPORARY TABLE TABLE_NAME(COL1 TYPE1,COL2 TYPE2…) ON COMMIT PRESERVE ROWS;
CREATE GLOBAL TEMPORARY TABLE STUDENT
(STU_ID NUMBER(5),
CLASS_ID NUMBER(5),
STU_NAME VARCHAR2(8),
STU_MEMO VARCHAR2(200)) ON COMMIT PRESERVE ROWS ;
2、聚合函数
定义:聚合函数同时可以对多行数据进行操作,并返回一个结果集。
聚合函数与GROUP BY 使用
注意:不使用分组则把整个表作为一组
AVG,SUM,MIN,MAX,COUNT
栗子:查询EMP表中各部门工资大于2000的员工人数,并且按人数从高到低排列
SELECT E.DEPTNO, COUNT(1) CT1
FROM EMP E
WHERE E.SAL > 2000
GROUP BY E.DEPTNO
ORDER BY CT1 DESC
3、数据操作语言(DML)
3.1数据插入INSERT
语法格式:INSERT INTO 表名(列1,列2……) VALUES(值1,值2……)
栗子:往学生表(student)里插一条记录,学号(s001),姓名(SASA),性别(女)
INSERT INTO student(SID,SNAME,SSEX) VALUES(‘s001‘,‘SASA‘,‘女‘)
注意:列名可以省略,当省略列名时,默认是表中的所有列名,列名顺序为表定义中列的先后顺序。值的数量和顺序要与列名的数量和顺序一致。值的类型与列名的类型一致。
3.2向表中插入一个结果集
语法结构:INSERT INTO 表名1(列名1,列名2……) 查询结果集;
4、更新数据UPDATE
语法结构:UPDATE 表名 SET 列名1=值,列名2=值…… WHERE 条件
栗子:在学生表(student)里更改一条记录,将学号(s001)的学生性别改为男
UPDATE student SET ssex=‘男‘ WHERE sno=‘s001‘;
5、删除数据DELETE
语法结构:DELETE FROM表名 WHERE 条件
栗子:删除学生表(student)里学号为s001的记录
DELETE FROM student_1 WHERE sno=‘s001‘;
6、TRUNCATE(DDL命令)
语法结构:TRUNCATE TABLE 表名
TRUNCATE和DELETE异同:
相同点:都能把表中数据全部删除
不同点:TRUNCATE是DDL命令,删除的数据不能恢复,DELETE是DML命令,删除后的数据可通过日志文件恢复
性能方面比较:如果一个表中数据很多,TRUNCATE相对DELETE速度快。TRUNCATE命令比较危险,慎用!!!
7、操作符
运算符 |
说明 |
运算符 |
说明 |
= |
等于 |
> |
大于 |
<>或者!= |
不等于 |
<= |
小于或者等于 |
< |
小于 |
>= |
大于或者等于 |
三个运算符优先级:NOT>AND>OR
8、字符串连接操作符(||)
栗子:在EMP表中,查询工资在2000元以上的姓名以及工作。
SELECT (ENAME || ‘is a ‘ || JOB) AS "Employee Details"
FROM EMP
WHERE SAL > 2000;
Oracle中字符串可以用单引号,存在特殊字符的时候,必须用双引号。
9、DISTINCT操作
作用:在Oracle查询中结果中,可能出现若干行相同的情况,那么可以使用DISTINCT消除重复行。
栗子:DISTINCT消除重复行(GROUP BY性能较好)
SELECT DISTINCT DEPTNO FROM EMP;
10、NULL操作
特性:
1、空值跟任何值进行算术运算,得到的结果都为空值
2、 空值跟任何值进行关系运算,得到的结果都为不成立
3、 空值不参与任何聚合运算
4、 排序的时候,空值永远是最大的
栗子:查询EMP表中没有发奖金的员工。
SELECT * FROM EMP E WHERE COMM IS NULL;
11、IN操作
在Where子句中可以使用IN操作符来查询其列值在指定的列表中的行。
栗子:查询出工作职责是SALESMAN、PRESIDENT或者ANALYST的员工。
SELECT E.ENAME,E.JOB,E.SAL
FROM EMP E
WHERE E.JOB IN (‘SALESMAN‘, ‘PRESIDENT‘, ‘ANALYST‘);
12、BETWEEN…AND…
在WHERE子句中,可以使用BETWEEN操作符来查询列值包含在指定区间内的行。
栗子:查询工资从1000到2000之间的员工。
SELECT E.ENAME, E.JOB, E.SAL FROM EMP E WHERE E.SAL BETWEEN 1000 AND 2000;
13、LIKE模糊查询
模糊查询使用LIKE关键字通过字符匹配检索出所需要的数据行。字符匹配操作可以使用通配符“%”和“_”:
%:表示零个或者多个任意字符。
_:代表一个任意字符。
栗子:显示员工名称以J开头以S结尾的员工的姓名、工资和工资。
SELECT E.ENAME, E.JOB, E.SAL
FROM EMP E
WHERE E.ENAME LIKE ‘J%S‘;
Oracle学习日记【3】
标签:特殊字符 1.2 aci 等等 说明 run 模糊 工资 过程
本文系统来源:https://www.cnblogs.com/wenxing9415/p/10841602.html
内容总结
以上是互联网集市为您收集整理的Oracle学习日记【3】全部内容,希望文章能够帮你解决Oracle学习日记【3】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。