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; -- 这是一个注释
相关推荐
爬山算法2 小时前
Redis(162)如何使用Redis实现消息队列?
数据库·redis·缓存
u***32433 小时前
【Redis】centos7 systemctl 启动 Redis 失败
数据库·redis·缓存
煎蛋学姐3 小时前
SSM社区生鲜电商平台dq96z(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·用户管理·ssm 框架·社区生鲜电商·商品信息管理
杨云龙UP3 小时前
从0搭建Oracle ODA NFS异地备份:从YUM源到RMAN定时任务的全流程
linux·运维·数据库·oracle
倔强的石头_3 小时前
从 Oracle 到 KingbaseES:破解迁移痛点,解锁信创时代数据库新可能
数据库
踢足球09293 小时前
Redis的典型应用
数据库·redis·缓存
hadage2333 小时前
--- redis 常见问题 ---
数据库·redis·mybatis
O***P5713 小时前
redis批量删除namespace下的数据
数据库·redis·缓存
5***26224 小时前
SQL Server导出和导入可选的数据库表和数据,以sql脚本形式
数据库·sql
JSUITDLWXL4 小时前
Oracle记录被锁的查询与强制删除方法
数据库·oracle