DML(数据操作语言,增删查改)
DDL(数据定义语言,比如创建、修改或删除数据库对象)
DCL(数据控制语言,控制数据库的访问)

desc 表名:显示表结构
dual : 伪表

对于日期型数据,做 * 、/ 运算不合法;
包含空值的数学表达式的值都为空值;
别名使用双引号;

连接字符串使用:“ ||
日期与字符串只能在“单引号”中出现;
重复行:去重:distinct;

sql是一种语言;
sql*plus是一种环境,关键字可以缩写,如(desc、ed);

where紧跟from语句;

过滤与排序:
  过滤 :where
  字符串区分大小写;
  日期格式敏感 DD-MM-YYYY(抛弃),用to_char()转换;

赋值 :=
比较运算:字段名 : between ..... and ..... 两个之间,包含边界
in :等值列中的多个;
like:模糊查询;

转义字符:escape 如 '%#_%' escape '#';
is null / is not null; 为空/不为空
排序:order by 字段 asc(升序),desc(降序);

单行函数:只对一行进行变换,每行返回一个结果;
字符函数:
  Lower:转小写
  Upper:转大写
  Initcap:首字母大写,其它小写;

字符控制函数:
  concat:连接,如concat('Hello','World');
  substr('helloworld',1,4):1开始,输出4个;
  Length:长度;
  Instr('helloworld','l'):返回首次出现的位置,无则返回0;
  LRAD/RPAD : 左对齐/右对齐,不足位,作补;如 LRAD(salary,10,'*')
  trim('h' from 'helloword'):去除首尾h;
  replace('abcd','b','m'):将所有b都转为m;

数字函数:
  round 四舍五入;
  trunc 直接截断;
  MOD:取余;

日期:加一个数字或减一个数字,仍为日期;
日期相减为天数;
可以除以24来向日期加上或减去天数;

日期函数:
  months_between(sysdate,hire_date):两个日期相差月数;
  add_months :向指定日期加上若干月;add_months(sysdate,2);
  next_day :指定的日期下一个星期某对应的日期;如next_day(sysdate,'星期一');
  Last_day:本月后的一天;last_day(sysdate)-1:倒数第二天
  round:日期四舍五入;
  trunc:日期戒断;

转换函数:
  to_char(hire_date,'yyyy-mm-dd');转换为字符串;
  to_date('1990-01-01','yyyy-mm-dd')=hire_date;转换为日期
  to_number('$12345678.123','$000,000,000.00');前后对应;

通用函数:使用于任何数据类型,也适用于空值;
  NVL(EXP1,EXP2):如果exp1为空,值则为exp2;
  NVL2(EXP1.EXP2,EXP3):exp1不为空,返回EXP2 , 为空,返回exp3;
  NULLIF(EXP1,EXP2) : 相等返回null,不等返回exp1;
  COALESCE(EXP1,EXP2,EXP3.....):exp1为空,值则为EXP2,如果exp2为空,则一直往下...

条件表达式:
sql语言中使用if-then-else;
使用两种方式:
  ① case:
    case 某列 when ..... then .....else .....end 无标点符号;
    译:当某列的值为 某,则是 某值,否则 为某,结束;

eg:

  查询部门号为 10, 20, 30 的员工信息, 若部门号为 10, 则打印其工资的 1.1 倍, 20 号部门, 则打印其工资的 1.2 倍, 30 号部门打印其工资的 1.3 倍数;

SELECT last_name, job_id, salary,
CASE job_id WHEN 'IT_PROG' THEN 1.10*salary
WHEN 'ST_CLERK' THEN 1.15*salary
WHEN 'SA_REP' THEN 1.20*salary
ELSE salary END "REVISED_SALARY"
FROM employees;

  

  ②decode:

    decode(变量,1,2,1,2);
    变量,为1时,值为2,依次往下,括号结束;

eg:  

SELECT last_name, job_id, salary,
DECODE(job_id, 'IT_PROG', 1.10*salary,
'ST_CLERK', 1.15*salary,
'SA_REP', 1.20*salary,
salary)
"REVISED_SALARY"
FROM employees;

00-基础SQL-SELECT语句的更多相关文章

  1. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  2. mysql基础篇 - SELECT 语句详解

    基础篇 - SELECT 语句详解         SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...

  3. SQL SELECT 语句

      本章讲解 SELECT 和 SELECT * 语句. SQL SELECT 语句 SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). SQL SELECT 语法 SE ...

  4. SQL SELECT语句

    基本SQL SELECT语句   1.       下面的语句是否可以执行成功 select ename , job , sal as salary  from emp; 2.       下面的语句 ...

  5. SQL Select语句完整的执行顺序(转)

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

  6. 170607、SQL Select语句完整的执行顺序

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

  7. SQL-W3School-基础:SQL SELECT 语句

    ylbtech-SQL-W3School-基础:SQL SELECT 语句 1.返回顶部 1. 本章讲解 SELECT 和 SELECT * 语句. SQL SELECT 语句 SELECT 语句用于 ...

  8. SQL 基础:Select语句,各种join,union用法

    一.基本的SELECT语句 1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯. 虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多.相应的, ...

  9. SQL select语句执行顺序

    sql查询原理和Select执行顺序 关键字: 数据库 一 sql语句的执行步骤 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是 ...

  10. 第四节基础篇 - SELECT 语句详解

    4.1 基本的SELECT语句 select * from T_WEATHER select cityname from t_weather 4.2 数学符号条件(>.<.>=.&l ...

随机推荐

  1. day46 作业

    # 班级表 create table class( cid int primary key auto_increment, caption char(16) ); # 学生表 create table ...

  2. Let's GO(一)

    近来开始学Go,留此博客以记录学习过程,顺便鞭策自己更加努力. 人生苦短,Let's GO! Let's GO(一) Let's GO(二) Let's GO(三) Let's GO(四) 简单介绍 ...

  3. JS基础知识点(二)

    == 与 === 对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,就会进行如下判断流程: 1.首先会判断两者类型是否相同,相同则会进行严格相等比较=== 2.判断是否在对比null和 ...

  4. 消息队列-一篇读懂rabbitmq(生命周期,confirm模式,延迟队列,集群)

    什么是消息队列? 就是生产者生产一条消息,发送到这个rabbitmq,消费者连接rabbitmq并且进行消费,生产者和消费者并需要知道对方是如何工作的,从而实现程序之间的解耦,异步和削峰,这也就是消息 ...

  5. 数据可视化之PowerQuery篇(十三)Power BI总计行错误,这个技巧一定要掌握

    https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...

  6. css 实现动态二级菜单

    动态实现简单的二级菜单 当鼠标放到一级标签上时,鼠标会变成小手的形状 展示二级菜单,源码如下,复制即可直接使用 <!DOCTYPE html> <html lang="en ...

  7. Visual SVN Server+TortoiseSVN进行源代码管理

    安装VisualSVN Server 安装完之后,可配置SVN Server的IP地址,右键下图红色部分,选择属性,然后可配置ServeName和IP Address 之后可以创建用户.用户组和项目库 ...

  8. 1731: [Usaco2005 dec]Layout 排队布局*

    1731: [Usaco2005 dec]Layout 排队布局 题意: n头奶牛在数轴上,不同奶牛可以在同个位置处,编号小的奶牛必须在前面.m条关系,一种是两头奶牛距离必须超过d,一种是两头奶牛距离 ...

  9. Guava集合--Immutable(不可变)集合

    所谓不可变集合,顾名思义就是定义了之后不可修改的集合. 一.为什么要使用不可变集合 不可变对象有很多优点,包括: 当对象被不可信的库调用时,不可变形式是安全的: 不可变对象被多个线程调用时,不存在竞态 ...

  10. static关键字真能提高Bean的优先级吗?答:真能

    生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...