zoukankan      html  css  js  c++  java
  • Oracle ——————建表、select、视图

    --建表
      --  关键字 : create
      --  用法 :   
      /* 
      create table table_name 
      (
             lie1_name  数据类型  是否为空,
              lie2_name  数据类型  是否为空,
               lie3_name  数据类型  是否为空,
               ……………………………………
      );
      
      */
    create table infos
    (
          stuid varchar2(7) not null ,
          
          stuname varchar2(10) not null ,
         
          gender varchar2(2) not null ,
          
          age number(2) not null ,
          
          seat number(2) not null ,
          
          enrolldate date ,
          
          studress varchar2(50) ,
          
          classno varchar2(4) not null
    ) ;
    
    -- 添加约束
    
    --添加主键
    alter table infos add constraint pk_infos primary key(stuid) ;
    
    --check 约束
            -- 性别只能是男或女
            --作用: 条件限制
    alter table infos add constraint ck_infos_gendertest check(gender='' or gender='') ;
    
    --唯一约束
          --作用:使该列内容不重复
    alter table infos add constraint un_stuname unique(stuname) ;
    
    --日期格式转换
    select to_char(sbirthday , 'yyyy-mm-dd hh24:mi:ss') from student ;
    
    --查询系统时间
    select sysdate from dual ;
    
           -- dual 伪列 ,只有一行一列数据
           
    --绝对值函数
                   --abs() 括号内是数值型或可以隐形转换成数值型
    select abs(122),abs(-123),abs(0) from dual ;
    
    --数据添加
    
                        -- insert into 表名 valus
    insert into student(sno,sname,ssex) values ('122','小明','') ;
    
           --添加日期   
           --需要类型转换     to_date
    insert into student values(to_date('1990/2/3','yyyy/mm/dd')) ;
    
    
    --提交事务
    
    commit ;
    
    --回滚事务
    
    rollback ;
    
    --数据的复制
    
             -- insert into 新的表名 select * from 要复制的表名 ;
             
    --查询数据去除重复
                       --distinct
                       --select distinct 列名 from 表名 ;
                       -- * 代表所有字段信息
                       -- != 或 <> 表示不等于
                       --|| 表示拼接
             
    --修改表
                           --update 表名 set 条件或添加内容
    update student set sclass = '666' where sname='小明' ;                      
    
    update student set sclass = '666' where sclass is null ;
    
    
    --删除表
                   --delete 
    delete student where sname = '小明' ;
    
    --快速清空一个表
                      --truncate 
    --truncate table 表名 ;              
                          
    --排序
    
               --order by asc/desc  正序/倒序  
               --放于where条件后
         
    
    --分组
               --group by 列名
    
    
    --查询位于两个数值之间的记录
               --两种方法
               
               select degree from score where  degree >70 and degree < 85 ;
               --between 后面必须是小的数值
               select degree from score where degree between 70 and 85 ;          
         
    --查询 位于66,77,88 中的成绩
    
    select degree from score where degree=66 or degree=77 or degree=88 ;
    
    select degree from score where degree in (66,77,88) ;         
    
    
    /*         
        排序用法  order by
    
                 asc 正序,默认 ,可不加
          
                  desc 降序 ;
          
                   语法: order by 字段名1 asc/desc ,字段名2 asc/desc ...
          
                     字段在前的优先级高,  先按字段1排序,再按字段2排序      
                     
                     有条件限制语句的话,放在where语句后面
    
    */
    
    
    --               去除查询数据中的重复记录
    --distinct
    --用法
    --select distinct lie_name from  biao_name ;
    --实例
    select distinct depart from teacher ;
    
    
    --     查询两个数据之间
    
    --     比较运算     例:
    select * from score where degree > 60 and degree < 80 ; 
    
    --    关键字:between 小值 and 大值  。 例:
    select * from score where degree between 60 and 80 ;
    
    
    --     内置函数
    
    --     聚合函数   返回单个值
    ---    记录条数(列名内容不为空,一般统计主键列)
    
    select count(*) from student where sclass = '95031';
    
    --     成绩求和
    
    select sum(degree) 总成绩 from score ;
    
    --     平均成绩
    
    select avg(degree) 平均值 from score ;
    
    --     最高分
    
    select max(degree) 最高分 from score ;
    
    --     最低分
    
    select min(degree) 最低分 from score ;
    
    --     伪列
                       --       rownum  内置列
    select * from score where rownum = 1 ;  
    
    --查询每门课的平均成绩大于80的
                   --   先cno 分组,在 内置函数
    select cno , avg(degree),count(cno) from score group by  cno having avg(degree) > 80 ;
    
    select * from (select cno , avg(degree) a,count(cno) from score group by  cno )  where a> 80 ;
    
    
    --纵向查询
    --两个表之间查询的列数要相同,对应列数的数据类型要相同
    
    select sname,ssex,sbirthday from student 
    union 
    select tname,tsex,tbirthday from teacher ;
    
    
    --模糊查询
    
           --查询姓王的学生信息
    select * from student where sname like '王%' ;
           --% 代表任意个数的字符
           --  一个下划线代表一个字符 _
    
    
    -- 内置函数
    
                       --下限值
                       
                       select floor(123.12) from dual ;
                       
                       --上限值 
                       
                       select ceil(123.12) from dual ;
                        
                       --四舍五入
                       
                       select round(123.89) from dual ;
                       
                              --保留位数四舍五入
                              
                              select round125.456,2from dual ;
                              
                       --直接舍掉
                                     --作用: 格式化数据,统一格式
                       
                       select trunc(123.456) from dual ;
                              --并不会四舍五入
                       select trunc(123.456,2) from dual ;
                       
                       --绝对值
                       
                       select ABS(-23) from dual ;
                       
                       --求余数 ,求模
                       
                       select mod(78,69) from dual ;
                       
                       --计算字符串长度
                       
                       select tname,length(tname) from teacher ;
                       
                       --去空格
                              --去前后空格
                       select trim(' a b cf  ') from dual ;
                              --去前空格 ltrim
                              select ltrim(' sdf ') from dual ;
                              --去后空格 rtrim
                              select rtrim(' sdf ') from dual ;
                              
                       --查找替换
                       
                       select replace(' s df g  ',' ') from dual ;
                       
                       select sname,replace(sname,'','') from student ;
                       
                       --查找字符串(空格也算一个),从1开始,找不到返回0
                       
                       select instr('sd  wef','w') from dual ;
                       
                       --截取字符串
                                         --3 第几位开始截取
                                         --5 截取长度
                       select substr('sdfga fgh',3,5) from dual ; 
                       
                       select sname,substr(sname,1,1) || '同学' from student ;
                       
                       --null值处理
                       
                       select nvl(degree,0) from score ;
                       
                       select nvl2(degree,55,0) from score ;
                       
                       select t.*,decode(ssex,'','1','','2') from student t ;
                       
                       --返回当前用户登录名
                       
                       select user from dual ;
                      
    
    
    ---取得序列的当前值
    select sq_test.nextval from dual ;
    
    select sq_test.currval from dual ;
    
    insert into weadafa values(sq_test.nextval,'王五') ;
    commit ;
    select * from weadafa ;
    
    --视图
    
    create or replace view v_score as
      select t.*,s.sname,c.cname
        from score t,student s,course c where t.sno=s.sno and t.cno=c.cno ;
  • 相关阅读:
    大数据面试(hbase)
    大数据面试(spark)
    大数据面试(kafka)
    ssm整合cas单点登录
    sm整合shiro权限控制
    js中的this机制
    xftp个人版下载
    window.innerHeight属性和用法
    使用elementui图标按钮调整宽高后图标不居中
    git常用的操作记录一下
  • 原文地址:https://www.cnblogs.com/20gg-com/p/5972083.html
Copyright © 2011-2022 走看看