sql语句之from子句
如何从表中查询一个字端的数据
select 字段名 from 表名;
演示:从s_emp表中把月薪查询出来
select salary from s_emp ; (分号代表结束)

如何从表中查询多个字段的内容
select 字段名1 ,字段名2 from 表名;
演示:把s_emp表中的id first_name salary的数据查询出来
select ID , FIRST_NAME , SALARY from s_emp ;

如何查询表中所有字段对应的值
标准写法:一个一个列出来
简单写法:*号可以代替所有的字段名(但是这样不知道里面有哪些字段)
select * from 表名;
字段的数学运算(sql的数学运算)
+ - * /
演示:把s_emp 表中工资和工资减去100之后的工资显示出来
select salary , salary - 100 from s_emp ;

这样输出后,底层记录的salary是没有变化的
以salary+100算出一年的年薪:
select salary , 12*(salary + 100) from s_emp ;
一个月按照22天算,计算每天的薪水:
select salary , salary / 22 from s_emp ;(除数不会取整,和C不一样)

给字段起别名
select 字段名1 ,字段名2 别名 from 表名;
一个字段或者表达式只能有一个别名(也可以没有),别名会自动处理成大写
“别名”会原样显示所取的别名
演示:一年按照13个月计算 来计算每个人的年薪,列出每个月的月薪
select salary , salary*13 yearsal from s_emp ;

两个别名会报错:


sql中如何表达字符串
sql中的字符串使用单引号表达(C里使用双引号表达字符串字面值)
‘ ‘ ‘ ‘ ‘a’ ‘hello world’ 都是字符串
select first_name from s_emp ;也是字符串
如何拼接字符串
字符串拼接符:| |(只针对oracle,其他的可以查一下)
演示:
select first_name , last_name from s_emp ;

把名字拼接到一起:
select first_name || last_name name from s_emp ;

在姓名之间拼接一个单引号:
(在C语言中表达‘%’是%%,一个%就是占位符,%d;这里是一样的,用两个 ’ 表示单引号)
select first_name || ‘ ’’ ’ || last_name name from s_emp ;

在姓名之间拼接两个单引号:
select first_name || ‘ ‘’ ’ || ‘ ‘’ ’|| last_name name from s_emp ;
或者:
select first_name || ‘ ‘’ ‘’ ’ || last_name name from s_emp ;
空值(NULL值)的处理
空值(NULL值)和任何值做运算结果都是NULL
演示:一年按照12个月进行计算,考虑提成,总共的年薪是月薪乘以12,再加上提成(表中已有的的提成是COMMISSION_PCT)
salary*12+salary*12*(COMMISSION_PCT / 100)
或者:
salary*12*(1+COMMISSION_PCT / 100)

空值处理函数:nvl ( par1 , par2 )
可以处理任何类型的数据,但要求par1和par2的类型保持一致
这个函数,当par1为空时,返回par2的值;par1不为NULL时,返回par1的值
NULL要尽早处理
演示:
select salary , commission_pct , nvl ( salary*12*(1+commission_pct/100) , 0 ) from s_emp ;
是不行的,要尽早处理,不能等着运算完再处理

正确写法:
select salary , commission_pct , salary*12*(1+nvl ( commission_pct , 0 ) /100) from s_emp ;

演示:把每个员工的id first_name manager_id显示出来,如果manager_id是NULL,就把manager_id显示成-1
select id, first_name, manager_id, nvl(manager_id, -1)

数据的排重 distinct(封装的算法我们不用了解)
dstinct会把所有重复的数据剔除
联合排重(多字段排重,要两个字段都相同的才会剔除)
演示:
select salary from s_emp ; 查出所有薪水

select distinct salary from s_emp ; 把重复的剔除


select distinct title , salary from s_emp ;联合排重

sql语句之from子句的更多相关文章
- SQL语句之on子句过滤和where子句过滤区别
1.测试数据: SQL> select * from dept; DEPTNO DNAME LOC ------ -------------- ------------- ...
- sql语句之where子句
现在的登录都是把信息存在数据库,然后把输入的与数据库内容进行匹配,一样就登录成功,否则不成功.验证码是为了防止暴力破解,因为计算机能够自动匹配密码,但是不能识别图片上的字母,只有人能识别,所以匹配的速 ...
- 数据库性能调优——sql语句优化(转载及整理) —— 篇1
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实 ...
- 数据库性能优化之SQL语句优化
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等是体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...
- SQL优化的四个方面,缓存,表结构,索引,SQL语句
一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...
- 数据库 SQL语句优化
温馨提示:本篇内容均来自网上,本人只做了稍微处理,未进行细致研究,仅当做以后不备之需,如若你喜欢可尽情转走. 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图 ...
- 优化的四个方面,缓存,表结构,索引,SQL语句
一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...
- 数据库性能优化之SQL语句优化(上)
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的 ...
- [转]数据库性能优化之SQL语句优化1
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...
随机推荐
- winform自动升级方案
未涉及过winform升级,研究一阵,大致出来个不成熟的方案. 我的解决方案(判断升级,升级程序下载安装包的压缩包,解压,自动安装,重新启动程序). 1.首先根据服务器中软件版本号和本地软件版本号是否 ...
- BZOJ百题版切计划(不咕)
传送门 BZOJ 前言 听说最近要省选,那么我就写一下吧.QwQ! 1000 过于简单,不写了. 1001 不会对偶图,直接优化最小割 题解 1002 高精度套公式计算 题解 (Code by hey ...
- AJPFX:外汇的爆仓和追加保证金
在外汇交易中,当可用保证金变成0时,账户即会爆仓.而为了防止爆仓,您可以在可用保证金不足时追加保证金以防止爆仓. 例如,您在AJPFX的账户是100倍的杠杆,一手欧美货币对合约为10万美金(1 LOT ...
- JavaScript基础(1)-ECMAScript
一.JavaScript简介 1.JavaScript历史背景 布兰登 • 艾奇(Brendan Eich,1961年-),1995年在网景公司,发明的JavaScript. 刚开始JavaScrip ...
- 关于OC中的几种延迟执行方式
第一种: [UIView animateWithDuration: delay: options: animations:^{ self.btn.transform = CGAffineTransfo ...
- POJ 2719
#include<iostream> #include<stdio.h> using namespace std; ]; int _pow(int m,int n); int ...
- 好用的在线工具汇总:Iconfont图标,数据mock,时间函数库,颜色查询 等
一 时间函数库 ———http://momentjs.com/ 非常全的时间处理函数库,引入使用非常方便. 二 Iconfont———http://www.iconfont.cn/ 各种小图标 ...
- gulp 使用入门
什么是gulp? 用自动化构建工具增强你的工作流程! Gulp 是基于node.js的一个前端自动化构建工具,开发者可以使用它构建自动化工作流程(前端集成开发环境). 使用gulp你可以简化工作量,让 ...
- 如何查看第三方apk的信息
很多时候,我们需要获取别人的apk的信息.但是我们看不到apk的代码,对于apk的信息并没有直接的方法获取.那么,我们要怎么获取apk信息呢? 这里,我整理了两个方法,亲测可用. 第一种,直接使用An ...
- sql左右连接的区别
数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表 ...