当前位置:数据库 > Oracle >>

Oracle_DAY 01操作语句

Oracle_DAY 01操作语句
 
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/2
0.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;
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,