zoukankan      html  css  js  c++  java
  • Oracle-18-select语句初步&SQL中用算术表达式&别名的使用&连接运算符%distinct&where子句

    一、一般SELECT语句的格式例如以下:

    1.查询指定表的全部列

    select * from 表名 [where 条件] [group by 分组列名] [having 聚合函数] [order by 排序列名 ASC| DESC]

    在表名地方,能够写多个表

     

    2.查询指定表的部分列:

    select {[distinct]列名。列名,…}from 表名 [where 条件] [group by 分组列名] [having 聚合函数] [order by 排序列名 ASC| DESC]

    当中keyworddistinct表示去除部分列中反复数据,

    仅仅是在查询的时候去除,而该表内部数据纹丝不动

     

    二、查询指定的列

    假设想查询某一个或是多个指定列。能够编写相似于以下的SQL语句。

     

    1:查询学生表部分列,如学号、姓名

    select sno,snamefrom student

    当中sno,sname分别为学生表的列名。student为学生表的表名,例如以下图:


    2:查询学生表全部信息,例如以下图:


    三、在SQL语句中能够使用算术表达式:

    +、-、*、/。

     

    如:selectempno,ename,sal+500 from emp;

    所以sal列能够做运算,然后在查询结果中显示

    【注意】select后假设加*,那么*之后不能再加别的东西,比方

    select *, sname from A是错误的。

     

    3:如查询学生表部分列。且age列各项数据加20。例如以下图:


    【注意】尽管查询结果中将age列全部数据加20,可是实际表中的数据没有发生改变。

     

    四、查询语句中别名的使用

    在查询语句中,我们能够为表或者列加上别名

    1.在列上加别名:

    (1)第一种写法

    select empno as “员工编号”,ename as “员工名称” from emp


    (2)另外一种写法

    select empno 员工编号,ename 员工名称 from emp


    (3)第三种写法

    select empno “员工编号”,ename “员工名称” from emp


    4:为学生表中的sno和sname加入别名,例如以下图:


    2.为表加别名

    select empno, ename from empa

    即将原表名emp改成别名a

     

    5:依据现有的student表和sc表,查询s001学号的学生成绩。

    解:先查询student表和sc表信息。例如以下图:



    再两表联查。这个兴许会学到:


    对于命令:

    SQL>selecta.sno,sname,score from student a, sc b

          2 where a.sno = ‘s001’ and a.sno = b.sno;

    当中a和b分别为student表和sc表别名。

    所以为表定义别名的用处是简化代码书写,原来的student.sno如今简化成a.sno。

     

    五、连接运算符

    在SQL查询语句中能够将两列查询的结果连接在一起,通过“||”实现。

    SQL>select empno || ename from emp;


    6:将student表中的sno和sname两列合并。


    为了美观。能够为列加上别名:


    拓展:能够为每列中的数据合并新的数据。比方把student表中sname和sno列合而且合并新数据。


    【注意】查询语句select再怎么操作都不会改变表中的数据。


    六、DISTINCT使用

    假设查询的结果中有反复的值,能够使用DISTINCT对反复值进行过滤。

    语法结构:SQL>select distinct 列名from 表名;

     

    7:查询sc表中信息,去反复

    解:首先查询sc表中全部数据


    然后查询sc表的cno列数据


    利用distinct去反复


    七、WHERE子句使用

    在SELECT语句中使用WHERE子句来过滤查询出来的结果。

    语法格式:

    1where 列名比較操作符数值;

    2where 列名比較操作符表达式;

    3where 列名比較操作符列名;

    Oracle提供了例如以下经常使用的比較操作符:

    (1)>

    (2)<

    (3)=

    (4)<=

    (5)>=

    (6)<>或 != (这俩都表示不等于)

    (7)between … and …

    (8)in

    (9)like

     

    8:利用where子句过滤出student表中姓名为3个字的学生信息。

    解:查询student表全部数据


    利用where过滤出姓名为3个字的学生信息


    事实上例如以下图中SQL语句也是where子句,两表联查兴许会具体解释。


    9:查询工资大于1500元的员工编号和姓名

    select empno,ename from emp where sal > 1500;

    10:查询职位不是“CLERK”的员工编号和姓名

    select empno,ename from emp where job <> ‘CLERK’

    11:查询工资从1500到2900的员工信息

    select empno,ename from emp where sal between 1500 and 2900

    12:查询工资是1500,3000。2000的员工信息

    select empno,ename from emp where sal in (1500,3000,2000);


    八、AND、OR、NOT使用

    AND、OR、NOT是作为Oracle中的3个逻辑运算符(操作符)。它们能够把搜索条件中的各个部分组合起来。

     

    比方:查询工资大于1500且职位为“SALESMAN”的员工信息

    SQL>selectempno, ename from emp

    2 where sal > 1500 and job =’SALESMAN’;

    比方:查询“comm”这列非空的员工信息

    SQL>selectempno, ename, comm from emp

          2 where comm is notnull’;

     

    13:查询player表中game_id列的非空数据和空数据

    解:首先查询player表全部数据


    然后查询player表game_id列中非空数据


    查询player表game_id列中空数据


  • 相关阅读:
    开源图标字体 uiw-iconfont v1.2.6 发布,新增图标
    OAuth授权登录
    网站视觉设计规范
    LOGO有哪几种常规设计思路?
    Web设计规范----控件、组件
    前端工程师的新选择WebApp
    openstack学习-网络管理 (转)
    理解OpenStack与SDN控制器的集成(转)
    NFV MANO 架构
    Raid 磁盘阵列
  • 原文地址:https://www.cnblogs.com/llguanli/p/8298098.html
Copyright © 2011-2022 走看看