📜  SQL |函数(聚合和标量函数)

📅  最后修改于: 2021-09-09 11:22:16             🧑  作者: Mango

用于对数据进行操作的sql有很多内置函数,它们分为两大类,并在每个类别下进一步细分为不同的七个函数。类别是:

  1. 聚合函数:
    这些函数用于对列的值进行操作并返回单个值。
    1. 平均()
    2. 数数()
    3. 第一的()
    4. 最后的()
    5. 最大限度()
    6. 最小值()
    7. 和()
  2. 标量函数:
    这些函数基于用户输入,它们也返回单个值。
    1. UCASE()
    2. LCASE()
    3. 中()
    4. 伦()
    5. 圆形的()
    6. 现在()
    7. 格式()

学生桌
截图 (58)

聚合函数

  • AVG() :根据数值列中的值计算后返回平均值。
    句法:
    SELECT AVG(column_name) FROM table_name;
    

    查询:

    1. 计算学生的平均成绩。
      SELECT AVG(MARKS) AS AvgMarks FROM Students; 
      

      输出:

      AvgMarks
      80
    2. 计算学生的平均年龄。
      SELECT AVG(AGE) AS AvgAge FROM Students; 
      

      输出:

      AvgAge
      19.4
  • COUNT():用于统计SELECT语句返回的行数。它不能用于 MS ACCESS。
    句法:
    SELECT COUNT(column_name) FROM table_name;
    

    查询:

    1. 计算学生总数。
      SELECT COUNT(*) AS NumStudents FROM Stuents;
      

      输出:

      NumStudents
      5
    2. 计算具有独特/不同年龄的学生人数。
      SELECT COUNT(DISTINCT AGE) AS NumStudents FROM Students;
      

      输出:

      NumStudents
      4
  • FIRST(): FIRST()函数返回所选列的第一个值。
    句法:
    SELECT FIRST(column_name) FROM table_name;
    

    查询:

    1. 从学生表中获取第一个学生的分数。
      SELECT FIRST(MARKS) AS MarksFirst FROM Students;
      

      输出:

      MarksFirst
      90
    2. 从学生表中获取第一个学生的年龄。
      SELECT FIRST(AGE) AS AgeFirst FROM Students;
      

      输出:

      AgeFirst
      19
  • LAST(): LAST()函数返回所选列的最后一个值。它只能在 MS ACCESS 中使用。
    句法:
    SELECT LAST(column_name) FROM table_name;
    

    查询:

    1. 从学生表中获取最后一个学生的分数。
      SELECT LAST(MARKS) AS MarksLast FROM Students;
      

      输出:

      MarksLast
      82
    2. 从学生表中获取最后一个学生的年龄。
      SELECT LAST(AGE) AS AgeLast FROM Students;
      

      输出:

      AgeLast
      18
  • MAX(): MAX()函数返回所选列的最大值。
    句法:
    SELECT MAX(column_name) FROM table_name;
    

    查询

    1. 从学生表中获取学生的最高分。
      SELECT MAX(MARKS) AS MaxMarks FROM Students;
      

      输出:

      MaxMarks
      95
    2. 从学生表中获取学生的最大年龄。
      SELECT MAX(AGE) AS MaxAge FROM Students;
      

      输出:

      MaxAge
      21
  • MIN(): MIN()函数返回所选列的最小值。
    句法:
    SELECT MIN(column_name) FROM table_name;
    

    查询:

    1. 从学生表中获取学生的最低分数。
      SELECT MIN(MARKS) AS MinMarks FROM Students;
      

      输出:

      MinMarks
      50
    2. 从学生表中获取学生的最小年龄。
      SELECT MIN(AGE) AS MinAge FROM Students;
      

      输出:

      MinAge
      18
  • SUM(): SUM()函数返回选定列的所有值的总和。
    句法:
    SELECT SUM(column_name) FROM table_name;
    

    查询:

    1. 从学生表中获取学生的总分。
      SELECT SUM(MARKS) AS TotalMarks FROM Students;
      

      输出:

      TotalMarks
      400
    2. 从学生表中获取学生总年龄的总和。
      SELECT SUM(AGE) AS TotalAge FROM Students;
      

      输出:

      TotalAge
      97

标量函数

  • UCASE() :它将字段的值转换为大写。
    句法:
    SELECT UCASE(column_name) FROM table_name;
    

    查询:

    1. 将表 Students 中的学生姓名转换为大写。
      SELECT UCASE(NAME) FROM Students;
      

      输出:

      NAME
      HARSH
      SURESH
      PRATIK
      DHANRAJ
      RAM
  • LCASE() :它将字段的值转换为小写。
    句法:
    SELECT LCASE(column_name) FROM table_name;
    

    查询:

    1. 将表 Students 中的学生姓名转换为小写。
      SELECT LCASE(NAME) FROM Students;
      

      输出:

      NAME
      harsh
      suresh
      pratik
      dhanraj
      ram
  • MID(): MID()函数从文本字段中提取文本。
    句法:
    SELECT MID(column_name,start,length) AS some_name FROM table_name;
    
    specifying length is optional here, and start signifies start position ( starting from 1 )
    

    查询:

    1. 从学生表中获取学生姓名的前四个字符。
      SELECT MID(NAME,1,4) FROM Students; 
      

      输出:

      NAME
      HARS
      SURE
      PRAT
      DHAN
      RAM
  • LEN(): LEN()函数返回文本字段中值的长度。
    句法:
    SELECT LENGTH(column_name) FROM table_name;
    

    查询:

    1. 从学生表中获取学生姓名的长度。
      SELECT LENGTH(NAME) FROM Students;
      

      输出:

      NAME
      5
      6
      6
      7
      3
  • ROUND(): ROUND()函数用于将数字字段四舍五入到指定的小数位数。注意:许多数据库系统已经采用 IEEE 754 标准进行算术运算,该标准表示,当任何数字 .5 被四舍五入时,结果为到最接近的偶数,即 5.5 和 6.5 都四舍五入为 6。

    句法:

    SELECT ROUND(column_name,decimals) FROM table_name; 
    
    decimals- number of decimals to be fetched.
    

    查询:

    1. 从学生表中获取学生的最高分。
      SELECT ROUND(MARKS,0) FROM table_name; 
      

      输出:

      MARKS
      90
      50
      80
      95
      85
  • NOW(): NOW()函数返回当前系统日期和时间。
    句法:
    SELECT NOW() FROM table_name;
    

    查询:

    1. 获取当前系统时间。
      SELECT NAME, NOW() AS DateTime FROM Students; 
      

      输出:

      NAME DateTime
      HARSH 1/13/2017 1:30:11 PM
      SURESH 1/13/2017 1:30:11 PM
      PRATIK 1/13/2017 1:30:11 PM
      DHANRAJ 1/13/2017 1:30:11 PM
      RAM 1/13/2017 1:30:11 PM
  • FORMAT(): FORMAT()函数用于格式化字段的显示方式。
    句法:
    SELECT FORMAT(column_name,format) FROM table_name; 
    

    查询:

    1. 将当前日期格式化为“YYYY-MM-DD”。
      SELECT NAME, FORMAT(Now(),'YYYY-MM-DD') AS Date FROM Students; 
      

      输出:

      NAME Date
      HARSH 2017-01-13
      SURESH 2017-01-13
      PRATIK 2017-01-13
      DHANRAJ 2017-01-13
      RAM 2017-01-13