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; -- 这是一个注释
相关推荐
破 风5 分钟前
SpringBoot 集成 MongoDB
数据库·mongodb
Rverdoser13 分钟前
MySQL-MVCC(多版本并发控制)
数据库·mysql
m0_7482336420 分钟前
SQL数组常用函数记录(Map篇)
java·数据库·sql
dowhileprogramming25 分钟前
Python 中的迭代器
linux·数据库·python
0zxm1 小时前
08 Django - Django媒体文件&静态文件&文件上传
数据库·后端·python·django·sqlite
Minxinbb6 小时前
MySQL中Performance Schema库的详解(上)
数据库·mysql·dba
mmsx7 小时前
android sqlite 数据库简单封装示例(java)
android·java·数据库
zpjing~.~8 小时前
Mongo 分页判断是否有下一页
数据库
2401_857600958 小时前
技术与教育的融合:构建现代成绩管理系统
数据库·oracle
秋恬意8 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis