30个常见的SQL函数

一、聚合函数

  1. COUNT()
    • 功能:用于计算表中的行数或者满足特定条件的行数。
    • 示例:
      • 计算表students中的学生总数。
      SELECT COUNT(*) FROM students;
      
      • 计算成绩大于80分的学生人数。
      SELECT COUNT(*) FROM students WHERE score > 80;
      
  2. SUM()
    • 功能:计算指定列的数值总和。
    • 示例:计算sales表中所有订单的总金额。
    SELECT SUM(order_amount) FROM sales;
    
  3. AVG()
    • 功能:计算指定列的平均值。
    • 示例:计算employees表中员工的平均工资。
    SELECT AVG(salary) FROM employees;
    
  4. MAX()
    • 功能:返回指定列中的最大值。
    • 示例:在products表中查找价格最高的产品价格。
    SELECT MAX(price) FROM products;
    
  5. MIN()
    • 功能:返回指定列中的最小值。
    • 示例:在products表中查找价格最低的产品价格。
    SELECT MIN(price) FROM products;
    

二、字符串函数

  1. CONCAT()
    • 功能:将两个或多个字符串连接在一起。
    • 示例:将first_namelast_name连接成一个完整的姓名。
    SELECT CONCAT(first_name,' ', last_name) AS full_name FROM customers;
    
  2. SUBSTRING()
    • 功能:从一个字符串中提取子字符串。
    • 示例:从email列中提取用户名(假设用户名在@符号之前)。
    SELECT SUBSTRING(email, 1, LOCATE('@', email)- 1) AS username FROM users;
    
  3. UPPER()和LOWER()
    • 功能:将字符串转换为大写或小写。
    • 示例:将product_name列中的所有字符串转换为大写。
    SELECT UPPER(product_name) FROM products;
    
  4. LENGTH()
    • 功能:计算字符串的长度。
    • 示例:计算comments列中每个评论的长度。
    SELECT LENGTH(comments) FROM reviews;
    
  5. TRIM()
    • 功能:去除字符串两端的空格(也可以指定要去除的其他字符)。
    • 示例:去除address列中地址字符串两端的空格。
    SELECT TRIM(address) FROM customers;
    

三、日期和时间函数

  1. CURRENT_DATE()和CURRENT_TIME()
    • 功能:分别返回当前日期和当前时间。
    • 示例:插入当前日期到orders表的order_date列。
    INSERT INTO orders (order_date) VALUES (CURRENT_DATE());
    
  2. DATE_FORMAT()
    • 功能:按照指定的格式格式化日期。
    • 示例:将birth_date列中的日期格式化为YYYY - MM - DD的形式。
    SELECT DATE_FORMAT(birth_date, '%Y - %m - %d') FROM employees;
    
  3. TIMESTAMPADD()
    • 功能:在日期或时间戳上添加指定的时间间隔。
    • 示例:在order_date列的日期基础上添加7天。
    SELECT TIMESTAMPADD(DAY, 7, order_date) FROM orders;
    
  4. DATEDIFF()
    • 功能:计算两个日期之间的天数差。
    • 示例:计算end_datestart_date之间的天数差。
    SELECT DATEDIFF(end_date, start_date) FROM projects;
    

四、数学函数

  1. ROUND()
    • 功能:将数字四舍五入到指定的小数位数。
    • 示例:将price列中的价格四舍五入到整数。
    SELECT ROUND(price) FROM products;
    
  2. CEIL()和FLOOR()
    • 功能:CEIL()向上取整,FLOOR()向下取整。
    • 示例:
      • 向上取整quantity列中的数值。
      SELECT CEIL(quantity) FROM inventory;
      
      • 向下取整quantity列中的数值。
      SELECT FLOOR(quantity) FROM inventory;
      
  3. ABS()
    • 功能:返回一个数的绝对值。
    • 示例:计算profit_loss列中数值的绝对值。
    SELECT ABS(profit_loss) FROM financials;
    

五、其他函数

  1. CASE WHEN
    • 功能:实现条件判断,类似于编程语言中的if - else语句。
    • 示例:根据score列的值判断学生成绩等级。
    SELECT student_name,
           CASE 
               WHEN score >= 90 THEN 'A'
               WHEN score >= 80 THEN 'B'
               WHEN score >= 70 THEN 'C'
               WHEN score >= 60 THEN 'D'
               ELSE 'F'
           END AS grade
    FROM students;
    
  2. COALESCE()
    • 功能:返回参数中的第一个非空值。
    • 示例:从phone_homephone_workphone_mobile列中选择第一个非空的电话号码。
    SELECT COALESCE(phone_home, phone_work, phone_mobile) AS contact_phone FROM contacts;
    
  3. NVL()(在Oracle中常用)
    • 功能:与COALESCE()类似,用于处理空值替换。如果第一个表达式为空,则返回第二个表达式的值。
    • 示例:在Oracle中,如果bonus为空,则返回0。
    SELECT NVL(bonus, 0) FROM employees;
    
posted @ 2024-12-18 11:02  软件职业规划  阅读(78)  评论(0)    收藏  举报