SQL 中内置函数

本文介绍了SQL中涉及的几种关键函数,包括字符串操作(如拼接、大小写转换、子串提取等)、数学运算(绝对值、四舍五入、取整等)、日期时间处理以及基本的聚合函数,展示了数据处理中常用的技术工具。
摘要由CSDN通过智能技术生成
  1. 字符串函数

    • CONCAT(str1, str2, ...): 将多个字符串拼接在一起。
    • UPPER(str): 将字符串转换为大写。
    • LOWER(str): 将字符串转换为小写。
    • SUBSTRING(str, start, length): 返回字符串的子串。
    • LENGTH(str): 返回字符串的长度。
    • TRIM(str): 去除字符串两端的空格。
    • REPLACE(str, old_substring, new_substring): 替换字符串中的子串。
  2. 数学函数

    • ABS(num): 返回数字的绝对值。
    • ROUND(num, decimals): 将数字四舍五入到指定的小数位数。
    • CEIL(num): 返回不小于数字的最小整数值。
    • FLOOR(num): 返回不大于数字的最大整数值。
    • RAND(): 返回一个随机数。
  3. 日期时间函数

    • NOW(): 返回当前日期时间。
    • DATE_FORMAT(date, format): 格式化日期时间。
    • YEAR(date): 返回日期的年份。
    • MONTH(date): 返回日期的月份。
    • DAY(date): 返回日期的天数。
    • DATEDIFF(date1, date2): 计算两个日期之间的天数差。
  4. 聚合函数

    • SUM(): 计算总和。
    • AVG(): 计算平均值。
    • COUNT(): 计算行数。
    • MIN(): 返回最小值。
    • MAX(): 返回最大值。
    • GROUP BY  '分组的属性': 用于将具有相同值的行组合在一起,以便对每个组执行聚合函数(如SUM、COUNT、AVG等)。它通常与聚合函数一起使用.
    • ORDER BY '排序的属性'  DESC:用于对查询结果按照指定的列进行排序(DESC关键字表示降序排序,即从大到小排列,ASC是默认升序写法:ORDER BY '排序的属性'  ASC或ORDER BY '排序的属性' )。
        5. 其他函数

               1.STR_TO_DATE():字符串格式化为时间。(这个函数接受两个参数:第一个参数是要转换的字符串,第二个参数是字符串的格式。)。

               2.DISTINCT: 去除SQL查询结果中的重复行。

说明: %Y表示4位数的年份,%m表示月份,%d表示天,%H表示时,%i表示分钟,%s表示秒

               3.HAVING ‘条件’:用于对分组后的结果进行筛选。它通常与GROUP BY子句一起使用,用于指定筛选条件。HAVING子句中的条件是基于聚合函数(如SUM、COUNT、AVG等)的结果进行的。(举例:

SELECT customer_id, SUM(total_amount) as total_spent
FROM orders
GROUP BY customer_id
HAVING total_spent > 1000;

) 

                4:FORMAT(‘数据’, ‘保留几位小数’)和ROUND(‘数据’, ‘保留几位小数’):

俩函数差不多(

ROUND()FORMAT()都是SQL中的函数,用于处理数字的格式化和舍入。它们的主要区别在于它们的用途和行为:

  1. ROUND()函数主要用于四舍五入数字到指定的小数位数。它接受两个参数:第一个参数是要进行四舍五入的数字,第二个参数是要保留的小数位数。例如,ROUND(3.14159, 2)将返回3.14。

  2. FORMAT()函数主要用于格式化数字为特定的格式字符串。它接受两个参数:第一个参数是要格式化的数字,第二个参数是格式字符串,指定了要使用的格式。例如,FORMAT(1234567.89, '#,###.00')将返回"1,234,567.89"。

总结起来,ROUND()主要用于四舍五入数字到指定的小数位数,而FORMAT()主要用于按照特定的格式字符串格式化数字。

        6.sql示例:

                1.时间的区间查询:

                

-- 1.使用BETWEEN子句:BETWEEN子句用于指定一个范围,可以用于日期和时间类型的列。例如,如果你想查询--- 某个表格中在特定时间区间内的所有记录,可以使用以下语法:
    SELECT * FROM table_name
    WHERE date_column BETWEEN 'start_date' AND 'end_date';

--2.使用比较运算符:你也可以使用比较运算符(如>=, <=)来指定时间区间。例如:
    SELECT * FROM table_name
    WHERE date_column >= 'start_date' AND date_column <= 'end_date';

-- 注意事项
-- 确保你的日期格式与数据库中的日期格式相匹配。
-- 时区可能会影响日期和时间的比较,特别是在涉及跨时区的应用时。


                2.LIMIT 和 OFFSET 用法:

-- LIMIT 10 OFFSET 2是SQL语句中用于限制查询结果集的行数和起始位置的一种方式。它通常与SELECT语句---- 一起使用,以指定从结果集中返回多少行以及从哪一行开始返回。
-- 在这个例子中,LIMIT 10表示最多返回10行数据,而OFFSET 2表示从结果集的第3行开始返回(因为偏移量---- 是从0开始计数的)。
-- 下面是一个示例SQL查询,演示了如何使用LIMIT和OFFSET:

    SELECT * FROM table_name
    LIMIT 10 OFFSET 2;

    
-- 这将从名为table_name的表中选择所有列,并返回从第3行开始的10行数据。

                 3.ORANDINON:

在SQL中,ORANDINON是四个非常关键的操作符,它们在构建查询条件和表连接时扮演着重要的角色。每个操作符都有其特定的功能和使用场景。

  1. 逻辑操作符
    • OROR是一个逻辑运算符,用于在查询中组合多个条件。当至少一个条件满足时,整个表达式即视为真。它常用于从数据库中选取符合任一条件(或两者都符合)的记录。例如,SELECT * FROM table WHERE a = 1 OR b = 2;会返回a等于1或者b等于2的所有行。
    • ANDAND同样是逻辑运算符,但它要求所有组合的条件都必须同时为真,才会返回记录。这通常用于更精确地筛选数据。例如,SELECT * FROM table WHERE a = 1 AND b = 2;仅返回同时满足a等于1且b等于2的行。
  2. 集合操作符
    • ININ操作符允许你指定一个值列表,用于匹配某个列的值是否在这个列表中。这是OR操作的一种简化写法,特别是在有多个可能值时更加方便。例如,SELECT * FROM table WHERE a IN (1, 2, 3);效果与使用多个OR连接的条件相同,但语法更简洁。
  3. 连接操作符
    • ONON用于在JOIN操作中指定连接条件。它定义了如何将两个表中的行结合起来。ON子句在表连接时执行,无论连接条件是否满足,都会展示左表(对于左连接)的所有行。例如,在使用LEFT JOIN时,ON子句确定了如何根据共同的列将表格合并在一起。

总结来说,ORAND主要用于构造选择查询中的条件表达式,IN提供了一种简洁的方式来处理多值匹配问题,而ON则是物理连接两个表的关键所在。理解这些操作符的区别和适用场景,对于编写高效的SQL查询至关重要。

                4.LIKE的用法:

在SQL中,LIKE是一个用于模糊匹配字符串的操作符。它通常与WHERE子句一起使用,以根据指定的模式来筛选数据。

LIKE操作符有两种通配符:

%:表示任意数量的字符(包括零个字符)。
_:表示一个单一的字符。

以下是一些示例用法:
1.查找所有以"A"开头的名字:
        
SELECT * FROM table_name WHERE name LIKE 'A%';

    
2.查找名字中包含"an"的所有记录:
        
SELECT * FROM table_name WHERE name LIKE '%an%';

    
3.查找名字长度为5的所有记录:
        
SELECT * FROM table_name WHERE name LIKE '_____';

    
4.查找名字以"a"结尾的所有记录:
        
SELECT * FROM table_name WHERE name LIKE '%a';

    
需要注意的是,LIKE操作符对大小写敏感,因此如果要进行不区分大小写的匹配,可以使用ILIKE(在某些数据库系统中可用)或者将字段和模式都转换为相同的大小写。

在SQL中,可以使用NOT LIKE、AND和OR等操作符来构建更复杂的查询条件。这些操作符可以组合使用,以实现更精确的筛选结果。

以下是一些示例:

1.结合NOT LIKE和AND:
        
SELECT * FROM table_name WHERE column1 NOT LIKE '%pattern%' AND column2 = 'value';
  
这个查询将返回满足以下条件的记录:column1的值不包含"pattern"字符串,并且column2的值等于"value"。

2.结合LIKE和OR:
        
SELECT * FROM table_name WHERE (column1 LIKE '%pattern1%' OR column2 LIKE '%pattern2%');
    
这个查询将返回满足以下条件的记录:column1的值包含"pattern1"字符串,或者column2的值包含"pattern2"字符串。

3.结合多个条件:

SELECT * FROM table_name WHERE column1 LIKE '%pattern%' AND (column2 = 'value1' OR column3 = 'value2');

这个查询将返回满足以下条件的记录:column1的值包含"pattern"字符串,并且column2的值等于"value1"或column3的值等于"value2"。

需要注意的是,在使用这些操作符时,要确保逻辑关系的正确性,并适当地使用括号来明确优先级。同时,不同的数据库系统可能对大小写敏感度有所不同,因此在进行模糊匹配时要注意大小写问题。

 

               

列举了SQL语句大部分常用的函数 Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(expression) 转换表达式为Byte 型态。 CChar(expression) 转换表达式为字符型态。 CDate(expression) 转换表达式为Date 型态。 CDbl(expression) 转换表达式为Double 型态。 CDec(expression) 转换表达式为Decimal 型态。 CInt(expression) 转换表达式为Integer 型态。 CLng(expression) 转换表达式为Long 型态。 CObj(expression) 转换表达式为Object 型态。 CShort(expression) 转换表达式为Short 型态。 CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型态。 Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引值来选择并传回所设定的参数。 Chr(charcode) 以ASCII 码来取得字符内容。 Close(filenumberlist) 结束使用Open 开启的档案。 Cos(number) 取得一个角度的余弦值。 Ctype(expression, typename) 转换表达式的型态。 DateAdd(dateinterval, number, datetime) 对日期或时间作加减。 DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差值。 DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。 DateSerial(year, month, day) 将接收的参数合并为一个只有日期的Date 型态的数据。 DateValue(datetime) 取得符合国别设定样式的日期值,并包含时间。 Day(datetime) 依接收的日期参数传回日 ....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值