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字段默认给指定数值
IF…ELSEIF…ELSE = DECODE()
SELECT DECODE(1,1,' 结果是1',2,' 结果时2',3,' 结果是3') FROM DUAL ;
2.1 Oracle之DML的SQL语句之单表查询以及函数的更多相关文章
- 2.2 Oracle之DML的SQL语句之多表查询以及组函数
一.SQL的多表查询: 1.左连接和右连接(不重要一方加(+)) SELECT e.empno,e.ename,d.deptno,d.dname,d.loc FROM emp e,dept d WHE ...
- SQL语句 自连表查询。inner join用法,partition by ,列转行查询
use mydb1 go -- 表T_Employee2 -- Id Name Position Dept -- 1 张三 员工 市场部 -- 2 李四 经理 销售部 -- 3 王五 经理 市场部 - ...
- 惊世骇俗的sql语句之连表查询
select `product_skus`.id as skuId, `wname` as sku名称, if(`sku_attributes`.`status`=1,'上架','下架') as 状态 ...
- SQL Merge 语法 单表查询
--项目中需要用到Merg语法,于是去网上查了资料,发现竟然都是多表查询,问题是我只有一张表,于是我纳闷了,后来我灵机一动,就搞定了!--表名:t_login(登录表)--字段:f_userName( ...
- sql多表查询(单表查询略过)
表library: 表borrow: 表reader: 1.等值连接:(常用) 原理:将多张表组合成一个逻辑大表,即字段相加记录相乘(笛卡尔积). 语法:select * from 表A,表B whe ...
- 查询Oracle正在执行的sql语句
--查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, ...
- oracle 监控执行的sql语句
oracle 监控执行的sql语句 select * from v$sqlarea a where module='PL/SQL Developer' order by a.FIRST_LOAD_TI ...
- Oracle数据库常用的Sql语句整理
Oracle数据库常用的Sql语句整理 查看当前用户的缺省表空间 : select username,default_tablespace from user_users; 2.查看用户下所有的表 : ...
- Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数
Oracle中,利用sql语句中的函数实现保留两位小数和四舍五入保留两位小数: select trunc(1.23856789,2) from dual round(m,n) 可以四舍五入 trunc ...
随机推荐
- JDK(六)JDK1.8源码分析【集合】LinkedHashMap
本文转载自joemsu,原文连接 [JDK1.8]JDK1.8集合源码阅读——LinkedHashMap LinkedHashMap的数据结构 可以从上图中看到,LinkedHashMap数据结构相比 ...
- [BJWC2018]最长上升子序列
十分感谢GXZ大佬的讲解,此处致以敬意!emmmm在初学状压DP时就理解了如此精妙的一道题,感到很开森~ \(Address\) ________________ #\(\color{red}{\ma ...
- 404 Note Found 队-Alpha1
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:丹丹 组员7:家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内 ...
- 修改jupyter notebook的默认路径
我的系统环境是win10,安装了anaconda3 for python 3.6.6首先需要配置notebook的变量环境:打开 cmd 输入命令 jupyter notebook --generat ...
- 【Linux】Linux文件跟目录管理
熟悉Linux的大家都知道,在Linux中,一切皆文件,可能在有些人的理解中,Linux跟我们的Windows差不多,是都具有图形操作界面的一种操作系统,但是更深入的来说,Linux更偏向于用命令操作 ...
- Angular4 自制华容道拼图(可以升级难度、关卡、更换图片)
前端工程师新手一枚,之前一直做些小设计,以及静态页面的编写工作.刚刚接触 Angular 没有多久,四个月前对于 js 也只是会写 alert 之流,现在进步算是很大,下面是自制的华容道拼图(可以升级 ...
- React学习(一)
一. 允许HTML和JavaScript代码混写,使用JSX语法:遇到HTML标签就用HTML规则解析,遇到{}的代码块就用js解析 var names = ['Alice', 'Emily', 'K ...
- npm audit fix
执行npm install 出现如下提醒 added 253 packages from 162 contributors and audited 1117 packages in 42.157s ...
- 浏览器内多个标签页之间的通信之storage
在一个标签页里面使用 localStorage.setItem(key,value)添加(修改.删除)内容: 在另一个标签页里面监听 storage 事件. 即可得到 localstorge 存储的值 ...
- c# 在WebBrowser中用SendMessage模拟鼠标点击
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...