zoukankan      html  css  js  c++  java
  • 2.1 Oracle之DML的SQL语句之单表查询以及函数

      

    1.SQL简介

    对于不同的数据库来说,SQL语句是相通的,关系型数据库都以SQL语句为操作的标准,只是相应的数据库对应的函数不相同。

    SQL(Structured Query Language,结构化查询语言)是功能强大的数据库语言,用于·数据库通讯。

    1.2SQL的功能

    SQL 的功能可分为以下三组

    DML (Data Manipulation Language,数据操纵语言)用于查询和更改数据

    DDL   (Data Definition Language ,数据定义语言)用于定义数据的结构,创建,修改,删除数据库对象

    DCL   (Data Control Language,数据库控制语言)用于定义数据库权限

    2.单表sql的查询语句(很实用)

    大体结构:select   [字段|*   as    别名]  from [表名] where [条件 and|or]

    1.需要注意distinct 消除重复行  SELECT DISTINCT empno,job FROM emp ;

    2.用||连接显示信息      SELECT '编号是 ' || empno || '姓名是 ' || ename || '工作是 ' || job FROM emp ;

    3.可以做四则运算     求出年收入:SELECT ename , sal * 12 income FROM emp ;

    4.条件查询的where子句  

         重点的条件IS NOT NULL和 IS NULL 查询有佣金的人 : SELECT * FROM emp WHERE comm IS NOT NULL ;

        有两个条件时用AND(和|且)或者OR(或|并)连接       基本工资大于1500和有奖金的员工 :SELECT * FROM emp WHERE sal>1500 AND comm IS NOT NULL ;

        NOT()表整体相反       基本工资不大于1500和没有奖金的员工 :SELECT * FROM emp WHERE NOT( sal>1500 AND comm IS NOT NULL) ;  

        BETWEEN  小值|‘日期加单引号 ’ and 大值        

         查询工资在1500到2000的员工 :SELECT * FROM emp WHERE sal>1500 AND sal<3000  =   SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000 ; 

               单引号括字符信息必须大小写正确    查询名字是SMITH的员工:SELECT * FROM emp WHERE ename='SMITH' ;

        使用字段IN|NOT  IN()表同一字段的多条件查询 (数值和字符串都可以)        

        查询部门号为7369,7499,7521的员工信息:SELECT * FROM emp WHERE empno IN (7369,7499,7521) ;

        LIKE的模糊查询(可查日期加单引号)   注意_表一个未知字符,%表0个或多个未知字符            

        查询第二个名字带M的员工:SELECT * FROM emp WHERE ename LIKE '_M%' ;

        <> != 表示不等于        查询不是7396的员工信息: SELECT * FROM emp WHERE empno<>7369 ;

    5.对结果进行排序(ORDER  BY 排序)

    SELECT {DISTINCT} * | FROM {WHERE (s)} {ORDER BY 1, 2 ASC|DESC} ASC表升序 DESC表降序(默认)

    注意下第一排序和第二排序的区别 :在第一排序相同情况下进行第二排序

    6.函数相关(重要)

    单行函数:function_name 函数名(column列名|expression表达式,[arg1,arg2,…参数])

      0.1字符函数:UPPER(转大写),LOWER(转小写)、initcap()首大写、||连接CONCAT('hello ','world')substr('hello',1,3)截取、length('hello')长度、replace('hello','l','x')替换

      0.2数值函数:ROUND(789.536,2)四舍五入、TRUNC()截断、MOD取余、

      0.3 SYSDATE 当前日期、ROUND((SYSDATE-hiredate)/7)求之前星期数

      eg:to_date('2018-10-01','yyyy-MM-dd') ROUND(sysdate) 取当前不带日期

      eg:to_char(fa.last_update_date,'yyyy-mm-dd')>'2018-10-10'

      0.4 转换函数TO_CHAR() 换成字符、TO_NUMBER()换成数字、TO_DATE()换成日期、TO_CHAR(hiredate,'yyyy-mm-dd')

      0.5 通用函数 四则运算、(sal+NVL(comm,0))*12字段默认给指定数值

      IFELSEIFELSE = DECODE()

      SELECT DECODE(1,1,' 结果是1',2,' 结果时2',3,' 结果是3') FROM DUAL ;

  • 相关阅读:
    前后端分离开发中动态菜单的两种实现方案
    Spring Security 前后端分离登录,非法请求直接返回 JSON
    Spring Boot2 系列教程(九)Spring Boot 整合 Thymeleaf
    原创的离线版 Redis 教程,给力!
    Spring Boot2 系列教程(八)Spring Boot 中配置 Https
    Anaconda创建环境、删除环境、激活环境、退出环境
    开源一个功能完整的SpringBoot项目框架
    Spring Boot和Spring Cloud学习资源推荐
    Ubuntu 18.04下安装Steam顶级在线游戏平台
    终极手撕之架构大全:分布式+开源框架+微服务+性能优化,够不够?
  • 原文地址:https://www.cnblogs.com/Smileing/p/7380652.html
Copyright © 2011-2022 走看看