SQL语句补充与示例

在工作中对一些sql感觉陌生,补充一下学习。

SQL语句补充与示例

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。SQL 语句用于执行各种数据库操作,包括查询、更新、插入和删除数据。以下是一些基本的 SQL 语句类型及其用途:

1、常用语句

  1. SELECT - 从数据库中检索数据。

    sql 复制代码
    SELECT column1, column2 FROM table_name;
  2. INSERT INTO - 向数据库表中插入新数据。

    复制代码
    INSERT INTO table_name (column1, column2) VALUES (value1, value2);
  3. UPDATE - 更新数据库表中的现有数据。

    复制代码
    UPDATE table_name SET column1 = value1 WHERE condition;
  4. DELETE - 从数据库表中删除数据。

    复制代码
    DELETE FROM table_name WHERE condition;
  5. CREATE - 创建新的数据库或表。

    复制代码
    CREATE TABLE table_name (
        column1 datatype,
        column2 datatype,
        ...
    );
  6. ALTER - 修改现有数据库结构,如添加或删除列。

    复制代码
    ALTER TABLE table_name ADD column_name datatype;
  7. DROP - 删除数据库、表或列。

    复制代码
    DROP TABLE table_name;
  8. JOIN - 连接多个表以基于相关列合并它们的数据。

    复制代码
    SELECT column1, column2
    FROM table1
    JOIN table2
    ON table1.column_name = table2.column_name;
  9. GROUP BY - 将数据分组并使用聚合函数(如 COUNT, SUM, AVG)进行计算。

    复制代码
    SELECT column_name, COUNT(*)
    FROM table_name
    GROUP BY column_name;
  10. ORDER BY - 对结果集进行排序。

    复制代码
    SELECT column_name
    FROM table_name
    ORDER BY column_name ASC; -- 升序
  11. WHERE - 过滤结果集,只返回满足条件的记录。

    复制代码
    SELECT column_name
    FROM table_name
    WHERE condition;
  12. HAVING - 用于与 GROUP BY 一起使用,过滤分组后的结果。

    复制代码
    SELECT column_name, COUNT(*)
    FROM table_name
    GROUP BY column_name
    HAVING COUNT(*) > 1;

这些是 SQL 的一些基本操作和语句。根据具体需求,SQL 语句可以非常复杂和多样化。

2、其他语句

SQL 中的 CASE 语句是一种条件表达式,它允许你根据不同的条件返回不同的结果。以下是 CASE 语句的一些用法

复制代码
//switch......case....;一点这种根据
​
public class HelloWorld {
    public static void main(String args[]) {
        int i = 3;
        switch(i){
            case 1:
                System.out.println("i等于1");
            break;
            case 2:
                System.out.println("i等于2");
            break;
            case 3:
                System.out.println("i等于3");
            break;
            default:
                System.out.println("i不等于上述条件");
            break;
        }
    }
}
  1. 简单 CASE 语句 - 用于返回基于条件的单个结果。

    复制代码
    SELECT column_name,
           CASE
               WHEN condition1 THEN result1
               WHEN condition2 THEN result2
               ELSE default_result
           END AS new_column_name
    FROM table_name;
  2. 搜索 CASE 语句 - 与简单 CASE 语句类似,但是它会在第一个条件为真时停止检查。

    复制代码
    SELECT column_name,
           CASE
               WHEN condition1 THEN result1
               ELSE result2
           END AS new_column_name
    FROM table_name;
  3. CASE 语句在 SELECT 之外 - 可以用于 WHERE 子句或 ORDER BY 子句中。

    复制代码
    SELECT column_name
    FROM table_name
    WHERE CASE WHEN condition THEN 1 ELSE 0 END = 1;

除了 CASE 语句,SQL 还提供了其他一些有用的语句和功能:

  • UNION 和 UNION ALL - 用于合并两个或多个 SELECT 语句的结果集。

    复制代码
     SELECT column_name FROM table1
     UNION ALL
     SELECT column_name FROM table2;
  • WITH (公用表表达式,CTE) - 允许你定义一个临时的结果集,可以在查询中引用。

    复制代码
     WITH cte_name (column1, column2) AS (
       SELECT column1, column2 FROM table_name WHERE condition
     )
     SELECT * FROM cte_name;
  • SUBQUERY - 一个查询嵌套在另一个查询中。

    复制代码
     SELECT column_name FROM table1
     WHERE column_name IN (SELECT column_name FROM table2 WHERE condition);
  • TRUNCATE - 快速删除表中的所有行,但保留表结构。

    复制代码
     TRUNCATE TABLE table_name;
  • EXPLAIN - 显示 SQL 语句的执行计划。

    复制代码
     EXPLAIN SELECT * FROM table_name;
  • COMMIT 和 ROLLBACK - 在事务型数据库中,用于提交或回滚事务。

    复制代码
     COMMIT; -- 提交事务
     ROLLBACK; -- 回滚事务
  • LOCK TABLE - 锁定表以进行特定的操作。

    复制代码
     LOCK TABLES table_name WRITE;
     -- 进行操作
     UNLOCK TABLES;
  • COMMENT - 向 SQL 语句添加注释。

    复制代码
     SELECT column_name FROM table_name; -- 这是一个注释
相关推荐
Lucifer三思而后行1 小时前
最近折腾了一下金仓数据库的备份恢复
数据库·备份恢复
草莓熊Lotso2 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
进击的荆棘3 小时前
MySQL——库的操作
数据库·mysql
2601_967980113 小时前
“小程序·云开发”上线 助力开发者的高效利器
数据库·存储管理·小程序云开发·云函数·开发者工具
zhangjw343 小时前
1-9 SELECT 查询基础:where、group by、having、order by、limit offset
数据库·postgresql·pg数据库
唐老板4 小时前
Postgres 慢查询,先取证再动手
数据库·ai编程
笃行35010 小时前
数据库性能优化的五处内核改造,KingbaseES 配了四件诊断工具
数据库
非优秀程序员12 小时前
第02章 杭电的英语老师与一台服务器|《互联网产品恩仇录》
数据库·node.js·代码规范
SelectDB17 小时前
SelectDB 是哪个公司的?是国产数据库吗?一篇讲清飞轮科技与 Apache Doris 的关系
数据库
这个DBA有点耶17 小时前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql