精华内容
下载资源
问答
  • oracle数据库基本语句

    2015-06-08 20:05:22
    oracle中几本的sql语句的汇总练习
  • Oracle 数据库基本信息查询sql语句
  • Oracle数据库Sql语句详解大全,详细介绍oracle数据库的sql各种写法,非常适合初学者快速入门使用。
  • Oracle数据库常用语句

    万次阅读 2019-04-01 22:07:48
    1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server — 创建备份数据的 device USE master EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:...

    一、基础

    1、说明:创建数据库
    Create DATABASE database-name
    2、说明:删除数据库
    drop database dbname
    3、说明:备份sql server
    — 创建备份数据的 device
    USE master
    EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\MyNwind_1.dat‘
    — 开始备份
    BACKUP DATABASE pubs TO testBack
    4、说明:创建新表
    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],…)
    根据已有的表创建新表:
    A:create table tab_new like tab_old (使用旧表创建新表)
    B:create table tab_new as select col1,col2… from tab_old definition only
    5、说明:删除新表
    drop table tabname
    6、说明:增加一个列
    Alter table tabname add column col type
    alter table student add dd char;
    注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
    7、说明:添加主键: Alter table tabname add primary key(col)
    alter table student add primary key(sno);
    说明:删除主键: Alter table tabname drop primary key(col)
    Alter table TF_F_USER_RES drop primary key(USER_ID, PARTITION_ID, RES_TYPE_CODE, RES_CODE, START_DATE);
    8、说明:创建索引:create [unique] index idxname on tabname(col….)
    删除索引:drop index idxname
    注:索引是不可更改的,想更改必须删除重新建。
    9、说明:创建视图:create view viewname as select statement
    删除视图:drop view viewname
    10、说明:几个简单的基本的sql语句
    选择:select * from table1 where 范围
    插入:insert into table1(field1,field2) values(value1,value2)
    删除:delete from table1 where 范围
    更新:update table1 set field1=value1 where 范围
    查找:select * from table1 where field1 like ’%value1%’ —like的语法很精妙,查资料!
    排序:select * from table1 order by field1,field2 [desc]
    总数:select count as totalcount from table1
    求和:select sum(field1) as sumvalue from table1
    平均:select avg(field1) as avgvalue from table1
    最大:select max(field1) as maxvalue from table1
    最小:select min(field1) as minvalue from table1
    11、说明:几个高级查询运算词
    A: UNION 运算符
    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    B: EXCEPT 运算符
    EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
    C: INTERSECT 运算符
    INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
    注:使用运算词的几个查询结果行必须是一致的。
    12、说明:使用外连接
    A、left outer join:
    左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    B:right outer join:
    右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    C:full outer join:
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

    二、提升

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
    法一:select * into b from a where 1<>1
    法二:select top 0 * into b from a
    2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
    insert into b(a, b, c) select d,e,f from b;

    3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
    insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
    例子:…from b in ‘"&Server.MapPath("."&"\data.mdb" &"‘ where…

    4、说明:子查询(表名1:a 表名2:b)
    select a,b,c from a where a IN (select d from b 或者: select a,b,c from a where a IN (1,2,3)

    5、说明:显示文章、提交人和最后回复时间
    select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

    6、说明:外连接查询(表名1:a 表名2:b)
    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

    7、说明:在线视图查询(表名1:a
    select * from (Select a,b,c FROM a) T where t.a > 1;

    8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 数值1 and 数值2

    9、说明:in 的使用方法
    select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

    10、说明:两张关联表,删除主表中已经在副表中没有的信息
    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1

    11、说明:四表联查问题:
    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where …

    12、说明:日程安排提前五分钟提醒
    SQL: select * from 日程安排 where datediff(‘minute‘,f开始时间,getdate())>5

    13、说明:一条sql 语句搞定数据库分页
    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

    14、说明:前10条记录
    select top 10 * form table1 where 范围

    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

    16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
    (select a from tableA except (select a from tableB) except (select a from tableC)

    17、说明:随机取出10条数据
    select top 10 * from tablename order by newid()

    18、说明:随机选择记录
    select newid()

    19、说明:删除重复记录
    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,…)

    20、说明:列出数据库里所有的表名
    select name from sysobjects where type=‘U‘

    21、说明:列出表里的所有的
    select name from syscolumns where id=object_id(‘TableName‘)

    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
    select type,sum(case vender when ‘A‘ then pcs else 0 end),sum(case vender when ‘C‘ then pcs else 0 end),sum(case vender when ‘B‘ then pcs else 0 end) FROM tablename group by type
    显示结果:
    type vender pcs
    电脑 A 1
    电脑 A 1
    光盘 B 2
    光盘 A 2
    手机 B 3
    手机 C 3

    23、说明:初始化表table1

    TRUNCATE TABLE table1

    24、说明:选择从10到15的记录
    select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

    三、技巧

    1、1=1,1=2的使用,在SQL语句组合时用的较多

    “where 1=1”是表示选择全部“where 1=2”全部不选,
    如:
    if @strWhere !=‘
    begin
    set @strSQL = ‘select count() as Total from [‘ + @tblName + ‘] where ‘ + @strWhere
    end
    else
    begin
    set @strSQL = ‘select count(
    ) as Total from [‘ + @tblName + ‘]‘
    end

    我们可以直接写成
    set @strSQL = ‘select count(*) as Total from [‘ + @tblName + ‘] where 1=1 安定‘+ @strWhere

    2、收缩数据库
    –重建索引
    DBCC REINDEX
    DBCC INDEXDEFRAG
    –收缩数据和日志
    DBCC SHRINKDB
    DBCC SHRINKFILE

    3、压缩数据库
    dbcc shrinkdatabase(dbname)

    4、转移数据库给新用户以已存在用户权限
    exec sp_change_users_login ‘update_one‘,‘newname‘,‘oldname‘
    go

    5、检查备份集
    RESTORE VERIFYONLY from disk=‘E:\dvbbs.bak‘

    6、修复数据库
    Alter DATABASE [dvbbs] SET SINGLE_USER
    GO
    DBCC CHECKDB(‘dvbbs‘,repair_allow_data_loss) WITH TABLOCK
    GO
    Alter DATABASE [dvbbs] SET MULTI_USER
    GO

    7、日志清除
    SET NOCOUNT ON
    DECLARE @LogicalFileName sysname,
    @MaxMinutes INT,
    @NewSize INT

    USE tablename – 要操作的数据库名
    Select @LogicalFileName = ‘tablename_log‘, – 日志文件名
    @MaxMinutes = 10, – Limit on time allowed to wrap log.
    @NewSize = 1 – 你想设定的日志文件的大小(M)

    – Setup / initialize
    DECLARE @OriginalSize int
    Select @OriginalSize = size
    FROM sysfiles
    Where name = @LogicalFileName
    Select ‘Original Size of ‘ + db_name() + ‘ LOG is ‘ +
    CONVERT(VARCHAR(30),@OriginalSize) + ‘ 8K pages or ‘ +
    CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + ‘MB‘
    FROM sysfiles
    Where name = @LogicalFileName
    Create TABLE DummyTrans
    (DummyColumn char (8000) not null)

    DECLARE @Counter INT,
    @StartTime DATETIME,
    @TruncLog VARCHAR(255)
    Select @StartTime = GETDATE(),
    @TruncLog = ‘BACKUP LOG ‘ + db_name() + ‘ WITH TRUNCATE_ONLY‘

    DBCC SHRINKFILE (@LogicalFileName, @NewSize)
    EXEC (@TruncLog)
    – Wrap the log if necessary.
    WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) – time has not expired
    AND @OriginalSize = (Select size FROM sysfiles Where name = @LogicalFileName)
    AND (@OriginalSize * 8 /1024) > @NewSize
    BEGIN – Outer loop.
    Select @Counter = 0
    WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
    BEGIN – update
    Insert DummyTrans VALUES (‘Fill Log‘)
    Delete DummyTrans
    Select @Counter = @Counter + 1
    END
    EXEC (@TruncLog)
    END
    Select ‘Final Size of ‘ + db_name() + ‘ LOG is ‘ +
    CONVERT(VARCHAR(30),size) + ‘ 8K pages or ‘ +
    CONVERT(VARCHAR(30),(size*8/1024)) + ‘MB‘
    FROM sysfiles
    Where name = @LogicalFileName
    Drop TABLE DummyTrans
    SET NOCOUNT OFF

    8、说明:更改某个表
    exec sp_changeobjectowner ‘tablename‘,‘dbo‘

    9、存储更改全部表

    Create PROCEDURE dbo.User_ChangeObjectOwnerBatch
    @OldOwner as NVARCHAR(128),
    @NewOwner as NVARCHAR(128)
    AS

    DECLARE @Name as NVARCHAR(128)
    DECLARE @Owner as NVARCHAR(128)
    DECLARE @OwnerName as NVARCHAR(128)

    DECLARE curObject CURSOR FOR
    select ‘Name‘ = name,
    ‘Owner‘ = user_name(uid)
    from sysobjects
    where user_name(uid)=@OldOwner
    order by name

    OPEN curObject
    FETCH NEXT FROM curObject INTO @Name, @Owner
    WHILE(@@FETCH_STATUS=0)
    BEGIN
    if @Owner=@OldOwner
    begin
    set @OwnerName = @OldOwner + ‘.‘ + rtrim(@Name)
    exec sp_changeobjectowner @OwnerName, @NewOwner
    end
    – select @name,@NewOwner,@OldOwner

    FETCH NEXT FROM curObject INTO @Name, @Owner
    END

    close curObject
    deallocate curObject
    GO

    10、SQL SERVER中直接循环写入数据
    declare @i int
    set @i=1
    while @i<30
    begin
    insert into test (userid) values(@i)
    set @i=@i+1
    end

    展开全文
  • Oracle数据库sql语句跟踪器 运行 sqldbmon 文件即可 可跟踪条件
  • Oracle数据库链接语句

    2012-09-02 12:23:57
    清楚的记载了Oracle数据库的操作,带有截图,oracle数据库语句
  • oracle数据库基本查询语句

    千次阅读 2019-02-27 15:41:04
    oracle数据库SQL窗口基本查询语句 SELECT * FROM TABLE ; SELECT(关键字):选择哪些列。 FROM(关键字):从哪个表中选择。 *(关键字):选择全部列。 SELECT TableID FROM TABLE ; TableID...

    oracle数据库SQL窗口基本查询语句

    SELECT *
    FROM TABLE
    ;
    

    SELECT(关键字):选择哪些列。
    FROM(关键字):从哪个表中选择。
    *(关键字):选择全部列。

    SELECT TableID
    FROM TABLE
    ;
    

    TableID(列名):选择特定的列。
    TABLE(表名):选择特定的表。

    SELECT UserID||'Character'||TableID AS "Alias"
    FROM TABLE
    ;
    

    Alias(列的别名):紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号“”,以便在别名中包含空格或特殊的字符并区分大小写。
    ||(关键字,连接符):把列与列,列与字符连接在一起,用 ‘||’表示,可以用来‘合成’列。
    character(字符串):字符串可以是 SELECT 列表中的一个字符,数字,日期,日期和字符只能在单引号中出现,每当返回一行时,字符串被输出一次。

    SELECT DISTINCT TableID
    FROM TABLE
    ;
    

    DISTINCT(关键字,删除重复行):在 SELECT 子句中使用关键字 ‘DISTINCT’ 删除重复行。

    注意:

    • SQL 语言大小写不敏感;
    • SQL 可以写在一行或者多行;
    • 关键字不能被缩写也不能分行;
    • 各子句一般要分行写;
    • 使用缩进提高语句的可读性。
    展开全文
  • Oracle数据库经典sql语句

    万次阅读 多人点赞 2018-05-03 01:00:01
    经典sql语句 本文章将详细介绍oracle数据操作中的一些详细的sql 基本sql 字符函数 数学函数 日期时间处理函数 聚合函数 基础sql 以下主要列出来常用的sql --新建表: create table table_name( id ...

    经典sql语句

    本文章将详细介绍oracle数据操作中的一些详细的sql

    • 基本sql
    • 字符函数
    • 数学函数
    • 日期时间处理函数
    • 聚合函数

    基础sql

    以下主要列出来常用的sql

    --新建表:
    create table table_name( 
            id  varchar2(300) primary key, 
            name varchar2(200) not null
    );
    
    --插入数据   
    insert into table_name (id,name) values ('aa','bb');  
    
    --更新数据   
    update table_name set id = 'bb' where id='cc';
    
    --删除数据   
    delete from  table_name  where id ='cc';
    
    --删除表    
    drop table table_name;
    
    --修改表名: 
    alter table table_name rename to table_name_1;
    
    --表数据复制:
    insert into table1 (select * from table2);
    
    --复制表结构: 
    create table table1 select * from table2 where 1>1;
    
    --复制表结构和数据:
    create table table1 select * from table2;
    
    --复制指定字段: 
    create table table1 as select id, name from table2 where 1>1;
    
    --条件查询: 
    select id,name (
    case gender when 0 then '男'
                when 1 then '女' end  ) gender 
    from  table1

    字符函数

    --字符函数
    select substr('abcdefg',1,5)substr,                     --字符串截取
           instr('abcdefg','bc') instr,                     --查找子串
    
           'Hello'||'World' concat,                         --连接
    
           trim('  wish  ') trim,                           --去前后空格
           rtrim('wish  ') rtrim,                           --去后面空格
           ltrim('  wish') ltrim,                           --去前面空格
    
           trim(leading 'w' from 'wish') deleteprefix,      --去前缀
           trim(trailing 'h' from 'wish') deletetrailing,   --去后缀
           trim('w' from 'wish') trim1,
    
           ascii('A') A1, 
           ascii('a') A2,                                   --ascii(转换为对应的十进制数)
           chr(65) C1, 
           chr(97) C2,                                      --chr(十进制转对应字符)
    
           length('abcdefg') len,                           --length 
    
           lower('WISH')lower, 
           upper('wish')upper, 
           initcap('wish')initcap,                            --大小写变换
    
           replace('wish1','1','youhappy') replace,           --替换
    
           translate('wish1','1','y')translate,               --转换,对应一位(前面的位数大于等于后面的位数)
           translate('wish1','sh1','hy')translate1,
    
           concat('11','22') concat                     --连接
    
    
    from dual;
    
    
    
    --to_number
    
    --to_number(expr)
    --to_number(expr,format)
    --to_number(expr,format,'nls-param')
    
    select to_number('0123')number1,       --converts a string to number
           trunc(to_number('0123.123'),2) number2,
           to_number('120.11','999.99') number3,
         to_number('0a','xx') number4,     --converts a hex number to decimal
           to_number(100000,'xxxxxx') number5
    
    from dual;

    数学函数

    --绝对值:abs()
       select abs(-2) value from dual;          --(2)
    
    --取整函数(大):ceil()
       select ceil(-2.001) value from dual;       --(-2)
    
    --取整函数(小):floor()
       select floor(-2.001) value from dual;       --(-3)
    
    --取整函数(截取):trunc()
       select trunc(-2.001) value from dual;       -- (-2)
    
    --四舍五入:round()
       select round(1.234564,4) value from dual;       --(1.2346)
    
    --取平方:Power(m,n)
       select power(4,2) value from dual;       --(16)
    
    --取平方根:SQRT()
       select sqrt(16) value from dual;       --(4)
    
    --取随机数:dbms_random(minvalue,maxvalue)
       select dbms_random.value() from dual;  (默认是0到1之间)
     select dbms_random.value(2,4) value from dual;  (2-4之间随机数)
    
    --取符号:Sign()
      select sign(-3) value from dual; --(-1)
      select sign(3) value from dual; --(1)
    
    
    --取集合的最大值:greatest(value)
       select greatest(-1,3,5,7,9) value from dual;       --(9)
    
    --取集合的最小值:least(value)
       select least(-1,3,5,7,9) value from dual;       --(-1)
    
    --处理Null值:nvl(空值,代替值)
       select  nvl(null,10) value from dual;       --(10)
      
       select nvl(score,10) score from student;

    日期函数

    --日期
    --年 yyyy yyy yy year
    --月 month mm mon month
    --日+星期  dd ddd(一年中第几天) dy day 
    --小时  hh hh24 
    --分 mi
    --秒 ss
    
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')currenttime, 
           to_char(sysdate,'yyyy') year,
           to_char(sysdate,'mm') month,
           to_char(sysdate,'dd') day,
           to_char(sysdate,'day') week,
           to_char(sysdate,'hh24')hour,
           to_char(sysdate,'mi') minute,
           to_char(sysdate,'ss') second
    from dual;
    
    select to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss')currenttime,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'yyyy')year,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'mm')month,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'dd') day,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'day') week,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'day','NLS_DATE_LANGUAGE=American') week, --设置语言
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'hh24')hour,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'mi') minute,
           to_char(to_date('2009-07-04 05:02:01','yyyy-mm-dd hh24:mi:ss'),'ss') second
    from dual;
    
    --months_between
     select months_between(to_date('03-31-2014','MM-DD-YYYY'),to_date('12-31-2013','MM-DD-YYYY')) "MONTHS"
     FROM DUAL;
    
    --next_day
    select sysdate today, next_day(sysdate,6) nextweek from dual;
    
    --时间区间
    select cardid, borrowdate from borrow where to_date(borrowdate,'yyyy-mm-dd hh24:mi:ss')  
    between 
    to_date('2014-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and 
    to_date('2014-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss');  
    
    --interval 间隔
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') currenttime,
           to_char(sysdate - interval '7' year,'yyyy-mm-dd hh24:mi:ss') intervalyear,   
           to_char(sysdate - interval '7' month,'yyyy-mm-dd hh24:mi:ss') intervalMonth,   
           to_char(sysdate - interval '7' day,'yyyy-mm-dd hh24:mi:ss') intervalday,   
           to_char(sysdate - interval '7' hour,'yyyy-mm-dd hh24:mi:ss') intervalHour,   
           to_char(sysdate - interval '7' minute,'yyyy-mm-dd hh24:mi:ss') intervalMinute,   
           to_char(sysdate - interval '7' second,'yyyy-mm-dd hh24:mi:ss') intervalSecond  
    from dual;  
    
    
    --add_months 增加月份
    select add_months(sysdate,12) newtime from dual;
    
    --extract
    select extract(month from sysdate) "This Month",
    extract(year from add_months(sysdate,36)) " Years" from dual; 
    
    
    

    聚合函数

    --count
    select count(1) as count from student;--效率最高
    select count(*) as count from student;    
    select count(distinct score) from student; 
    
    --avg
    --distinct|all
    select avg(score) score from student;
    select avg(distinct score) from student;
    select classno,avg(score) score from student group by classno;
    
    --max
    --distinct|all
    select max(score) from student;
    select classno, max(score) score from student group by classno;
    
    --min
    --distinct|all
    select min(score) from student;
    select classno, min(score) score from student group by classno;
    
    --stddev(standard deviation)标准差
    select stddev(score) from student;
    select classno, stddev(score) score from student group by classno;
    
    --sum
    select sum(score) from student;
    select classno, sum(score) score from student group by classno;
    
    --median--中位数
    select median(score) from student;
    select classno, median(score) score from student group by classno;
    
    

    伪列rownum

    --rownum小于某个数时可以直接作为查询条件(注意oracle不支持select top)
    select * from student where rownum <3;
    
    --查询rownum大于某个数值,需要使用子查询,并且rownum需要有别名
    select * from(
        select rownum rn ,id,name from student
        ) 
    where rn>2;
    
        select rownum rn, student.* from student
    where rn >3;
    
    --区间查询
    select * from (
        select rownum rn, student.* from student) 
    where rn >3 and rn<6;
    
    --排序+前n条
    select * from (
        select rownum rn, t.* from ( 
            select d.* from DJDRUVER d order  by drivernumber)t 
     )p where p.rn<10;
    
    --排序+区间查询1
    select * from (
        select rownum rn, t.* from ( 
            select d.* from DJDRIVER d order by DJDRIVER_DRIVERTIMES
            )t 
        )p where p.rn<9 and p.rn>6;
    
    --排序+区间查询2
    select * from (
        select rownum rn, t.* from ( 
            select d.* from DJDRIVER d order by DJDRIVER_DRIVERTIMES
            where rownum<9 
    where p.rn>6;--效率远高于方式一

    分页查询

    --假设每页显示10条
    
    --效率低
    
    select * from (
        select rownum rn, d.* from DJDRIVER d  )p 
    where p.rn<=20 and p.rn>=10;
    
    select * from (
        select rownum rn, d.* from DJDRIVER d  )p 
    where p.rn between 10 and 20;
    
    --效率高 
    
    select * from (
        select rownum rn, d.* from DJDRIVER d where rownum<=20 )p 
    where p.rn>=10;
    
    
    --排序+区间查询1(效率低)
    
    select * from (
        select rownum rn, t.* from ( 
            select d.* from DJDRIVER d order by DJDRIVER_DRIVERTIMES
        )t 
    )p 
    where p.rn<=20 and p.rn>=10;
    
    select * from (
        select rownum rn, t.* from ( 
        )t 
    )p 
    where p.rn between 10 and 20;
    
    --排序+区间查询2(效率高) 
    
    select * from (
        select rownum rn, t.* from ( 
            select d.* from DJDRIVER d order by DJDRIVER_DRIVERTIMES
            where rownum<=20 
    )p 
    where p.rn>=10;
    展开全文
  • Oracle数据库常用SQL语句查询

    千次阅读 2018-08-20 17:27:13
    where语句后面跟上 and rownum=1 2.日期所相差分钟数 ceil((LOGOUT_TIME - LOGIN_TIME) * 24 * 60) 3.group by分组后,取得分组前的每一组的第一条记录 ---获取15届学生第一次登录wifi的最早时间 select ...

     

    1. 查询第一条记录

            where语句后面跟上  and rownum=1 

         2.日期所相差分钟数

           ceil((LOGOUT_TIME - LOGIN_TIME) * 24 * 60) 

         3.group by分组后,取得分组前的每一组的第一条记录

           ---获取15届学生第一次登录wifi的最早时间

           select * from (

           select wifilogin.*,row_number() over(partition by USER_ID order by rownum)cn from T_SAM_YHDLXX

            ) wifilogin

             )where cn='1'

           4.查询某用户被赋予的表权限

              SELECT * FROM user_tab_privs_made where grantee='USR_GIS'

       5. 按名称查询视图

          select view_name from user_views where view_name like 'V%'

    6. 查询数据表所占用的空间

    select OWNER, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mmm
    from dba_segments t
    where t.owner = '用户名'
    and t.segment_type='TABLE'
    --and t.segment_name='表名'
    group by OWNER, t.segment_name, t.segment_type
    order by mmm desc;
    7,查询库中所含的表、列、数据行(

    https://www.cnblogs.com/JohanChan/p/11718183.html

     SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES   WHERE table_schema = 'szdb'
     SELECT COUNT(column_name) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'szdb';
    
    use information_schema;
    SELECT sum(table_rows) from tables where TABLE_SCHEMA = 'szdb' order by table_rows desc;

    8.日期格式转换

     substr(xn,1,4)>=(to_char(sysdate,'yyyy')-4)

     

    9. 

     查看所有表空间的数据使用情况
    SELECT Upper(F.TABLESPACE_NAME)         "表空间名",
           D.TOT_GROOTTE_MB                 "表空间大小(M)",
           D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
           To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
           || '%'                           "使用比",
           F.TOTAL_BYTES                    "空闲空间(M)",
           F.MAX_BYTES                      "最大块(M)"
    FROM   (SELECT TABLESPACE_NAME,
                   Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
                   Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
            FROM   SYS.DBA_FREE_SPACE
            GROUP  BY TABLESPACE_NAME) F,
           (SELECT DD.TABLESPACE_NAME,
                   Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
            FROM   SYS.DBA_DATA_FILES DD
            GROUP  BY DD.TABLESPACE_NAME) D
    WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME
    ORDER  BY 1

    10. 查看表空间的名字和所属文件 
    select tablespace_name, file_id, file_name, 
    round(bytes/(1024*1024),0) total_space 
    from dba_data_files 
    order by tablespace_name;

    11.手动增加数据文件尺寸 
    ALTER DATABASE DATAFILE '/oracle/oradata/GAME.dbf'
    RESIZE 4000M;

    12,筛选时间范围 

    where to_date(substr(AUTHORIZE_DATE,1,10),'yyyy-mm-dd') >=to_date('2016-09-30','yyyy-mm-dd')

    and  to_date(substr(AUTHORIZE_DATE,1,10),'yyyy-mm-dd') <=to_date('2017-08-31','yyyy-mm-dd')

    where opertime >to_date('2021-04-14 07:00','yyyy-mm-dd HH24:Mi')  order by OPERTIME desc

    注意是HH24:Mi  不是hh:mm否则会报ORA-01810: 格式代码出现两次的错误。

    13 查看所有表空间对应的数据文件:

    select sum(bytes)/1024/1024/1024||'GB' from DBA_DATA_FILES;

    展开全文
  • Oracle数据库查询语句

    千次阅读 2019-01-04 23:08:10
    1 oracle数据库查询表的所有数据–select * ...3 oracle数据库往表中添加数据信息–(添加信息使用insert into语句) insert into 表名 values(添加相对应的数据信息,如果在一个字段名中没有信息可以用“null”nul...
  • Oracle数据库 中的sql语句基本操作详细解释 有助初学者 学习
  • Oracle数据库建表语句

    千次阅读 2019-08-06 10:05:11
    Oracle数据库建表语句 #1.建表语句 create table CUST_INFO ( CUST_ID VARCHAR(36) not null, CUST_TYPE VARCHAR(50), CUST_NAME VARCHAR(200), ID_NO ...
  • oracle还原数据库基础语句 创建表空间,创建用户,还原语句
  • 数据库备份的语句

    2018-08-20 10:35:08
    这是数据库的备份和还原的sql语句,只适用于oracle数据库
  • oracle数据库常用操作语句(比较全面)
  • Oracle数据库(一)准备知识和SQL语句基础

    万次阅读 多人点赞 2018-08-31 15:22:42
    ***准备知识 1、Oracle的卸载 oracle安装完成后,所有服务设置为手动,只启动实例服务和监听服务即可  ...4、Oracle数据库、实例、表空间、用户、数据文件和数据表之间的关系   oracle 数据库和...
  • Oracle数据库备份与还原语句

    千次阅读 2021-04-02 14:28:10
    1、备份语句数据库导出) exp username/password@ip:port/servername file="C:\Users\Administrator\Desktop\kpms.bak" full=y ignore=y; 2、导入语句数据库还原) ①全部导入:imp 用户名/密码@数据库实例名...
  • Oracle数据库学习时的练习收索语句,scott模式下的emp表和dept表的搜索,仅供参考。
  • oracle数据库常用语句汇总1(建表)

    千次阅读 2017-09-19 11:55:17
    1.oracle建表语句 create table student(id int,name varchar2(10),score number(4,1)); 其中create table是固定语法,create table +表名+字段,这样新建的表在当前库中,如果需要指定数据库,可以在表名...
  • oracle数据库语句范例

    2012-09-12 16:49:37
    oracle数据库开发范例
  • 最全的oracle数据库语句大全总结

    千次阅读 2019-07-07 11:21:29
    最全的oracle数据库语句大全总结 包含你见到的所有常见语句; 包含表的创建,删除,修改字段名,修改属性; 包含记录的增删改查; 包含所有记录的各种查询及内连接外连接; 以下所有例子都用person表和student表为例...
  • ORACLE-SQL进行一些布局优化,更新它的格式
  • Oracle中用sql语句创建数据库,比较长,一般做了解
  • Oracle数据库相关经典面试题

    千次阅读 2019-11-28 08:15:00
    金九银十的面试季节,最近我会多发一些面试题相关的文章,因为墨白也要开始找工作了大家一起加油哈 ! ! !oracle下有自动增长类型的字段吗?若无,如何实现自增长的功能 ...
  • Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法。 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤...
  • oracle数据库备份与还原语句

    万次阅读 2018-09-29 13:30:58
    1.导入语句 (1)全导入:imp 用户名/密码@实例名 full=y file=数据库备份文件路径 ignore=y; (2)单表导入:imp username/password@ip:port/servername file="E:\dmppath.dmp" tables=(emp) ignore=...
  • oracle 数据库导入导出语句

    千次阅读 2018-10-27 14:41:51
    imp命令用于把本地的数据库.dmp文件从本地导入到远程的oracle数据库中  1 将数据库test完全导出.用户名system/manager导出到D:daochu.dmp 代码如下: exp system/manager@test file=d:daoch...
  • Oracle数据库MERGE语句

    万次阅读 2018-07-15 17:44:06
    一、使用背景 当需要对一个表根据不同条件分别进行INSERT、UPDATE以及DELETE操作时,可以使用MERGE(融合,合并)语句。MERGE语句可以根据不同条件获取要插入、更新或删除到表中的数据行,然后从1个或多个数据源头...
  • 复杂sql语句,关于oracle数据库的复杂查询,复杂逻辑关系等等。是个不错的工具

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 378,999
精华内容 151,599
关键字:

oracle数据库基本语句