zoukankan      html  css  js  c++  java
  • sql plus及SQL语句

    1.sql plus

    1,SQL plus的定义
    sql plus是用来和oracle进行交互的工具。可电脑端使用,也可以在服务器上使用
    
    2,启动SQLplus
       在cmd界面直接输入SQLplus就可进入
    3,常用命令
             show  显示SQL plus中的信息
          connect (缩写conn) 先无条件断开数据库用户的链接,再次输入可再次建立链接
       disconnect (缩写desc) 断开当前连接
          注意:desc 为描述命令,只能在命令窗口执行
                语法:desc 表名   查询表的表头名字及类
              
               set    设置SQLplus中的相关信息
              help    获取SQLplus命令帮助
       clear scree    清屏
        exit或quit    退出
    
    4,创建用户
           第一部分:创建一个普通用户
       
                     语法:create user 用户名 identified  by 密码;       
    
           第二部分:授权此用户   
                
                     授权角色在oracle中有3个
                             DBA  系统管理权限  
                         connect  创建会话链接权限
                        resource  操作数据库对象的权限
          
                        语法:grant 权限,权限..to 用户名;
                  
    
                      修改密码:alert user 用户名 identified 新密码;
                      删除用户:drop user 用户名;
                      账户解锁:alert user 用户名 account unlock;
    
                      
    
             最后导入SQL脚本:第一,把脚本内容复制黏贴到SQLplus;
                              第二,@文件路径  文件名.后缀名

    2.sql查询语句

     1,SQL条件查询
          where字句用来过滤查询的数据,它对字面量大小写是敏感
    
         语法:
            select 列名1,列名2...
            from 表名
            where 筛选的条件;
       
      2.  --select后面是*,代表查列表的所有的内容
          select * from 表名;

    3.SQL运算符

    a.比较运算符
    >, <, =, <=, >=, !=(^=,<>) --不等于
    
       --查询在41部门的员工名字,工资  
          select 
           first_name,salary   --(此处布局为select语句的书写格式)
          from 
             s_emp           
          where
         dept_id=41;
    
    
        --找出工资大于1200的员工的全名、工资、职位(把两个名字连起来用||' '|| 在引号中间可放符号        汉字等根据客户需要)
          select 
              first_name||' '||last_name 全名,salary 工资,title 职位 
                                --汉字代表前面的别名(salary显示出来的列名是工资)
          from s_emp
          where salary >1200;
    
         b.逻辑运算符 
            and  ,or   --and优先级高于or
         
          --查出41部门中工资高于1200的员工名字,工资;
             select first_name, salary ,dept_id
                from s_emp
             where 
               dept_id = 41 and salary > 1200;   
          --查出41,50,42部门的员工名字,薪水;
             select first_name,salary from s_emp where dept_id=41 or dept_id=42  or dept_id=50;
         
     
         c.其它运算符 
    1.in()    相当于or 。 取多个数值,多个值之间使用逗号隔开
              not in() 相当于and。 显示出来的意思为不包含括号里面的内容
    
                例:deot_id in(41,42,50)相当于dept_id=41 or dept_id=42  or dept_id=50;
                 
                   --查出在41,42,50部门的员工名字,薪水;
                      select first_name,salary from s_emp where dept_id in(41,42,50); 
    
                例:dept_id between 2 and 6 在指定的范围之内,是全闭空间;相当于dept_id>=2 and                      dept_id<=6
                    dept_id>2 and dept_id<6 非全闭空间
                  
                   --找出工资在1200到1500之间的员工名字;(全闭和不全闭)
                    全闭:
                       select first_name,salary 
                       from s_emp 
                       where salary between 1200 and 1500;
                    非全闭:
                        select first_name,salary 
                        from s_emp 
                        where salary >1200 and salary <1500;
    
    
            
            2.is null
              is not null
              注意:查询数据时条件是否为null,我们使用关键字is null 或者is not null ,千万不能使                用=(即等号)
                 
                --找出工资大于1500并且没有提成的员工;
                  select * from s_emp 
                  where salary > 1500 and commission_pct is null;
    
            3.模糊查询:like ''
                       not like '' 
                       引号里面用通配符: _ 英语状态下的下划线,代表任意单个字符
                                          % 代表任意多个字符 
                      --查询名字是以M打头的员工;
                        select * from s_emp where first_name like 'M%';
                      
                      --查出姓名中第三个字母是e的员工;
                        select * from s_emp where first_name like '__e%';
                     
                      --查出姓名不带a的员工;
                        select * from s_emp where first_name not like'%a%'; 

    4.order   by排序

    排序字句:
      select 列名1,列名2...
      from 表名
      where 查询条件
      order by 列名 asc(升序,默认可以不写)|desc(降序)
    
       --找出查询职位是Stock Clerk的员工全名、工资,并按照工资的降序排序
         select first_name||' '||last_name 全名,salary 工资 
         from s_emp
         where title = 'Stock Clerk'
         order by salary desc;
    
       --查询职位中带vp(大写)的员工名字,工资,并按照工资降序排序;
          select first_name,salary,title  from s_emp where title like '%VP%' 
          order by salary desc;
    
       --查询出年薪(包含提成)低于25000的员工名称,职位,年薪,并按照年薪升序排序;
          select
             first_name 名字,title 职务,salary 薪资,salary*12*(1+nvl(commission_pct/100,0)) 年薪
          from
             s_emp
          where
             salary*12*(1+nvl(commission_pct/100,0))<25000 
          order by
             salary*12 asc;
  • 相关阅读:
    changing a pointer rather than erasing memory cells
    验证码识别 edge enhancement 轮廓增强 region finding 区域查找
    Manipulating Data Structures
    passing parameters by value is inefficient when the parameters represent large blocks of data
    Aliasing 走样
    Artificial Intelligence Research Methodologies 人工智能研究方法
    Thread safety
    include pointers as a primitive data type
    flat file
    functional cohesion
  • 原文地址:https://www.cnblogs.com/lxy151/p/7806173.html
Copyright © 2011-2022 走看看