函数

算术函数

1. 四则运算: +、-、*、/ 

2. ABS:求绝对值, ABS(数值)

3. MOD: 求余,MOD(被除数,除数)

4. ROUND:四舍五入,ROUND(对象数值,保留小数的位数)

字符串函数

1. 字符串拼接: ||, str1 || str2 || str3 || … || strn  AS str_all

2. 字符串长度:LENGTH,LENGTH(str1) AS len_str1

3. 小写转换:LOWER,LOWER(str1) AS low_str

4. 大写转换:UPPER,UPPER(str1) AS up_str

5. 字符串替换:REPLACE,REPLACE(替换对象, 被替换的字符串, 替换后的字符串) AS rep_str  :如果替换对象中不含有被替换字符串,则不进行替换操作

6. 字符串截取:SUBSTRING,SUBSTRING(对象字符串 FROM 起始位置  FOR 截取的长度) AS sub_str

日期函数

1. CURRENT_DATE:不需要参数,直接返回当前日期,显示格式:yyyy-mm-dd

2. CURRENT_TIME:不需要参数,直接返回当前时间,显示格式:hh:mm:s

3. CURRENT_TIMESTAMP:不需要参数,同时获得日期和时间,也可以进行截取操作

4. EXTRACT:截取时间,EXTRACT(日期元素 FROM 日期)

    日期元素有:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND

    例如:

    SELECT CURRENT_TIMESTAMP 
    EXTRACT(YEAR        FROM CURRENT_TIMESTAMP) AS year,
    EXTRACT(MONTH     FROM CURRENT_TIMESTAMP) AS month,
    EXTRACT(DAY           FROM CURRENT_TIMESTAMP) AS day,
    EXTRACT(HOUR       FROM CURRENT_TIMESTAMP) AS hour,
    EXTRACT(MINUTE    FROM CURRENT_TIMESTAMP) AS minute,
    EXTRACT(SECOND   FROM CURRNR_TIMESTAMP) AS second;   

转换函数

1. CAST( 转换前的值 AS 想要转换的数据类型 )

    例如:

    SELECT CAST(‘0001’ AS INTEGER ) AS int_col;        SQL Server/ PostgreSQL

    SELECT CAST(‘0001’ AS SIGNED INTEGER) AS int_col;     MySQL

    SELECT CAST(‘0001’ AS INTEGER) AS int_col  FROM DUAL;    Oracle

    SELECT CAST(‘0001’ AS INTEGER) AS int_col FROM SYSIBM.SYSDUMMY1;   DB2

    结果:

    int_col
    —————
             1

2.  COALESCE(数据1,数据2,数据3 ……) 返回左侧开始第一个不是NULL的值

谓词

LIKE

like谓词用于查询字符串部分一致,类似于简化版正则表达式,其中%表示匹配任意字符任意格式,_表示匹配一个任意字符串

例如:

查询SampleLike表中,strcol列字符串中间含有ddd的行

SELECT *
FROM SampleLike
WHERE strcol LIKE ‘%ddd%'

其他类似于:’%ddd’ ,’ddd%’ , ‘_ddd’ 等简单模式的匹配

BETWEEN

相当于  >= AND <=,例如:

SELECT shohin_mei, hanbai_tanka
FROM Shohin
WHERE hanbai_tanka BETWEEN 100 AND 1000

IS NULL 、 IS NOT NULL

用于判断是否为NULL值

 IN

将多个OR条件合并,如:

SELECT shohin_mei, shiire_tanka
FROM Shohin
WHERE shiire_tanka NOT IN (320, 500, 5000)

注意:IN和NOT IN无法选取NULL值,NULL的判断只能用IS NULL 和IS NOT NULL

配合子查询中返回多个值,可以灵活使用IN谓词来做选择

如:

SELECT shohin_mei, hanbai_tanka
FROM Shohin
WHERE shohin_id IN (SELECT shohin_id
                                     FROM TenpoShohin
                                     WHERE tenpo_id = ‘000C') 

EXIST

EXIST谓词用于判断是否存在满足某种条件的记录,多用于在子查询中替换IN达到相同目的的操作,如:

SELECT shohin_mei, hanbai_tanka
FROM Shohin AS S
WHERE EXISTS ( SELECT *
                               FROM TenpoShohin AS TS
                               WHERE TS.tenpo_id = ‘000C’
                               AND TS.shohin_id = S.shohin_id)

ps. 个人感觉还是IN比较直观易用一些

CASE表达式

相当于switch语句,语法为:

CASE <表达式>
    WHEN <表达式>  THEN <表达式>
    WHEN <表达式>  THEN <表达式>
                      ...
    ELSE <表达式>
END

每一个WHEN 、THEN组合相当于switch中的一个case,最后的ELSE相当于default;

CASE表达式常和SELECT结合:

SELECT <列>,
    CASE WHEN <表达式>  THEN <表达式>
               WHEN <表达式>  THEN <表达式>
                               …
               ELSE NULL
    END AS <名称>
FROM <表>;

 

SQL基础学习_05_函数、谓词、CASE表达式的更多相关文章

  1. 楼梯T-SQL:超越基础6级:使用CASE表达式和IIF函数

     从他的楼梯到T-SQL DML,Gregory Larsen涵盖了更多的高级方面的T-SQL语言,如子查询. 有时您需要编写一个可以根据另一个表达式的评估返回不同的TSQL表达式的单个TSQL语句. ...

  2. SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念

    SQL 基础学习(2) Joining 可以同时关联(joining)多张表进行复杂的查询. 相比于用Rails捞出数据再用Ruby进行过滤组合,使用SQL更加高效,节能. 以下是 users has ...

  3. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  4. SQL 基础命令和函数

    [数据操作] SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 [数据定义] C ...

  5. Node.js系列基础学习-----回调函数,异步

    Node.js基础学习 Node.js回调函数 Node.js异步编程的直接体现就是回调,异步编程依托回调来实现,但不是异步.回调函数在完成任务后就会被调用,Node有很多的回调函数,其所有的API都 ...

  6. SQL基础学习篇--字符函数

    字符函数可与SELECT,UPDATE,DELETE RIGHT()----从右侧开始选择  SELECT RIGHT(列,字符数量) FROM 表 LEFT()----从左侧开始选择  SUBSTR ...

  7. SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.

    SQL is a standard language for storing, manipulating and retrieving data in databases. 关系型数据库:RDBMS( ...

  8. python基础学习2 函数变量与赋值

    学习的第一步,就是通常的输出函数:print() 1.基础主要学习了变量的赋值,变量名可以疑字母.数字.下划线(_)进行命名,但是不能以数字开头 变量的赋值:变量名 = 变量值 2.模块的导入,和调用 ...

  9. SQL基础学习_04_视图

    视图 1. 视图的创建     视图就是保存好的SELECT语句,这些SELECT语句执行之后会产生新的表,所以在SQL中,视图和表是不做差别对待的,也就是SQL也可以对视图做一些操作:     由于 ...

随机推荐

  1. redis函数总结

    <?php /*1.Connection*/ $redis = new Redis(); $redis->connect('127.0.0.1',6379,1);//短链接,本地host, ...

  2. Android 常见 Memory Leak 原因及解决办法总结

    待整理: http://geek.csdn.net/news/detail/50692 背景 在Android开发过程中,我们经常碰到的情况就是在我们不清楚为什么情况下,程序突然出现Crash了.其中 ...

  3. node.js之第一天

    一.http模块 //require表示引包,引包就是引用自己的一个特殊功能 var http = require("http"); //创建服务器,参数是一个回调函数,表示如果有 ...

  4. 通过Javascript调用微软认知服务情感检测接口的两种实现方式

    这是今天在黑客松现场写的代码.我们的项目需要调用认知服务的情感识别接口.官方提供了一种方式,就是从一个远程图片进行识别.我另外写了一个从本地文件读取并上传进行识别的例子. 官方文档,请参考 https ...

  5. Okio 之初探黄龙

    Okio 是一个包装了 java.io 和 java.nio api 的库,以便可以更容易的访问.存储以及处理数据. ByteStrings 和 Buffers Okio 是围绕着两个容器类构建起来的 ...

  6. 自己实现String.prototype.trim方法

    今天呢 知乎看到一道题 说是网易面试题,要求自己写一个trim()方法, 实现 var str = "   a   sd  "; 去掉字符串两端的空格. 直接上码 var str ...

  7. 教你如何用 lib-flexible 实现移动端H5页面适配

    前话 好久没写教程了(可能会误导新手的菜鸟教程( ̄▽ ̄)"). 这是我的github,欢迎前端大大们和我一起学习交流 https://github.com/pwcong 最近入职公司做前端实 ...

  8. 如何用shell脚本取出服务器图片

    一 ,SHELL 是什么 (1)shell是一种命令行解释器. (2)是用户和Linux内核之间沟通的桥梁,属于中间件.见下图 (3)交互流程:shell接受用户输入的指令 =>将指令传达给Li ...

  9. 2017最新安装mysql教程及遇到的问题解决Windows下

    今天因为换了个LINUX系统 把我的E盘不小心给卸载了 结果还是不能用  导致 我E盘里面的mysql也都被删除了    所以又要在次重新装一个MYSQL 了    花了很多时间  也看了很多教程.好 ...

  10. UILabel 的使用

    直接上代码: /* UILabel 使用 */ UILabel *aLable = [[UILabel alloc] initWithFrame:self.window.bounds]; aLable ...