oracle知识点(一)

一、sql(Structured Query Language结构化查询语言):操作数据库数据
sql的分类:
DQL:数据查询
select
DML:数据操纵语言(行级操作语言):操作的是表格当中一条一条的数据
insert update delete
DDL:数据定义语言(表级操作语言):操作的内容为表格(对象)
create alter drop truncate rename
TCL:事务控制语言
commit rollback savepoint
DCL:数据控制语言
grant revoke
二、创建用户,导入测试数据
  1.以管理员身份登录oracle。
win+R-->cmd-->sqlplus "/as sysdba"
  2.创建新用户(用户名jd1702,密码jd1702)
create user jd1702 identified by jd1702
  3.给新用户jd1702授权
grant connect,resource to jd1702
  4.切换至新用户
conn jd1702/jd1702
show user
  5.导入测试数据,由于数据文件table.txt中的语言日期环境为英语,当前操作系统为windows中文,所以导入前需要
更改会话环境。
alter session set nls_date_language = english;
    start(@) d:/table.txt
  6.查看导入的表结构
select table_name from user_tables;
desc s_emp(s_dept/s_region);//对应员工表/部门表/区域表


Model1 select Rows
1.select语法:
select [distinct] {*/column_name[alias],column_name...} from table_name;
[]内容代表可选,可写可不写
select字句后跟要查询的列,多列之间以逗号隔开,from子句后跟要查询的表
*:代表所有列的数据。
(1)查询s_dept表中所有的信息
select id,name,region_id from s_dept;
select * from s_dept;


(2)查询s_emp表中last_name,salary的信息
select last_name,salary from s_emp;


注:select语句永远不会对数据库中原始数据造成修改。
2.alias:给列起别名为alias
a.列名后加空格,跟别名
select col_name alias_name,col_name2 from table;
b.列名与别名间使用as关键字
select col_name as alias_name from table;
c.使用双引号""使别名区分大小写
select col_name "alias" from table;
(3)查询s_emp表中的last_name,起别名为Name
select last_name from s_emp;
注:双引号出现的情况1:起别名
3.使用distinct关键字可以将显示结果中重复的记录只显示一行
select distinct col_name,col_name2 from table;
注1:distinct关键字只能放到select后边
注2:如果distinct后面显示多列,则表示多列联合去重,当多列中每一列的值都相同才认为重复。
(4)查询s_dept表中的部门名称,并去重
select distinct name from s_dept;
(5)查询s_dept表中的部门ID,名称,并去重


4.select语句可以对指定的列中所有值进行算数运算(+,-,*,/):
select col_name 运算符(+-*/) 数字 from table;
(6)查询s_emp表中的last_name,年薪(12月)
select last_name,salary*12 from s_dept;
(7)查询s_emp表中的last_name,年薪+年终奖(5000)
select last_name salary*12+5000 from s_emp;
(8)查询s_emp表中的last_name,年薪-保险(300)
select last_name,salary*12-300 from s_emp;
(9)查询s_emp表中的last_name, 日薪(按22个工作日计算)
select last_name,salary/22 from s_emp;
(10)查询s_emp表中last_name,年薪(包括提成)
select last_name,(salary+salary*commission_pct/100)*12 salary from s_emp;


0和null(空)
nvl(commission_pct,0)
select last_name,(salary+salary*nvl(commission_pct,0)/100)*12 salary from s_emp;
5.对null值的替换
使用函数:nvl(参数1,参数2);
参数1:值可能为空的列。(commission_pct)
参数2:如果列值为null,则返回参数2的值,故类型需匹配数字。
6.使用||可以使多列的值或者列与特殊字符串合并到一行进行显示。
oracle中表示字符串使用单引号
select col_name || col_name2 || 'spe_char' from table;
(11)查询s_emp表中的first_name,last_name,合并显示为"first_name.last_name"形式,并起别名name.
select first_name ||'.'||last_name from s_emp;


7.sqlplus命令
  sqlplus提供了buffer缓存机制:
1)保存最近执行的一条sql语句。(可以是多行)
2)每次执行的sql语句都会加载到缓存中,覆盖掉保存的前一句sql语句。
  /:执行sql缓存中的sql命令
  l:显示缓存中的sql内容
  n:定位到第n行
  l n:显示第n行
  n sql语句:替换第n行内容
  a:在[定位]的那一行后追加新内容,默认在最后边加
  i:在[定位]的那一行后追加新的一行
  c:在定位的那一行中修改指定的字符串内容,默认只改第一个匹配到的字符串 c /oldchar/newchar
  del:删除定位的那一行
  cl[ear] buff[er]:清除缓存中的内容


  save file_name:将缓存中的sql命令保存到指定路径的file中, 如果文件已存在,提示选择追加还是替换(指令后加append,replace)
  get file_name:将文件中的sql命令提取到sqlplus缓存中,但是不执行
  start/@ filename:执行文件中的sql命令
  edit file_name:使用文本编辑器打开,编辑sql语句
  spool file-name:将接下来的sql语句与其结果保存到文件中,文件已存在可选择(append,replace),默认覆盖
 与spool off配合使用
  spool off:关闭spool功能
 8.col[umn]格式化显示结果:
(12)查询s_emp表中的first_name,last_name,salary,dept_id


通过column使结果样式格式化显示
col[umn] last_name for[mat] a15;
col[umn] first_name for[mat] A15;
只对终端显示时名字为last_name,first_name的列(包括别名的情况)做了格式化显示,15个字符长
其他作用:
1)col last_name heading 'Emp|Name' for A15
. 给last_name(包括以其为别名的列)取别名为Emp|Name , 竖杠代表换行。
. A15表示十五个字节长,一短横杠就是一个字节长
2)col salary just left; (center,right)
 仅仅改变列名显示为左齐,居中,右齐
3)col commission_pct null 'null'
 结果为空的列显示指定字符串,只是改变显示结果,不要求类型匹配
以上适合字符串和日期列
//出错的时候不能显示,只是显示####
4)对数字格式化
9:不强制补全
0:强制补全
$:西方的货币符号
L:本地货币符号
.:小数点
,:分隔符
col salary for $99,999,999.999(整数补全)
col salary for L00,000,000.000
5)清除一列的格式:
col colName clear
 清除所有格式:
clear col

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值