Oracle中scott表结构与简单查询实例分析
本文实例讲述了Oracle中scott表结构与简单查询的方法。分享给大家供大家参考。具体分析如下:
1、scott用户的表的结构
查看表结构
desc表名;//descemp;
emp表:
SQL>descemp;
名称是否为空?类型
-------------------------------------
EMPNONOTNULLNUMBER(4)雇员编号
ENAMEVARCHAR2(10)雇员姓名
JOBVARCHAR2(9)雇员职位
MGRNUMBER(4)对应领导编号
HIREDATEDATE雇用日期
SALNUMBER(7,2)基本工资
COMMNUMBER(7,2)奖金,佣金
DEPTNONUMBER(2)部门编号
dept表:
SQL>descdept;
名称是否为空?类型
-------------------------------------
DEPTNONOTNULLNUMBER(2)部门编号
DNAMEVARCHAR2(14)部门名称
LOCVARCHAR2(13)部门所在位置
salgrade表:
SQL>descsalgrade;
名称是否为空?类型
-----------------------------------
GRADENUMBER工资等级
LOSALNUMBER此等级最高工资
HISALNUMBER此等级最高工资
bonus表:
SQL>descbonus;
名称是否为空?类型
-------------------------------------
ENAMEVARCHAR2(10)雇员姓名
JOBVARCHAR2(9)雇员职位
SALNUMBER雇员工资
COMMNUMBER雇员奖金
2、简单查询
1.查询不重复的职位
selectdistinctjobfromemp;
2.查询年薪,起别名,别名不要用单引号括起来
selectsal*12[as]incomefromemp;
3.简单查询中可以使用"||"连接查询的字段
selectempno||','||enamefromemp;
sql语句中的字符串用单引号表示
select'雇员编号是:'||empno||'姓名是:'||ename||'工资为:'||sal||'职位是:'||job||'!'雇员信息fromemp;
4.在oracle中数据时区分大小写的
select*fromempwherejob='CLERK';
查询不是办事员的雇员信息
select*fromempwherejob!='CLERK'; select*fromempwherejob<>'CLERK'; select*fromempwhereNOTjob='CLERK';
5.BETWEEN……AND大于等于小于等于
select*fromempwheresalbetween1500and3000;
也可以求反
select*fromempwheresalnotbetween1500and3000;
也可以是日期
select*fromempwherehiredatebetween'01-1月-1981'and'31-12月-81';
6.判断是否为空IS(NOT)NULL
select*fromempwherecommIsnotnull; select*fromempwherenotcommIsnull;
7.IN操作符
select*fromempwhereempnoin(7521,7844,5555); select*fromempwhereempnonotin(7521,7844,5555);
关于NOTIN
如果现在使用了IN操作符,查询范围之中存在了null,不影响查询
select*fromempwhereempnoin(7521,7844,null);
如果现在使用的是NOTIN操作符,如果查询范围之中有了null,则不会有任何的结果返回
select*fromempwherenotempnoin(7521,7844,null); select*fromempwhereempnonotin(7521,7844,null);
8.LIKE子句
匹配符号:
匹配单个字符:_0个
匹配任意多个字符:%0个、一个、多个
查询全部以字母"A"开头的雇员
select*fromempwhereenamelike'A%';
查询第二个字母为"A"的雇员
select*fromempwhereenamelike'_A%';
查询含有字母为"A"的雇员
select*fromempwhereenamelike'%A%';
查询不含有字母为"A"的雇员
select*fromempwherenotenamelike'%A%'; select*fromempwhereenamenotlike'%A%';
LIKE'%%'表示查询全部数据
select*fromempwhereempnolike'%%'
9.数据的排序
orderby字段[ASC|DESC][,字段[ASC|DESC]……];
orderby子句必须在where子句之后,在所有sql语句最后
排序的时候可以指明多个排序字段
排序方式有两种:默认(ASC)升序、DESC(降序)
按照工资进行排序
select*fromemporderbysaldesc;
先按工资排序,再按照雇佣日期排序
select*fromemporderbysaldesc,hiredate;
希望本文所述对大家的Oracle程序设计有所帮助。