Oracle之scott用户表、相关SQL语句
来源:互联网 发布:期货交易者软件怎么样 编辑:程序博客网 时间:2024/06/04 18:42
1.scott用户下的表结构:
雇员表EMP
No.
名称
类型
描述
1
EMPNO
NUMBER(4)
雇员编号
2
ENAME
VARCHAR2(10)
雇员姓名
3
JOB
VARCHAR2(9)
职位
4
MGR
NUMBER(4)
领导编号
5
HIREDATE
DATE
雇佣日期
6
SAL
NUMBER(7,2)
月薪,工资
7
COMM
NUMBER(7,2)
奖金,佣金
8
DEPTNO
NUMBER(2)
部门编号
部门表DEPT
No.
名称
类型
描述
1
DEPTNO
NUMBER(2)
部门编号
2
DNAME
VARCHAR2(14)
部门名称
3
LOC
VARCHAR2(13)
部门位置
工资等级表SALGRADE
No.
名称
类型
描述
1
GRADE
NUMBER
工资等级
2
LOSAL
NUMBER
最低工资
3
HISAL
NUMBER
最高工资
奖金表BONUS
No.
名称
类型
描述
1
ENAME
VARCHAR2(10)
雇员姓名
2
JOB
VARCHAR2(9)
职位
3
SAL
NUMBER
工资
4
COMM
NUMBER
奖金
2.SQL之SELECT(查询)语句:
i)查询语句格式:SELECT * | 具体的列 别名 FROM 表名称;
ii)对个别表列的查询:SELECT empno,ename,job FROM emp ;
iii)为返回列起个别名:SELECT empno 编号,ename 姓名,job 工作 FROM emp ;
iv)使用DISTINCT直接消除所有的重复列:SELECT {DISTINCT} * | 具体的列 别名 FROM 表名称 ;
v)对显示格式的设定:要求: 编号是: 7369的雇员,姓名是:SMITH ,工作是:CLERK实现这个功能,则可以使用Oracle提供的字符串连接操作,使用”||“ 表示。如果要加入一些显示信息的话,所有的其他的固定信息要用“‘“括起来。SELECT ' 编号是:' || empno || '的雇员,姓名是: ' || ename || ',工作是: ' || job FROM emp ;
vi)在查询中也可以使用四则运算功能:例如:求出每个雇员的姓名和年薪。SELECT ename ,sal*12 FROM emp;
当然,也可以为列名 sal*12 起一个别名,注意回避中文:SELECT ename ,sal*12 income FROM emp;
3.SQL之限定查询(WHERE字句)语句:
根据指定的条件查询,必须指定限定查询。限定的查询语法:SELECT {DISTINCT} * | 具体的列 别名 FROM 表名称 {WHERE 条件(s)}
范例:
i)查询出工资大于1600的所有雇员信息:SELECT * FROM emp WHERE sal>1600 ;
ii)查询每月可以得到奖金的雇员信息:使用NOTSELECT * FROM emp WHERE comm IS NOT NULL ;--奖金是comm字段,只需not null,就OK。
ii.v)同样查询每月没有奖金的雇员的信息:
SELECT * FROM emp WHERE comm IS NULL ;
iii)AND-查询基本工资大于1000,同时可以领取奖金的雇员信息:SELECT * FROM emp WHERE sal>1000 AND comm IS NOT NULL ;
iv)OR-查询,基本工资大于1000,或者可以领取奖金的 雇员信息。SELECT * FROM emp WHERE sal>1000 OR comm IS NOT NULL ;
·使用NOT可以取反,把真的条件变为假的,假的变为真。
v):BETWEEN…AND…语法格式:字段 BETWEEN…最小值…AND…最大值…SELECT * FROM empWHERE sal BETWEEN 1500 AND 3000 ;
以上等价于:SELECT * FROM empWHERE sal >=1500 AND sal<=3000 ;
v.v)日期表示要加单引号”’“:SELECT * FROM emp WHERE hiredate BETWEEN '1-1 月-81' AND '31-12月-81' ;
vi)IN语法格式: 字段 IN (值1,值2,……,值n)SELECT * FROM emp WHERE empno IN (7369,7499,7521) ;
也可以使用NOT取反:字段 NOT IN (值1,值2,……,值n)
SELECT * FROM emp WHERE empno NOT IN (7369,7499,7521) ;
不仅仅限于数字:SELECT * FROM emp WHERE ename IN ('SMITH','ALLEN','KING') ;
vii)LIKE在LIKE中主要使用两种通配符:· ”%“可以匹配任意长度的内容SELECT * FROM emp WHERE ename LIKE '_M%' ;
· ”_“可以匹配一个长度的内容SELECT * FROM emp WHERE ename LIKE '%M%' ;
· '%%' 可以查询全部SELECT * FROM emp WHERE ename LIKE '%%' ;
viii) <>和!= 不等于号
SELECT * FROM emp WHERE empno<>7369 ;
SELECT * FROM emp WHERE empno!=7369 ;
4. ORDER BY字句 语法格式:SELECT {DISTINCT} * |具体的列 别名 FROM 表名称{WHERE 条件(s)} {ORDER BY 排序的字段1, 排序的字段2 ASC|DESC}
->ASC表示升序、 DESC表示降序范例:对员工按照工资升序排序:SELECT * FROM emp ORDER BY sal ASC ;
范例:查询出10部门所有员工信息,查询的信息按照工资由高到低排序,如果工资相等,则按照雇佣日期由早到晚排序:SELECT * FROM emp WHERE deptno=10 ORDER BY sal DESC,hiredate ASC ;
注:排序操作是放到整个SQL语句最后才执行。
1.scott用户下的表结构:
雇员表EMP
No.
名称
类型
描述
1
EMPNO
NUMBER(4)
雇员编号
2
ENAME
VARCHAR2(10)
雇员姓名
3
JOB
VARCHAR2(9)
职位
4
MGR
NUMBER(4)
领导编号
5
HIREDATE
DATE
雇佣日期
6
SAL
NUMBER(7,2)
月薪,工资
7
COMM
NUMBER(7,2)
奖金,佣金
8
DEPTNO
NUMBER(2)
部门编号
部门表DEPT
No.
名称
类型
描述
1
DEPTNO
NUMBER(2)
部门编号
2
DNAME
VARCHAR2(14)
部门名称
3
LOC
VARCHAR2(13)
部门位置
工资等级表SALGRADE
No.
名称
类型
描述
1
GRADE
NUMBER
工资等级
2
LOSAL
NUMBER
最低工资
3
HISAL
NUMBER
最高工资
奖金表BONUS
No.
名称
类型
描述
1
ENAME
VARCHAR2(10)
雇员姓名
2
JOB
VARCHAR2(9)
职位
3
SAL
NUMBER
工资
4
COMM
NUMBER
奖金
2.SQL之SELECT(查询)语句:
i)查询语句格式:
SELECT * | 具体的列 别名 FROM 表名称;
SELECT empno,ename,job FROM emp ;
iii)为返回列起个别名:
SELECT empno 编号,ename 姓名,job 工作 FROM emp ;
SELECT {DISTINCT} * | 具体的列 别名 FROM 表名称 ;
v)对显示格式的设定:
要求: 编号是: 7369的雇员,姓名是:SMITH ,工作是:CLERK
实现这个功能,则可以使用Oracle提供的字符串连接操作,使用”||“ 表示。如果要加入一些显示信息的话,所有的其他的固定信息要用“‘“括起来。
SELECT ' 编号是:' || empno || '的雇员,姓名是: ' || ename || ',工作是: ' || job FROM emp ;
vi)在查询中也可以使用四则运算功能:
例如:求出每个雇员的姓名和年薪。
SELECT ename ,sal*12 FROM emp;当然,也可以为列名 sal*12 起一个别名,注意回避中文:
SELECT ename ,sal*12 income FROM emp;
3.SQL之限定查询(WHERE字句)语句:
根据指定的条件查询,必须指定限定查询。限定的查询语法:
SELECT {DISTINCT} * | 具体的列 别名 FROM 表名称 {WHERE 条件(s)}
i)查询出工资大于1600的所有雇员信息:
SELECT * FROM emp WHERE sal>1600 ;
ii)查询每月可以得到奖金的雇员信息:
使用NOT
SELECT * FROM emp WHERE comm IS NOT NULL ;--奖金是comm字段,只需not null,就OK。ii.v)同样查询每月没有奖金的雇员的信息:
SELECT * FROM emp WHERE comm IS NULL ;
iii)AND-查询基本工资大于1000,同时可以领取奖金的雇员信息:
SELECT * FROM emp WHERE sal>1000 AND comm IS NOT NULL ;
SELECT * FROM emp WHERE sal>1000 OR comm IS NOT NULL ;
v):BETWEEN…AND…
语法格式:字段 BETWEEN…最小值…AND…最大值…
SELECT * FROM empWHERE sal BETWEEN 1500 AND 3000 ;以上等价于:
SELECT * FROM empWHERE sal >=1500 AND sal<=3000 ;
v.v)日期表示要加单引号”’“:
SELECT * FROM emp WHERE hiredate BETWEEN '1-1 月-81' AND '31-12月-81' ;
语法格式: 字段 IN (值1,值2,……,值n)
SELECT * FROM emp WHERE empno IN (7369,7499,7521) ;也可以使用NOT取反:字段 NOT IN (值1,值2,……,值n)
SELECT * FROM emp WHERE empno NOT IN (7369,7499,7521) ;不仅仅限于数字:
SELECT * FROM emp WHERE ename IN ('SMITH','ALLEN','KING') ;
vii)LIKE
在LIKE中主要使用两种通配符:
· ”%“可以匹配任意长度的内容
SELECT * FROM emp WHERE ename LIKE '_M%' ;
· ”_“可以匹配一个长度的内容
SELECT * FROM emp WHERE ename LIKE '%M%' ;
· '%%' 可以查询全部
SELECT * FROM emp WHERE ename LIKE '%%' ;
viii) <>和!= 不等于号
SELECT * FROM emp WHERE empno<>7369 ;
SELECT * FROM emp WHERE empno!=7369 ;
4. ORDER BY字句
语法格式:
SELECT {DISTINCT} * |具体的列 别名 FROM 表名称{WHERE 条件(s)} {ORDER BY 排序的字段1, 排序的字段2 ASC|DESC}->ASC表示升序、 DESC表示降序
范例:对员工按照工资升序排序:
SELECT * FROM emp ORDER BY sal ASC ;
范例:查询出10部门所有员工信息,查询的信息按照工资由高到低排序,如果工资相等,则按照雇佣日期由早到晚排序:
SELECT * FROM emp WHERE deptno=10 ORDER BY sal DESC,hiredate ASC ;
注:排序操作是放到整个SQL语句最后才执行。
- Oracle之scott用户表、相关SQL语句
- oracle创建scott用户下表的sql语句
- Oracle scott用户表分析
- oracle查询语句练习题与答案(scott用户)
- Oracle练习:有关Oracle用户scott的sql练习
- oracle数据库增加样例数据 scott用户 与 相关的表
- oracle在scott用户创建表emp
- oracle的scott用户下默认表
- Oracle笔记:Scott用户的表结构
- Oracle笔记三:Scott用户表结构
- oracle scott 用户解锁
- Oracle Scott用户
- oracle解锁scott用户
- oracle添加scott用户
- oracle启用scott用户
- Oracle scott用户解锁
- oracle解锁scott用户
- oracle scott 用户锁定
- Objective-C 使用MySQL数据库的教程
- 看Nokia五年之内如何挥发掉千亿市值
- DedeCMS中实现在顶层banner中显示自定义登录信息
- Decorator装饰器模式Java示例学习
- K-Means 算法
- Oracle之scott用户表、相关SQL语句
- hdu3032 Nim or not Nim?-----sg打表找规律 允许把一堆石子分成两堆小的
- 对技术的态度
- gacutil.exe
- 黑马程序员-java基础之TCP传输客户端与服务端常用代码
- IE6 PNG透明终极解决方案
- 数字统计(统计2出现的次数)
- HFUT 1288 银河系5A风景区[安徽省第三届省赛]
- android 各种intent