Oracle_DAY01

来源:互联网 发布:数据挖掘导论英文版 编辑:程序博客网 时间:2024/06/16 22:05

SQL>进入oracle的操作环境

查询数据——DB——二维表

二维表是数据库存储数据的基本单元

表中存储数据的基本单元是一行

表名——二维表的标示

表头——表的数据描述

根据表名查看表结构——desc 表名


 Name
------------------
ID          员工编号
LAST_NAME   姓
FIRST_NAME  名
USERID      #用户说明 
START_DATE  入职日期  
COMMENTS    员工备注
MANAGER_ID  领导的员工编号
TITLE       职位
DEPT_ID     部门编号
SALARY      月薪
COMMISSION_PCT 提成


查询

选择:所有列都选中,部分行选中

投影:部分列选中,全部的行选中

表连接:数据来自于多张表,表和表之间建立连接关系


查询:

A.from字句

1.从表中查询一个字段的数据

select 字段 from 表;

select  salary  from  s_emp;

搭建环境:sql脚本

<1>把脚本上传对应的服务器;<2>运行脚本:@路径/脚本名


2.查询多个字段

把first_name  salary列出来

select  first_name, salary  from  s_emp;


3.把表中所有的字段的值列出来

select  id, first_name  ...;

*号可以代表所有的字段名

select  *  from  s_emp;


4.字段的数学运算

算每个人的年薪

select  salary*12  from s_emp;

可以用小括号改变的优先级

12*salary+100

12*(salary+100)

1/20.5

select  1/2  from dual;


5.字段的别名

紧跟在字段名后

select  first_name  name, 12*salary  yearsal  from  s_emp;

别名中有特殊字符空格

select  first_name  name, 12*salary  "year sal"  from  s_emp;


6.sql如何表达字符串

sql中的字符串

'a' ''  ' ' 'hello world'

=判断相等


7.字符串连接 ---oracle独特的 ||

first_name  last_name  salary

select  first_name, last_name, salary  from  s_emp;

select  first_name || last_name, salary  from  s_emp;

在first_name和last_name加一个下划线

select  first_name || last_name, salary  from s_emp;

在first_name和last_name加一个单引号

select  first_name || ''' || last_name, salary  from  s_emp;

翻译不了单引号---转义单引号

select  first_name || '''' || last_name, salary  from  s_emp;

两个单引号表达一个单引号

在fitst_name和last_name之间拼接一个双引号

select  first_name || '''''' || last_name  from  s_emp;


8.NULL值的处理

月薪*12*(1+提成/100)

select  salary*12, salary*(1+commission_pct/100)*12  from  s_emp;

NULL值和任何值做运算都是NULL

NULL值处理函数:nvl(参数1,参数2)

参数1:要处理的值或者字段

参数2:如果参数1为NULL则返回参数2的值

   如果参数1不为NULL则返回参数1的值

注意:参数1和参数2必须有相同的类型

select  salary*12, salary*nvl((1+commission_pct/100)*12, 0)  from s_emp;//logic error

NULL要尽早处理

select  salary*12, salary*(1+nvl(commission_pct, 0)/100)*12  yearsal  from s_emp;

把first_name,manager_id,如果manager_id为NULL则显示-1

select  first_name, nvl(manager_id, -1)  from  s_emp;


9.排重显示

显示所有的工资

select  salary  from  s_emp;

不同的工资---disinct

select  distinct  salary  from  s_emp;

select  distinct  title  from  s_emp;

多重字段的排重

select  distinct  salary, id  from  s_emp;

select  first_name, last_name, title  from  s_emp;

select  dinstinct  last_name, title  from  s_emp;

原创粉丝点击