SQL语法
首先来了解学习SCOTT用户之中的主要数据表。在之后我们的SQL语法的学习都是来围绕这个用户下的表来完成的。
查看此用户下的所有表,语法
SQL>selecr * from tab;
此时显示一共有四张表:dept,emp,salgrade,bonus,下面来观察四张表的表结构。
查看表结构 desc 表名
SQL>desc emp;
1、部门表 dept
字段 类型 描述
2、雇员表 emp
字段 类型 描述
3、工资等级表 salgrade
4、工资表 bonus
字段 类型 描述
其中emp,dept,salgrade表都存在有数据,但是只有bonus表没有数据。
SQL>select * from dept
SQL>select * from salgrade;
SQL>select * from bonus;
SQL结构查询语言,分以下几组:
DML(Data Manipulation Language,数据操作语言),用于检索或者更新数据(增删改查)
- 插入:INSERT 2) 更新:UPDATE 3) 删除:DELETE
DDL(Data Definition Language,数据定义语言),用于定义数据的结构,如创建,修改或者删除数据库对象-表、视图、索引 DDL操作是隐性提交的!不能rollback
DCL(Data Control Language,数据控制语言),定义数据库用户的权限:grant,deny,revoke
DQL查询语言 基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>
对于查询,我们分为简单查询,限定查询,多表查询,统计查询四类,其中简单查询是初步。数据表的组成是行与列,简单查询的最大特征是在于会将一张数据表之中的全部数据行进行显示,而用户可以通过select控制显示的数据列。
简单查询
语法:
SELECT [DISTINCT] * | 字段 [别名],字段 [别名] 2,控制显示的数据列
FROM 表名称 [表别名]; 1,确定数据来源
DISTINCT 表示取出重复行的数据
• 表示查询所有行的信息, 如果不想查询所有行,可直接编写具体列名称。
Eg:查询emp表的全部记录
SQL>select * from emp;
Eg:查询每个雇员的编号empno,姓名ename和基本工资sal
SQL>select empno,ename.sal from emp;
#简单查询中,可以使用四则运算符
Eg:查询每一个雇员的姓名,职位和基本年薪,每个月每个人有200的饭补和100的车补夏天有4个月的高温补贴200,年底多发2个月的基本工资
SQL>select ename,job,(sal+nvl(comm,0)+300)12+800+sal2 from emp;
#重复
Eg:查询每个雇员的职位
SQL>SELECT JOB FROM emp;
Eg:查询每个雇员的姓名,职位
SQL>SELECT ENAME,JOB FROM emp;
#使用||连接符
select empno||’,’||ename from emp;
限定查询
简单查询可以显示一张数据表中的所有数据,但这也是它的一个大问题。因为在很多时候我们并不需要查询所有的数据,我们只想要知道一些特定数据,那这时候就需要对数据进行过滤,而这样的查询就叫做限定查询。
语法:
SELECT [DISTINCT]*| 字段 [别名][字段 [别名]] 3
FROM 表名称 [表别名] 1
[where 条件(s)]; 2
条件:
关系运算符:< > <= >= <> !=
范围运算符:BETWEEN…AND IN子句 、IS NULL LIKE 子句
逻辑运算符:AND与操作 OR或操作 NOT取反
1、关系运算
Eg:要求查询出基本工资高于1500的所有雇员信息
SQL>select * from emp wheter sal>1500;
Eg:查询出所有职位是办事员的雇员信息
SQL>select * from emp where job=’CLERK’;
注意:区分大小写
Eg:查询所有不是办事员的雇员信息
SQL>SELECT * FROM emp where job <>’CLERK’;
2,逻辑运算
Eg:查询出所有工资高于1200的销售人员信息
SQL>select * from emp where job=’SALEMAN’and sal>1200;
Eg:查询工资在1500-3000之间的全部雇员信息
SQL>select * from emp where sal>=1500 and sal <=3000;
Eg:查询出10部门的经理数据
SQL>select * from emp where deptno=10 and job=’MANAGER’;
Eg:查询职位是办事员,或者是工资高于3000的全部信息
SQL>select * from emp where job=’CLERK’ or sal>3000;
Eg:查询职位是办事员,或者是销售员的全部信息,并要求这些雇员的工资大于1200
SQL>select * from emp where job=’CLERK’ OR job=’SALESMAN’ and sal>1200;
Oracle安装时出的错
反正就是吧,有些步骤是前后联系的,要先做完前边,后边才能做。比如说要把包mv到/home/oracle的时候,你一上来直接移,是没有那个目录文件的,你得先做前面不知道哪步,它就有了