OracleSQL语句

查询表空间

查询当前用户所有表名及其所属表空间

select table_name 表名 ,tablespace_name 所使用表空间 from user_tables;

创建表

-- Create table  创建表
create table MES.SYS_NAME
(
  emp              VARCHAR2(10),
  upload_time      DATE default sysdate, //系统默认时间
  id               VARCHAR2(20),
  model_name       VARCHAR2(20)
)
tablespace MESTBS   --表段MES.SYS_NAME放在表空间MESTBS中
  pctfree 10     --块保留10%的空间留给更新该块数据使用
  initrans 1    --初始化事务槽的个数
  maxtrans 255   --最大事务槽的个数
  storage   --存储参数
  (
    initial 64  --区段(extent)一次扩展64k
    next 8        --下一个8
    minextents 1    --最小区段数
    maxextents unlimited  --最大区段无限制 
  );
-- Add comments to the columns 给每个字段添加注释
comment on column MES.SYS_NAME.emp
  is '用户';
comment on column MES.SYS_NAME.upload_time
  is '上传时间';
comment on column MES.SYS_NAME.id
  is 'id';
comment on column MES.SYS_NAME.model_name
  is '名称';


分页查询

/*

* firstIndex:起始索引 30

* pageSize:每页显示的数量 10

* sql:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句

*/
 select * from(select a.*,ROWNUM rn from(sql) a where ROWNUM<=(firstIndex+pageSize)) where rn>firstIndex

多字段模糊查询及分页

 async selectehrdb() {
    const { ctx,app}=this;
    ctx.validate({   
        parkey: {  type: 'string', required: false,  range: { max: 30  }, desc: '关键字' },
        page:{ required: true, type: "int", defValue: 0,  desc: "页码" },
        limit:{  required: true, type: "int", defValue: 0, desc: "数量"}
    })
    let { parkey} = ctx.request.body;
    //不能用this
    let page = ctx.params.page ? parseInt(ctx.params.page) : 1;
    //这里params还是query看路由 改
    let limit = ctx.params.limit ? parseInt(ctx.params.limit) : 10;
    let offset = (page - 1) * limit;
    let pageSize=offset+limit
    let row={}
    let a,b
    if(parkey){
        b=  await this.service.tool.echo(`select count(*) cou from EHR.OP_EMP_OY 
        where EMPLOYEEID like '%${parkey}%' or NAME like '%${parkey}%' or UNITCODE like '%${parkey}%' or UNITNAME like '%${parkey}%' and LIZHI=0`);

        a=  await this.service.tool.echo(`select * from (select  g.*,rownum rn from (SELECT* FROM EHR.OP_EMP_OY 
        where EMPLOYEEID like '%${parkey}%' or NAME like '%${parkey}%' or UNITCODE like '%${parkey}%' or UNITNAME like '%${parkey}%' and LIZHI=0) g  
       where  rownum <= ${pageSize}) where rn > ${offset}`);
    }else{
           //多个字段模糊查询
    b=  await this.service.tool.echo(`select count(*) cou from EHR.OP_EMP_OY where LIZHI=0`);

    a=  await this.service.tool.echo(`select * from (select  g.*,rownum rn from (SELECT* FROM EHR.OP_EMP_OY where LIZHI=0) g  
       where  rownum <= ${pageSize}) where rn > ${offset}`);
    }
    row.count=b[0].COU   //汇总多少条数据
    row.rows=a
   ctx.apiSuccess(row);
  }

oracle两表关联查询
左连接(left join……on):包含左边表的全部行,不管右边表的是否存在与它们匹配的行
情景描述
查询学生表student,sname,sex,age信息及所在班级clazz表
使用左连接

select sname,sex,age,cname from student t1
left join clazz t2 on t1.cid=t2.cid

左连接的方式实现,学生作为主表,当学生表中的班级cid在班表中找不到时,班级名称cname填充内容为空;
限制显示的字段 第一个表全部显示 第二个表 就显示一个字段

select t1.*,t2.route_id,t2.route_name from sajet.sys_part t1
left join  sajet.sys_route t2 on t1.ROUTE_ID=t2.ROUTE_ID

oracle三表关联查询
表A 关联第一张表B 关联第二张表C

select t1.*,t2.route_id,t2.route_name,t3.EMP_NO from sajet.sys_part t1
left join  sajet.sys_route t2 on t1.ROUTE_ID=t2.ROUTE_ID
left join  sajet.sys_emp t3 on t1.UPDATE_USERID=t3.EMP_ID

内连接(inner join……on/join on):只连接匹配的行
两表关联查询 和 三表关联查询

select t1.*,t2.route_name from sajet.sys_part t1
inner join sajet.sys_route t2
on t1.ROUTE_ID=t2.ROUTE_ID;

select t1.*, t2.route_name, t3.emp_no
  from sajet.sys_part t1
 inner join sajet.sys_route t2
    on t1.ROUTE_ID = t2.ROUTE_ID
 inner join sajet.sys_emp t3
    on t1.update_userid = t3.emp_id ;

插入数据 修改 删除

-- 插入数据
INSERT into test.STUINFO(STUID, STUNAME, SEX, AGE, CLASSNO, STUADDRESS, GRADE, ENROLDATE, IDNUMBER)
values ('1', '龙七', '1', 26, 'C201801', '厦门市', '2018', to_date('01-09-2018', 'dd-mm-yyyy'),
 '35030219924546732');

-- 查询数据
select * from test.STUINFO;

-- 删除表
drop table test.STUINFO;

-- 删除数据
delete from test.STUINFO where STUID=2

-- 修改数据
update test.STUINFO set AGE=33 where STUID=1

oracle不区分大小写,建表语句中是否增加了双引号,如果不增加双引号,那么可以理解为不区分大小写,因为oracle或自动将不加双引号的转为大写。如果加双引号,需要看单个字段是否全为大写,如果该字段全为大写,那么该字段就不区分大小写

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340