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字段默认给指定数值

  IF…ELSEIF…ELSE = DECODE()

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

2.1 Oracle之DML的SQL语句之单表查询以及函数的更多相关文章

  1. 2.2 Oracle之DML的SQL语句之多表查询以及组函数

    一.SQL的多表查询: 1.左连接和右连接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHE ...

  2. SQL语句 自连表查询。inner join用法,partition by ,列转行查询

    use mydb1 go -- 表T_Employee2 -- Id Name Position Dept -- 1 张三 员工 市场部 -- 2 李四 经理 销售部 -- 3 王五 经理 市场部 - ...

  3. 惊世骇俗的sql语句之连表查询

    select `product_skus`.id as skuId, `wname` as sku名称, if(`sku_attributes`.`status`=1,'上架','下架') as 状态 ...

  4. SQL Merge 语法 单表查询

    --项目中需要用到Merg语法,于是去网上查了资料,发现竟然都是多表查询,问题是我只有一张表,于是我纳闷了,后来我灵机一动,就搞定了!--表名:t_login(登录表)--字段:f_userName( ...

  5. sql多表查询(单表查询略过)

    表library: 表borrow: 表reader: 1.等值连接:(常用) 原理:将多张表组合成一个逻辑大表,即字段相加记录相乘(笛卡尔积). 语法:select * from 表A,表B whe ...

  6. 查询Oracle正在执行的sql语句

    --查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, ...

  7. oracle 监控执行的sql语句

    oracle 监控执行的sql语句 select * from v$sqlarea a where module='PL/SQL Developer' order by a.FIRST_LOAD_TI ...

  8. Oracle数据库常用的Sql语句整理

    Oracle数据库常用的Sql语句整理 查看当前用户的缺省表空间 : select username,default_tablespace from user_users; 2.查看用户下所有的表 : ...

  9. Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数

    Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数: select trunc(1.23856789,2) from dual round(m,n) 可以四舍五入 trunc ...

随机推荐

  1. 《移动App测试实战》读书笔记

    第一章 概述 什么是移动产品? 移动产品是一个可以在移动设备上安装的App,或者一个可以在移动设备上访问的定制页面. 1.1 研发流程 互联网产品的研发过程主要涉及以下职位分工. 产品经理:负责产品方 ...

  2. CentOS7 安装 Docker 以及 Shipyard管理端

    简介: Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止. Docker 帮助系统管理员和程序员在容器中开发应用 ...

  3. Hbuilder软件打包简述

    Hbuilder打包简述: : Hbuilder安装打包Android不需要任何证书可以正常打包. : ios打包需要.mobileprovision证书和P12文件.(.mobileprovisio ...

  4. Java监听器原理及实例

    一.监听器原理 监听器是基于事件驱动的,用于对操作事件进行监听.处理,是观察者设计模式的应用 监听器三元素: 2.1 事件源:事件发生的源头 2.2 事件:对事件进行抽象.封装 2.3 监听器:用于监 ...

  5. vue组件中,iview的modal组件爬坑--modal的显示与否应该是使用v-show

    这是我第一次写博客,主要是记录下自己解决问题的过程和知识的总结,如有不对的地方欢迎指出来! 需求:点击btn,弹出modal显示图表(以折现图为例) 这应该是很基本的需求也是很容易实现的,代码和效果如 ...

  6. python if-elif-else 结构判断输入值处于何种年龄段

    输入变量 age 的值,再编写一个 if-elif-else 结构,根据 age的值判断处于人生的哪个阶段.如果一个人的年龄小于 2岁,就打印一条消息,指出他是婴儿.如果一个人的年龄为 2(含)-4岁 ...

  7. table(表格)中的标签和属性

    1.表格由 <table> 标签来定义.行( <tr> ),单元格(<td> ) 字母 td 指表格数据(table data),即数据单元格的内容.数据单元格可以 ...

  8. laravel when 的用法

    当你在使用where语句有前提条件时,比如某值为1的时候才执行where子句,否则不执行,这个时候,laravel5.5新出了一个简便方法when($arg,fun1[,fun2]). 具体用法如下: ...

  9. git——本地项目上传到git

    1.对于github相信大家写自动化代码的人都不陌生,而且这也可以说是你进军自动化的一项必须解锁的技能,今天抽空开始整理笔记,顺便整理下github的基本使用,从本地上传代码托管: 一.从无到有:先注 ...

  10. pgsql 变量赋值方法

    1.网上一般说的方法如下: :=,赋值,比如user_id := 20; select into 赋值,比如 SELECT INTO myrec * FROM emp WHERE empname = ...