oracle数据库中这些语句都是什么意思啊

oracle数据库中这些语句都是什么意思啊,第1张

这是在用sqlplus运行查询时的一些设置。

set echo off; #控制start命令不列出命令文件中的每一命令

set feedback off; #显示由查询返回的记录数 off等价为0

set heading off; #报表中列标题不打印

set pagesize off; #置 从顶部标题至页结束之间的行数

set linesize off; #置一行中显示的字符总数

set termout off; #由文件执行命令时不显示输出

set trimout on; #每一显示行的末端去掉空格

set trimspool on; #去掉spool输出时每行末端空格

col eventtypeid format A10; #字段eventtypeid 输出时的格式设置为文字型,且占10个字符宽度,下面类似

col eventtime format A10;

col srcip format A16;

col dstip format A16;

col srcport format A10;

col dstport format A16;

spool d:/home/oracle/>

CREATE TABLE test (

username VARCHAR(20),

starttime VARCHAR(14),

endtime VARCHAR(14)

);

INSERT INTO test

SELECT 'zhangsan', '20130305080000', '20130305100000' FROM dual UNION ALL

SELECT 'zhangsan', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT 'lisi', '20130305060000', '20130305110000' FROM dual UNION ALL

SELECT 'lisi', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五1', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五1', '20130305060000', '20130305080000' FROM dual UNION ALL

SELECT '王五2', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五2', '20130305070000', '20130305080000' FROM dual UNION ALL

SELECT '王五3', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五3', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '王五4', '20130305070000', '20130305090000' FROM dual UNION ALL

SELECT '王五4', '20130305070000', '20130305100000' FROM dual UNION ALL

SELECT '赵六1', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六1', '20130305070000', '20130305080000' FROM dual UNION ALL

SELECT '赵六2', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六2', '20130305060000', '20130305080000' FROM dual UNION ALL

SELECT '赵六3', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六3', '20130305070000', '20130305110000' FROM dual UNION ALL

SELECT '赵六4', '20130305060000', '20130305100000' FROM dual UNION ALL

SELECT '赵六4', '20130305060000', '20130305110000' FROM dual;

COLUMN "USERNAME" FORMAT A8

COLUMN "STARTTIME" FORMAT A15

COLUMN "ENDTIME" FORMAT A15

SELECT

FROM

test Main

WHERE

EXISTS (

SELECT 1

FROM

test Sub

WHERE

Mainusername = Subusername

AND NOT ( MainSTARTTIME = SubSTARTTIME AND MainENDTIME = SubENDTIME)

AND (

-- 首先判断 第一种情况

-- 时间段1:----------+=====+-----

-- 时间段2:--------+====+--------

-- 或者

-- 时间段1:----------+=====+-----

-- 时间段2:----------+====+--------

-- 或者

-- 时间段1:----------+=====+-----

-- 时间段2:--------+==========+--

-- 或者

-- 时间段1:----------+=====+-----

-- 时间段2:----------+==========+--

(

SubStartTime <= MainStartTime

AND SubEndTime > MainStartTime

)

OR

-- 然后判断第二种情况

-- 时间段1:------+=========+-----

-- 时间段2:--------+====+--------

-- 或者

-- 时间段1:------+=========+-----

-- 时间段2:------+====+--------

-- 或者

-- 时间段1:------+=========+-----

-- 时间段2:--------+==========+--

-- 或者

-- 时间段1:------+=========+-----

-- 时间段2:------+==========+--

(SubStartTime >= MainStartTime

AND SubStartTime < MainEndTime

)

)

);

不同的用户权限可以通过不同的命令进入系统。

sql>conn / as syddba;即可登录oracle超级管理员用户(不需要用户和密码)。

sql>conn zhangsan/password;通过输入用户名和密码的形式可以登录到普通用户。

sql>conn zhangsan/password@19216811:1521/orcl;通过本命令可以访问安装在”19216811“上面的oracle用户。

可以从表user_tables中查询。

select

sum(num_rows)

from

user_tables

;

就是显示用户所有表的行数其中num_rows是每个表的行数,用sum加总一下,就是当前用户所有表的总行数。

但因为user_tables中的数据不是实时统计,会有时间差,所以以上Sql统计得到的结果与实际会存在一定误差。

觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以user,all,dba为前缀的对象。

以user为例,我们查该对象下有些什么表,就应该执行下列的语句

sql>select

table_name

from

user_tables;

类似的,你可以进行替换。:)

如果你想查数据库中所有的表的话,可以查询

select

from

dba_tables

如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:

select

from

user_tables

要想导入外部sql语句可以用命令

sql

>@e:\文件名sql

如你想保存

select

from

tablename;语句的结果,可以在sqlplus

里面这样:

spool

c:\testsql

//这是保存文件的位置

select

from

tablename;

spool

off

这里涉及到两个系统视图的应用dba_tab_cols和user_tab_cols;

dba_tab_cols包含所有用户下表字段信息;user_tab_cols包含当前用户下表信息;使用tba_tab_clos查询表字段类型需要指定owner(用户)

上述两个表中,table_name,column_name,data_type就可以满足需要查询表字段类型了,具体类型对应其他字段还有另外定义,比如varchar2,date,number还对应在data_length字段有值,说明类型其长度

user_tab_columns和user_tab_cols都可以满足问题要求,但是两张视图还是有区别的,主要是包含字段的区别等,具体区别可以度娘哈,这里就不赘述。

以上就是关于oracle数据库中这些语句都是什么意思啊全部的内容,包括:oracle数据库中这些语句都是什么意思啊、oracle怎么通过索引查询数据语句、ORACLE数据库查询语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9716414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存