zoukankan      html  css  js  c++  java
  • oracle 常用语句2

    -- number(38)
    -- char(2000)
    -- varchar(4000)
    
    create table student(
    sno    number(3) primary key, 
    sname  varchar2(40) default ('佚名'),
    sex    char(2) check(sex in('', '', '')),
    age    number(2) check( age between 20 and 30 ),
    birthday date,
    sclass varchar2(10)
    );
    
    -- insert delete update
    -- 事务: 一组相关的操作
    -- commit   提交事务
    -- rollback 回滚事务
    
    
    -- 添加数据 
    -- 格式1: insert into 表 values(所有列的值);
    
    insert into stuinsert into student values(1, 'jack', '', 23, null, 'ab11');dent values(1, 'jack', '', 23, null, 'ab11');
    insert into student values(2, 'tom', '', 21, null, 'ab12');
    commit;
    
    -- 格式2: insert into 表(指定列) values(指定列的值);
    insert into student(sno, sname, birthday) values(3, 'mary', '7-7月-2017');
    insert into student(sno, sname, birthday) values(4, 'mary', to_date('2017-06-10', 'yyyy-mm-dd'));
    commit;
    
    
    
    select * from student;
    
    -- 修改数据 update
    -- 格式: update 表 set 列=新值,... [where clause]
    
    -- 把吴丹阳的年龄减小2岁,手机号改为13888888888
    update studentinfo set s_age = s_age - 2, s_tel = '13888888888' where s_name = '吴丹阳';
    commit;
    
    select * from studentinfo s;
    -- 删除数据 delete
    -- 格式: delete from 表 [where clause]
    
    -- 删除吴丹阳的学生信息
    delete from studentinfo where s_name = '吴丹阳';
    commit;
    
    
    -- 查询数据 select
    -- select 列 from 表 [where clause];
    select * from classinfo c;
    select * from studentinfo s;
    select * from teacherinfo t;
    
    -- 查询年龄大于23岁的男生的信息
    select * from studentinfo s where s.s_age > 23 and s.s_sex = '';
    
    -- 查询家庭地址为空的学生信息
    select * from studentinfo s where s.s_address is null;
    
    -- 查询毕业学校不为空的学生信息
    -- is null
    -- is not null
    select * from studentinfo s where s.s_school is not null;
    select * from studentinfo s where not s.s_school is null;
    
    -- 查询年龄大于24的本科生信息
    select * from studentinfo s where s.s_age > 24 and s.s_xueli = '本科';
    
    -- 查询年龄是19,24,26的学生信息
    select *
      from studentinfo s
     where s.s_age = 19
        or s.s_age = 24
        or s.s_age = 26;
        
        
    select * from studentinfo s where s.s_age in (19, 24, 26);
    
           -- = any() 等于括号里的任何一个值
    select * from studentinfo s where s.s_age = any(19, 24, 26);
    
           -- > any() 大于最小值
    select * from studentinfo s where s.s_age > any(22, 24, 26);
    
    
           -- < any() 小于最大值
    select * from studentinfo s where s.s_age < any(22, 24, 26);
    
           -- > all() 大于最大值
    select * from studentinfo s where s.s_age > all(22, 24, 26);
    
           -- < all() 小于最小值
    select * from studentinfo s where s.s_age > all(22, 24, 26);
    
    
    -- distinct 去除查询结果重复值
    -- all 不去除查询结果重复值
    
    -- 查询所有的学历
    select distinct s.s_xueli from studentinfo s;
    
    select all s.s_xueli from studentinfo s;
    
    
    
    select distinct s.s_xueli, s.s_sex from studentinfo s;
    
    -- order by 排序
    -- order by 列 [asc(默认方式)|desc]
    
    
    -- 查询所有学生的姓名和年龄,并按照年龄降序排序
    select s.s_name, s.s_age from studentinfo s order by s.s_age desc;
    
    
    -- 模糊查询
    
    -- %  匹配任意多个字符
    -- _  匹配一个字符
    
    -- 查询以S字符开头的所有员工姓名
    select e.ename from emp e where e.ename like 'S%';
    
    
    -- 查询以S字符结尾的所有员工姓名
    select e.ename from emp e where e.ename like '%S';
    
    -- 查询包含S字符的所有员工姓名
    select e.ename from emp e where e.ename like '%S%';
    
    -- 查询名字包含5个字符的员工姓名
    select e.ename from emp e where e.ename like '_____';
    
    -- 查询名字以S字符开始且包含5个字符的员工姓名
    select e.ename from emp e where e.ename like 'S____';
    
    
    ------------- 子查询 --------------
    --emp 员工信息表(employee)
    -- empno 员工编号
    -- ename 员工姓名
    -- job   职位
    -- mgr   主管员工编号(manager)
    -- hiredate 入职日期
    -- sal   工资(salary)
    -- comm  提成
    -- deptno   部门编号(department number)
    
    
    -- dept 部门信息表(department)
    -- deptno 部门编号
    -- dname 部门名字
    -- loc    上班地点 (location)
    
    select * from emp e;
    select * from dept d;
    
    --查询SMITH所在部门的名字
    
    select d.dname
      from dept d
     where d.deptno = (select e.deptno from emp e where e.ename = 'SMITH');
    
    -- 查询SMITH的主管名字
    
    select a.ename
      from emp a
     where a.empno = (select b.mgr from emp b where b.ename = 'SMITH');
    
    select * from emp e;
    -- 查询工资高于1600的员工信息
    select * from emp e where e.sal > 1600;
    
    -- 查询工资高于ALLEN的员工信息
    select * from emp e where e.sal > (select sal from emp where ename='ALLEN') ;
    
    -- 查询工资高于30号部门所有人的员工信息
    
    select *
      from emp e
     where sal > all(select sal from emp where deptno = 30);
    
    -- 查询销售部(SALES)的员工姓名
    
    select e.ename
      from emp e
     where e.deptno = (select d.deptno from dept d where d.dname = 'SALES');
    
    -- 查询销售部的工资高于1300的员工姓名
    select e.ename
      from emp e
     where e.sal > 1300
       and e.deptno = (select d.deptno from dept d where d.dname = 'SALES');
    
    -- 伪列 rowid,rownum
    -- rowid 行id,标示该行的物理存储位置
    -- rownum 行编号
    select rowid,rownum,e.* from emp e;
    
    -- 分页查询
    
    -- 查询员工表前三行
    select * from emp e where rownum <= 3;
    
    --查询员工表第三行到第五行
    select a.*
      from (select rownum r, e.* from emp e) a
     where r >= 3
       and r <= 5;
    
    -- 查询工资最高的三个员工信息
    
    -- 先筛选数据,再对选出的数据(行)排序
    --select * from emp e where rownum <= 3 order by e.sal desc;
    select * from (select * from emp order by sal desc) e where rownum <= 3;
    
    --按照工资降序排序,查询员工表第三行到第五行
    select a.*
      from (select rownum r, e.* from (select * from emp order by sal desc) e) a
     where r >= 3
       and r <= 5;
  • 相关阅读:
    Django学习(二) Django框架简单搭建
    Django学习(一) Django安装配置
    Python学习(一) Python安装配置
    注册第一天,纪念一下
    小程序笔记
    详解HTML5中的进度条progress元素简介及兼容性处理
    服务管理
    yum
    管道,输出,管道,重定向,grep
    VIM
  • 原文地址:https://www.cnblogs.com/guog1/p/8508315.html
Copyright © 2011-2022 走看看