Oracle SQLPLUS常用命令

更新时间:2023-07-26 20:27:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

Oracle SQL*PLUS常用命令

一、DataBase

保存数据,以表的形式表现数据

二、SQL

Structur query language

结构化查询语言,是操作关系型数据库中的对象。

DDL(Data definition language 数据定义语言),用于建表或删表操作,以及对表约束进行修改

create table , alter table , drop table 对表结构的增删操作。

DML(Data manipulation language 数据操作语言),向表中插入纪录,修改纪录 insert , update , delete , merge

transaction ,事务控制语言,由DML语句组成的,commit; ,rollback;

select 查询语句

dcl 授权语句 grant

三、Oracle

DBMS 数据库管理系统

有Oracle提供,还提供AS,应用服务器

DBA 数据库管理员

四、相关操作

1、sqlplus 访问数据库命令(本地访问/远程访问),和数据库建立连接的命令,是数据库操作的环境

sqlplus 用户名/密码

2、show user 显示当前用户的用户名

改变身份可以直接connect 用户名/密码 --- 这个是sqlplus命令

在sqlplus中可以使用 ! 可以在shell和sqlplus间切换,!shell命令 可以在sqlplus中使用shell命令。

实际上是sqlplus开了子进程来执行shell命令。

3、Oracle数据库中的表分两类:用户表(用户使用操作的表),系统表(数据库系统维护的表,也叫数据字典)

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

对用户表的DDL操作出发了对系统表的DML操作!

五、基本语法

1、select查询语句

select table_name from user_tables;(查询系统表)

以上的查询语句就是查询本用户下所拥有的所有表的表名。

投影操作,只查看选择的字段的信息。

选择操作,查看字段中的特定某些信息。

联接操作,多表查询,通过表间连接,查寻出多表中的信息

(1)select table_name from user_tables;(查询系统表)

以上的查询语句就是查询本用户下所拥有的所有表的表名。

(2)sqlplus的buffer中会缓存最后一条sql语句,可以使用"/"来执行这最后一条sql语句,也可以使用

edit命令来编辑最后一条sql语句。

l命令(list)(sqlplus命令)可以显示buffer中最后一条命令。

sqlplus命令可以缩写

(3)desc [表名]

这是一条sqlplus命令,注意他不是sql语句,这条命令用于查看表的结构。descript的缩写

[字段名] [字段的类型],这是使用完desc命令后显示的表结构。

(4)select [表的字段名1],[表的字段名2], ... from 表名;

select * from 表名; 查寻表中所有字段的信息

(5)关键字不等拆分,sql语句,以及表名,字段名是大小写不敏感的。

sql语句要以";"结尾,来表示sql语句结束,如果不加";"系统不会执行此条sql语句,并提示。

在Oracle中字符显示是左对齐,数值右对齐。

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

(6)在select 语句中可以使用数学表达式。

select [表达式(必须包含本表字段名)],[...],.... from 表名;

运算的优先级的先乘除后加减,同级自左向右运算,括号改变优先级。

(7)别名

select [字段名或表达式] ["别名"],[...] ["..."],.... from 表名;

可以通过在字段名或表达式后加空格"别名",可以给列,或者表达式结果其别名。 表达别名必须加双引号。

(8)字符串拼接使用||符号

select 目标字段名||" "||目标字段名 from 表名;

注意:在Oracle中的字符串要用'..'包含

别名中需要使用空格,或是大小写敏感时需要用".."包含。

练习:

自己写一条SQL语句,执行的结果是select * from ...;

其中...是每张系统表的表名

即在每张系统表的表名前加 “select * from” ,后加“;”

select 'select * from '||table_name||';' from user_tables;

2、处理错误

(1)!oerr ora [错误号] ,系统可以显示错误的原因和如何修改。如果命令错误输入可以使用edit或ed来修改输入错误。

实际上是在编辑缓存文件中的最后一条sql语句。

也可以使用 (change) c /错误字段/正确字段,来进行替换操作进行修改。

只有在Linux平台使用

! 相当于 host ,没有断连接,只是切换了一下,执行shell命令

(2)edit命令来编辑最后一条sql语句。

3、sqlplus设置

set pause on 回车响应,分屏显示,只在本会话中有效

set pause off 关闭分屏显示。

set pause "..." 设置分屏显示的提示信息。

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

set pause on 先输出提示信息,回车响应,分屏显示

set head off 提头输出关闭

set feed off 结尾输出关闭

set echo off 回写关闭

spool 文件名.sql 写入指定文件

spool off 关闭写入。

4、sql脚本

也就是在文件中写有sql语句的文件,可以在sqlplus中运行。

引入sql脚本

sqlplus 用户名/密码 @sql脚本 (注意:在用户名密码输入结束后一定要加空格然后再写@sql脚本)

在脚本中最后一行写上“exit”,则运行完脚本以后,回到shell上

5、

Oracle中的空值 空值会当无穷大处理,其实空值根本就不会存储,只是看作是无穷大。

Oracle中控制处理函数 NVL(字段名,值),这个字段中的空值替换为指定值,如果不为空,则会返回其原值。

例:select (salary*12)*(NVL(commission_pct,0)/100+1) salary,first_name from s_emp;

distinct关键字,去掉重复行(这个关键字会触发排序操作)

例: select distinct dept_id,title from s_emp;

dept_id与title的联合不唯一

注意:distinct,关键字之后会对from之前的字段进行排重操作。

6、column命令 --- sqlplus命令

column命令 列格式的定义

column 目标列名 查看这个类是否定义了格式

column 目标列名 format a.. 设置列宽。

column last_name heading 'Employee|Name' formAT A15

设置题头

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

这其中的'|'是换行符

column salary justify left format $99,990.00

定义数字显示格式

注意:如果不满足显示的格式,就会把数据显示为"#"

column salary justify left format $00,000.00

会出现$00,928.00 ,用0补齐

column 列名 clear (清除列格式定义)

注意:只有sqlplus命令才有简写,并且在使用sqlplus命令时结尾也不能加分号。

六、选择操作

1、order by

排序子句 ASC(默认,升序) DESC(降序)

order by 目标列名(别名) 排序顺序(不写排序顺序,会默认为升序排序)

例:select first_name from s_emp order by first_name;

select first_name from s_emp order by first_name desc;

注意:升序空值在结果的末尾,降序空值在结果的最前面。

2、where 子句

where子句使用在 select ... from ... 后面,用来选择所需(符合条件的)的记录

where后面跟的是表达式 也就是 XXX=XXX, XXX between X and X ,XXX in(X,X,X)

like '...' 通配查询

between ... and ... ,表示结果在这之间,between and是一个闭区间,

也就相当于... <= ... and ... >= ... 。

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

!=,<>,^=,这三个都标识不等于,& lt;=,>=,=,这些运算符都可以使用。

... in (va1,val2,...) 判断结果是否在这个枚举中存在

like '...' 字符串通配查询,'%'表示多个字符,'_',表示一个字符。

注意:转义的用法:like S¥_% escape ¥

... and ... 表示只有两个条件同时满足

... or ... 表示条件只要满足其中只一就可以

all ... 是要求都满足条件。

not .....,则是可以与以上的条件产生反效果。

空值会对not in造成影响,也就是不等于任何值,但是空值例外。

... is null 使用来判断值是否为空。

注意:Oracle中的字符串是严格区分大小写的。

(1)注意数据类型,数字类型直接写,字符用'......' ,缺省格式的Date可以用'......',只有别名

才用" "包含。

(2)选择合适的运算符

七、单行函数

1.字符函数

字符是大小写敏感的

转小写 lower(字段名) --- 其中的参数可以是一个字符串常量或是一个字段名 转大写 upper(字段名)

首字母大写 initcap(字段名)

字符串拼接 concat(字段1, 字段2)

截取子串 substr(字段名, 起始位置,取字符个数)

dual表,是专门用于函数测试和运算的,他只有一条记录

字符串拼接 concat(...,....)

求指定子串 substr(...,起始位置,取字符个数)

可以使用"-"表示从右向左取,取的时候可以从左往友取。

例:select substr(first_name,-2,2) sub from s_emp;(取后两个)

select substr(first_name,2,2) sub from s_emp;(取前两个)

2.数值函数

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

四舍五入 round(数据,保留小数点后几位)

可以用负数表示小数点前,0,表示小数点后第一位,也就是保留个位,-1表示个位(保留到十位)。

例:select round(15.36,1) from dual;

截取数字函数 trunc(数据,保留的位数(小数点后位数)) 截取个位之后补0

例:select trunc(123.456,1) from dual;

3.日期函数

日期格式,

全日期格式 世纪信息,年月日,时分秒。

缺省日期格式,日-月-年 dd-mon-rr

修改当前会话的日期格式,会按照指定的格式输出日期

alter session set nls_date_format='yyyy mm dd hh24:mi:ss';

返回当前日期 sysdate

例:select sysdate from dual;

select sysdate+1 from dual; 获得明天的日期,加1,单位是天

日期是格式敏感的

求两个日期间相隔了多少个月 months_between(date1,date2)

加减指定数量的月份 add_months(date,月数),月数可以为负,负值就是减去相应的月数。 从date日期开始的第一个星期五 next_day(date,FriDay)

返回月末的日期 last_day(date)

截取日期 trunc(date,'年或月或日或时分秒')

例:select next_day(sysdate,2) from dual;

例:select trunc(add_months(sysdate,1),'month') from dual;

ROUND('25-MAY-95','MONTH')01-JUN-95

ROUND('25-MAY-95 ','YEAR')01-JAN-95

TRUNC('25-MAY-95 ','MONTH')01-MAY-95

TRUNC('25-MAY-95 ','YEAR')01-JAN-95

练习:

返回下个月的第一天的日期

select round(last_day(sysdate),'MONTH') from dual;

select add_months(trunc(sysdate,'MONTH'),1);

Oracle SQLPLUS常用命令 包括常用函数,表的管理和SQL*PLUS 常用命令。适合初学者。

4. 不同数据类型间转换函数

将日期转成字符 tochar(date,'日期格式')

日期格式要用有效格式,格式大小写敏感 'yyyy mm dd hh24:mi:ss',

'year'(全拼的年),'mm'(数字表示的月) 'month'(全拼的月),'day'(星期的全拼),'ddspth' (日期的全拼) 'yy mm dd'

例:select to_char(sysdate,'yyyy mm dd hh24:mi:ss')from dual;

将字符转换成数字 to_number('...')

将数字转字符to_char(number,'fmt') fmt是数字格式

将字符串转成日期 to_date('...','日期格式')

例:select to_char(to_date('2006 11 03','yyyy mm dd'),'dd-month-yy') from dual;

本文来源:https://www.bwwdw.com/article/1d1m.html

Top