如何从表中查询一个字端的数据

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子句的更多相关文章

  1. SQL语句之on子句过滤和where子句过滤区别

    1.测试数据: SQL> select * from dept;  DEPTNO DNAME          LOC ------ -------------- -------------   ...

  2. sql语句之where子句

    现在的登录都是把信息存在数据库,然后把输入的与数据库内容进行匹配,一样就登录成功,否则不成功.验证码是为了防止暴力破解,因为计算机能够自动匹配密码,但是不能识别图片上的字母,只有人能识别,所以匹配的速 ...

  3. 数据库性能调优——sql语句优化(转载及整理) —— 篇1

    一.问题的提出                    在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实 ...

  4. 数据库性能优化之SQL语句优化

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等是体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...

  5. SQL优化的四个方面,缓存,表结构,索引,SQL语句

    一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...

  6. 数据库 SQL语句优化

    温馨提示:本篇内容均来自网上,本人只做了稍微处理,未进行细致研究,仅当做以后不备之需,如若你喜欢可尽情转走. 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图 ...

  7. 优化的四个方面,缓存,表结构,索引,SQL语句

    一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...

  8. 数据库性能优化之SQL语句优化(上)

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的 ...

  9. [转]数据库性能优化之SQL语句优化1

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...

随机推荐

  1. Deque(队列)

    目录 Deque 概述 特点 常用方法 双向队列操作 ArrayDeque Deque 概述 一个线性 collection,支持在两端插入和移除元素.名称 deque 是"double e ...

  2. BZOJ NOIP提高组十连测第一场

    今天的题目一共拿了$180$分,感觉自己还是太菜了,二三两题只能骗到部分分 1.$String\ Master$ 题目大意:有两个字符串,在允许k次失配的情况下,求最长公共子串的长度 没什么好讲,直接 ...

  3. Python MySQL - 创建/查询/删除数据库

    #coding=utf-8 import mysql.connector import importlib import sys #连接数据库的信息 mydb = mysql.connector.co ...

  4. Redis中的批量操作Pipeline

    大多数情况下,我们都会通过请求-相应机制去操作redis.只用这种模式的一般的步骤是,先获得jedis实例,然后通过jedis的get/put方法与redis交互.由于redis是单线程的,下一次请求 ...

  5. spring-boot集成mybatis,用redis做缓存

    网上有很多例子了,执行源码起码有3个,都是各种各样的小问题. 现在做了个小demo,实现spring-boot 用redis做缓存的实例,简单记录下思路,分享下源码. 缓存的实现,分担了数据库的压力, ...

  6. java命令--jstack 工具 查看JVM堆栈信息

    介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项" ...

  7. Mac上搭建rtmp流媒体服务器(结合FFmpeg的使用)

    1.确保安装homebrew ---安装则跳到第二步 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins ...

  8. centos7安装python的MySQLdb模块

    说在前面 今天装这个模块耗费了半天时间才解决,问题繁多,这里把安装方法整理如下 pip install mysql-python 如果遇到找不到mysql_config文件时,要先安装 mysql-c ...

  9. webstorm无法显示左边文件夹目录的解决方法

    webstorm无法显示左边文件夹目录的解决方法 方法一 view-->Tool Windows-->Project 就可以显示或者关闭 方法二 1.删除webstorm的配置文件夹 2. ...

  10. WebStorm project 打开多个项目的方法

    File ---> Setting ---> Project:xxx ---> Sirectories 点击右侧  + Add content root,选择目录后即可显示该项目. ...