oracle知识(一)

本文介绍了SQL的基础知识,包括SQL脚本的使用、Oracle中空值的处理方式、控制处理函数NVL的应用、distinct关键字的作用及使用方法、column命令的定义与应用、选择操作与排序子句的使用技巧、where子句及其条件表达式的详细解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

引入sql脚本

sqlplus用户名/密码@sql脚本.sql

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

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

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

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

froms_emp;

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

例:selectdistinctdept_id,titlefroms_emp;

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

column命令(这是个sqlplus命令)

column命令列格式的定义

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

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

column last_name heading 'Employee|Name'(设置题头)FORMAT A15

这其中的'|'是换行符

column salary justify left format $99,990.00(定义数字显示格式)

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

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

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

选择操作

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

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

例:selectfirst_namefroms_emp order by first_name;

selectfirst_namefroms_emp order by first_name desc;

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

where子句

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

where后面跟的是表达式也就是XXX=XXXXXX between X and XXXX inXXX

like '...'通配查询

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

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

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

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

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

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

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

all(数据或子查询)

select first_name from s_emp where salary<>all(2500,1500);

all中的数据和纪录中的值全部一致,一般使用!=all(),来过滤在某个范围纪录

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

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

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

转义,使用escape定义转义符'S/_%' escape '/',使用转义,可以避免和运算符相同的字符的查询

例:

select table_name from user_tables where table_name like 'S/_%' escape '/'

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

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

2.选择合适的运算符

Oracle SQL(Oracle 9i 9.2.0.1.0)

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

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

DML(数据操作语言)语句,向表中插入纪录,修改纪录。

事务控制语句,commit; ,rollback;

授权语句

select语句(数据的查询),投影,过滤(选择)查寻,关联查寻(表连接)。

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

sqlplus用户名/密码@脚本名.sql

(登陆数据库的命令,并且引入sql脚本)

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

sqlplus中可以使用!可以在shellsqlplus间切换,!shell命令可以在sqlplus中使用shell命令。实际上是sqlplus开了子进程来执行shell命令。

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

select查询语句

selecttable_namefromuser_tables;(查询系统表)

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

desc [表名]这是一条sqlplus命令,注意他不是sql语句,这条命令用于查看表的结构。

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

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

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

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

!oerr ora [错误号],系统可以显示错误的原因和如何修改。如果命令错误输入可以使用edited来修改输入错误。实际上是在编辑缓存文件中的最后一条sql语句。

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

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

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

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

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

sqlplusbuffer中会缓存最后一条sql语句,可以使用"/"来执行这最后一条sql语句,也可以使用

edit命令来编辑最后一条sql语句。l命令(list)(sqlplus命令)可以显示buffer中最后一条命令。

sqlplus设置

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

set pause off关闭分屏显示。

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

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

set head off提头输出关闭

set feed off结尾输出关闭

set echo off回写关闭

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

spool off关闭写入。

清屏命令!clearclear screen

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

select语句中可以使用数学表达式。

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

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

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

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

字符串拼接使用||符号

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

注意:在Oracle中的字符串要用'..'包含,别名中需要使用空格,或是大小写敏感时需要用".."包含。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值