Oracle笔记02——Oracle表结构

一、SQL语句的书写规则:

(1)不区分大小写
(2)可以单行来书写,也可以书写多行,建议分多行书写,增强代码的可读性
(3)关键字不可以缩写、分开以及跨行书写
(4)关键字最好是用大写,其它语法元素小写
(5)Tab和缩进的使用可以提高程序的可读性

 

二、选择列

(1)选择所有列:

SELECT * FROM 表名;

(2)选择指定列:

SELECT 列名1,列名2,列名3... FROM 表名;

 

三、算术运算符

+ - * /

注意:null值不与任意值计算,均返回null,不是0,不是''
解决方法:nvl(列名,0):如果该列的值为null,取值为0;否则取自身的值

 

四、列别名

(1)语法:

列名 别名

或者
列名 as 别名

(2)以下三种情况列别名两侧需要添加双引号

①列别名中包含有空格
②列别名中要求区分大小写
③列别名中包含有特殊字符

 

五、连接操作符||

原义字符串:使用单引号' '括起来,在数据的每一行出现
消除重复行:DISTINCT

 

六、显示表的结构

以下令命令需要在SQL*Plus中使用:
DESC[RIBE] 表名;

 

七、SQL语句和SQL*Plus命令的区别

1.在SQL window中只能执行sql语句

2.在commadn window既能执行sql语句,也可以执行SQL*Plus命令

 

八、练习

--选择dept表里面所有列,其中*代表所有列
SELECT * FROM dept;
SELECT deptno,dname,loc FROM dept;--以上两行代码效果一样
--但后者效率更高,因为*不知道表中的所有列是什么,需要分析表结构,查找的过程效率较低

--选择dept表中部门编号和部门名称
SELECT deptno,dname FROM dept;

--查询员工的员工编号,员工姓名,入职日期,包括转正日期(假设试用期5个月)
SELECT empno,ename,hiredate,(hiredate + 5*2) FROM emp;

--查询员工的员工编号,员工姓名,入职日期,包括转正日期(假设试用期5个月),年薪(使用其工资为转正工资的80%,加上奖金)
SELECT empno,ename,hiredate,(hiredate + 5*30),sal,comm,sal*5+sal*1.25*7+comm FROM emp;--当comm为null的时候,与任何数相加得到的都是以null
SELECT empno,ename,hiredate,(hiredate + 5*30),sal,nvl(comm,0),sal*5+sal*1.25*7+nvl(comm,0) FROM emp;--使用nvl函数

--别名
SELECT empno 员工编号,
       ename 员工姓名,
       hiredate 入职日期,
       (hiredate + 5 * 30) as 转正日期,--as可以加,也可以不加
       sal as 工资,
       nvl(comm, 0) as 奖金,
       sal * 5 + sal * 1.25 * 7 + nvl(comm, 0) as 年薪 
  FROM emp;
  
SELECT empno,sal,sal + 500 "new salary" FROM emp;--1.列别名中包含有空格,需要添加双引号
SELECT empno,sal,sal + 500 "NewSalary" FROM emp;--2.英文列别名默认全部大写,添加双引号可以区分大小写
SELECT empno,sal,sal + 500 "@new" FROM emp;--3.列别名中包含有特殊字符,需要添加双引号

--连接操作符
--1.查询员工信息,并显示“xxx的工资为:xxx”
SELECT ename,sal,ename||'的工资为:'||sal FROM emp;

--2.查询有员工的部门有哪些?
SELECT distinct deptno FROM emp;--distinct消除重复行
--3.查询公司有多少部门及岗位?
SELECT distinct deptno,job FROM emp;

 

posted @ 2021-10-01 20:37  `青红造了个白`  阅读(61)  评论(0编辑  收藏  举报