Java高端培训——Oracle数据库

Java高端培训——Oracle数据库

5 (8人评价)

Oracle数据库(三)的笔记

相关课时: 笔记详情:

--创建一个简单的表
create table student(
   name varchar2(20),
   age number(3)
);
--插入新纪录
insert into student values('Tom',18);
--查询记录
select * from student;
--查看表结构(desccribe)命令窗口
desc student;
--删除表
drop table student;

SQL语句分类
1.Select查询语句
2.DML语句(数据操作语言)
insert update delete merge
3.DDL语句(数据定义语言)
create alter drop truncate
4.DCL语句(数据控制语言)
grant revoke
5.事务控制语句
commit rollback savepoint

select *|{<列名或者字段名>,,,,} from <表名>;


算术表达式
在SELECT语句中,对NUMBER型数据可以使用算术运算符创建

表达式。
select name,age,sal,sal*12 from emp;
算术运算符
+  -  *  / 
运算优先级
1.乘除高于加减
2.同级从左到右
3.用()强行改变运算顺序
select empno,ename,sal,sal*12+1000 from emp;
select empno,ename,sal,sal*(12+1000) from emp;

连接运算符
(实际应用较少,目的为了改变现实效果。实际中,会在其

他应用中进行此操作。--了解--)
连接运算符‘||’可以把列和字符 、或其他表达式连接在一

起,得到一个新的字符串,实现‘合成’列的功能。
("转义符,代表字符串常量中的单引号   -->  SQL)
(‘代表字符串常量的分隔标记)

用法列举:
select ename||'is a'||job from emp;
select empno,ename||'"s annual salary is'||sal*12

from emp;

注意语句的可读性

字段别名
1.重命名查询结果中的字段,以增强可读性
2.如果别命中使用特殊字符,或者是强制大小写敏感、空格

、、、使用双引号
select <字段名>|<表达式>【【AS】<字段别名>】,,
from <表名>;
select empno as 员工编号,ename 员工姓名,sal*12 "年

薪" from emp;
select empno,ename"Ename",sal*12"Anual S alary"

from emp;

空值(掌握)
1.无效的、未指定的、未知的或不可预知的值。
2.空值不等于空格或者0。
类似相当于null吧
在表达式中使用空值
1.算术表达式中如果出现空值,则整个表达式结果为空。
后果很严重。
2.连接表达式中出现的空值被当做一个空的(长度为零的)

字符串处理

去除重复行
1.在缺省情况下,查询结果中包含所有符合条件的记录行,

包括重复行。
select deptno from emp;
(部门编号有可能很多相同)
2.使用distinct关键字可从查询结果中清楚重复行
select distinct deptno from emp;
3.distinct的作用范围是后面所有字段的组合
select distinct deptno,job from emp;

查询结果排序(掌握)
1.查询结果缺省按照记录的插入顺序进行排列
2.也可使用order by 子句对查询结果进行排序,排序方式包

括升序(asc,缺省)和降序(desc)两种;
select empno,ename,sal from emp order by sal;
select empno,ename,sal from emp order bu sal desc;
3.按多字段排序
select deptno,empno,name,sal from emp order by

deptmo(desc),sal(desc);
4.使用字段别名排序
select empno,ename,sal*12 annsal from emp order by

annsal;

条件查询(重中之重)
select *|{[distinct]<字段名>|<表达式>[<别名>],,,}

from <表名> [where <查询条件>];
查询语句中使用字符串和日期
1.字符串和日期值要用单引号扩起来
2.字符串常量内容大小写敏感
3.日期值格式敏感,缺省的日期格式是'DD-MON-RR'
select * from emp where ename='SMITH';
select * from emp where hiredate='02-4月-81';
4.获取当前缺省日期格式
select sysdate from dual;
(dual表是平时学习练习用的表,只有一行一列。真实中是

不用的。)

比较运算符
1.  >  >=  =  <   <=   <>不等于( != 较少用到)
2.between(小值)...and(大值)...
界于两值之间,包括边界
3.in(set)  出现在集合中
4.like 模糊(通配)查询
1>%表示零或多个字符
2>_表示一个字符
3>对于特殊符号可以使用escape标识符来查找
4>字符串常量中:两个单引号-->一个单引号(插入数据经常

用到)
select * from emp where ename like '%\_'

escape'\';
5.判断空值  is (not) null 为空值
select * from emp where comm is null;
注意:0和null的区别;

逻辑运算符(优先级)
1.not '非'(高)
select * from emp where deptno not in(20,30,40);
2.and '与'(中)
select * from emp where deptno=20 and sal>2000;
3.or '或'(低)
select * from emp where deptno=20 or sal>2000;
注意:与和或的查询结果差异性,后者比前者条件限制小
SQL-->关键字大小写不敏感;

运算符优先级(同级:左-->右)
1      *   /
2      +   -
3      ||
4      = > >= < <= <>(不等于 !=)
5      is (not) null;like;(not) in
6      (not)between...and...   
7      not
8      and(但是)
9      or
10     可使用小括号强行改变运算顺序

select * from emp where job='SALESMAN' or job='CLERK' and sal>=1280;
分析:先=次and后or
翻译:工作是文秘但是薪资大于等于1280的记录或者工作是销售员的记录都符合所查条件;

select * from emp where (job='SALESMAN' or job='CLERK') and sal>=1280;
注意:小括号
翻译:查找要求即工作是销售员或文秘但是薪资大于等于1280的记录;

比较:
后者较之前者条件明显放宽;

 

0 0

你感兴趣的课程

编程开发 手把手教你学JAVA
7万+浏览/ 1868学员/ 4.6评分
免费
编程开发 java入门简介
4万+浏览/ 644学员/ 4.2评分
免费
3万+浏览/ 371学员/ 5评分
免费