SQL常用语句与事务介绍

news/2024/5/19 2:28:44

文章目录

      • 基本语法
      • 常见用法
      • 实用语句
      • 事务

基本语法

  1. SELECT:用于从数据库表中检索数据。
    语法: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, column2 = value2, ... WHERE condition;
  4. DELETE:用于从数据库表中删除数据。
    语法:DELETE FROM table_name WHERE condition;
  5. WHERE:用于限定查询、更新或删除操作的条件。
    语法:SELECT column1, column2, ... FROM table_name WHERE condition;
  6. AND/OR:用于组合多个条件。
    语法:SELECT column1, column2, ... FROM table_name WHERE condition1 AND/OR condition2;
  7. ORDER BY:用于对查询结果进行排序。
    语法:SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC/DESC;
  8. GROUP BY:用于将查询结果集中的多行数据根据一个或多个列进行分组。
    语法:SELECT column_name, AGGREGATE_FUNCTION(column_name) FROM table_name WHERE condition GROUP BY column_name;
  9. HAVING:用于对分组后的结果进行条件筛选。
    语法:SELECT column_name, AGGREGATE_FUNCTION(column_name) FROM table_name WHERE condition GROUP BY column_name HAVING condition;

常见用法

  1. 查询表中所有的信息:SELECT * FROM <表名>
  2. 条件查询 :Select * from students where score >= 80
  3. 投影查询(返回指定的列):SELECT score分数, name姓名 FROM students
  4. 按score从低到高:SELECT id, name, gender, score FROM students ORDER BY score
  5. 按score从高到低 :SELECT id, name, gender, score FROM students ORDER BY score DESC
  6. 先按score排,相同后按gender排:SELECT id, name, gender, score FROM students ORDER BY score DESC, gender
  7. 分页查询(每页3条,从零开始):limit 3 offset 0 下一页即为 ………limit 3 offset 3 以此类推
  8. 聚合查询(得到行数,并命名为num):SELECT COUNT(*) num FROM students
  9. 按 class_id分组查询得到的结果:SELECT class_id, COUNT(*) num FROM students GROUP BY class_id
  10. 多表查询 SELECT s.id sid,s.name,s.gender,c.id cid, c.name cname FROM students s, classes c
  11. 连接查询(内连接):SELECT s.id, s.class_id, c.name , s.score FROM students s INNER JOIN classes c ON s.class_id = c.id
  12. 连接查询(外连接): 百度去….

实用语句

  • 插入或替换(有则替换,无则插入)
REPLACE INTO  students (id, class_id, name, gender, score)   VALUES (1, 1, '小明', 'F', 99)
  • 插入或忽略(有则不插,无则插入)
INSERT  IGNORE INTO  students (id, class_id, name, gender, score)   VALUES(1, 1, '小明', 'F', 99)
  • 插入或更新(有则更新,无则插入)
NSERT INTO  students (id, class_id, name, gender, score)  VALUES(1, 1, '小明', 'F', 99) ON  DUPLICATE  KEY  UPDATE   name='小明', gender='F', score=99;
  • 快照–复制表的一些数据到另一份表
CREATE  TABLE  students_of_class1  SELECT  *   FROM  students WHERE   class_id=1

事务

  • 事务是数据库管理系统中的一个重要概念,它是一个操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务具有以下四个特性,通常被称为ACID特性:
  1. 原子性:事务是一个不可分割的工作单位,事务中的所有操作要么全部执行成功,要么全部失败回滚,不会处于中间状态。
  2. 一致性:事务必须使数据库从一个一致性状态转移到另一个一致性状态。事务执行的结果必须是数据库状态的合法状态,即数据不会因为事务的执行而遭到破坏。
  3. 隔离性:多个事务并发执行时,每个事务都感觉不到系统中有其他事务在执行,多个事务的执行互不干扰。不同的隔离级别可以解决不同的问题,如脏读、不可重复读和幻读等。
  4. 持久性:一个事务一旦提交,它对数据库中数据的改变就是永久性的。即使系统发生故障,这些改变也不会丢失。

Read Uncommitted是隔离级别最低的一种事务级别。在这种隔离级别下,一个事务会读到另一个事务更新后但未提交的数据,如果另一个事务回滚,那么当前事务读到的数据就是脏数据,这就是脏读(Dirty Read)

Read Committed隔离级别下,一个事务可能会遇到不可重复读的问题。
不可重复读是指:在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修改了这个数据,那么,在第一个事务中,两次读取的数据就可能不一致

Repeatable Read(默认)隔离级别下,一个事务可能会遇到幻读的问题。
幻读是指:在一个事务中,第一次查询某条记录,发现没有,但是,当试图更新这条不存在的记录时,竟然能成功,并且,再次读取同一条记录,它就神奇地出现了。

Serializable是最严格的隔离级别。在Serializable隔离级别下,所有事务按照次序依次执行,因此,脏读、不可重复读、幻读都不会出现。


http://www.mrgr.cn/p/51241310

相关文章

[软件工具]批量根据文件名查找PDF文件复制到指定的地方,如何批量查找文件复制,多个文件一起查找复制

多个文件目录下有多个PDF, 如何根据文件名一个清单&#xff0c;一次性查找多个PDF复制保存 如图所示下面有7个文件夹&#xff0c;每个文件夹里面有几百上千PDF文件 如何从上千个PDF文件中一次性快速找到我们要的文件呢 &#xff1f; 我们需要找到文件名是这样的PDF&#xff0…

阿里面试:事务ACID,底层是如何实现的?

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…

1. 深度学习笔记--神经网络中常见的激活函数

1. 介绍 每个激活函数的输入都是一个数字&#xff0c;然后对其进行某种固定的数学操作。激活函数给神经元引入了非线性因素&#xff0c;如果不用激活函数的话&#xff0c;无论神经网络有多少层&#xff0c;输出都是输入的线性组合。激活函数的意义在于它能够引入非线性特性&am…

14_Scala面向对象编程_属性

文章目录 属性1.类中属性声明2.系统默认赋值3.BeanProperty4.整体代码如下 属性 1.类中属性声明 // 1.给Scala声明属性&#xff1b;var name :String "zhangsan"val age :Int 302.系统默认赋值 scala由于初始化变量必须赋值&#xff0c;为了解决此问题可以采…

二、VLAN原理和配置

vlan不是协议&#xff0c;是一个技术&#xff0c;虚拟局域网技术&#xff0c;基于802.1q协议。 vlan&#xff08;虚拟局域网&#xff09;&#xff0c;将一个物理的局域网在逻辑上划分成多个广播域的技术。 目录 1.冲突域和广播域 概念 范围 2.以太网帧格式 3.以太网帧封装…

docker学习笔记3:VmWare CentOS7安装与静态ip配置

文章目录 一、安装CentOS71、下载centos镜像2、安装二、设置静态ip三、xshell连接centos本专栏的docker环境是在centos7里安装,因此首先需要会安装centos虚拟机。 本篇博客介绍如何在vm虚拟机里安装centos7。 一、安装CentOS7 1、下载centos镜像 推荐清华源,下载如下版本 …

golang学习笔记(内存模型和分配机制)

操作系统的存储管理 虚拟内存管理 虚拟内存是一种内存管理技术&#xff0c;它允许操作系统为每个进程提供一个比实际物理内存更大的地址空间。这个地址空间被称为虚拟地址空间&#xff0c;而实际的物理内存则被称为物理地址空间。使用虚拟内存有以下几点好处&#xff1a; 内…

多器官和多模态图像的通用异常检测模型-不受特定模型约束

文章目录 A Model-Agnostic Framework for Universal Anomaly Detection of Multi-organ and Multi-modal Images摘要方法实验结果 A Model-Agnostic Framework for Universal Anomaly Detection of Multi-organ and Multi-modal Images 摘要 背景与挑战&#xff1a;深度学习在…

anaconda下载keras包

——anaconda prompt中下载 打开anaconda prompt,切换到/激活对应的环境 通过 conda install -c conda-forge keras 安装 keras 通过 pip list 查看现有列表确认是否安装成功——pycharm中下载 点击python软件包,输入需要下载的软件包,选择版本后安装即可

仿知乎网站问答源码,开源版

仿知乎网站问答源码&#xff0c;开源版 需要一定动手能力 发文章&#xff0c;发视频&#xff0c;发想法&#xff0c;提问回答&#xff0c;注册登录 开发环境 使用技术&#xff1a;springbootthymeleafRedis&#xff1b; 开发环境&#xff1a;tomcat8.0&#xff0c;jdk8.0, ID…

DevOps,CI,CD,自动化简单介绍

原创 追逐时光者前言随着企业应用的不断迭代和发展,应用的版本发布可能涉及了多个技术团队(如PC端,移动端,小程序端等)。随之而来的问题是应用发布也成为了一项高风险,高压力的操作过程。并且应用的开发迭代的沟通,测试成本也大大的变得不可控。这时候就出现了DevOps管…

java中http调用组件深入详解

目录 一、前言 二、http调用概述 2.1 什么是http调用 2.1.1 http调用步骤 2.2 HTTP调用特点 2.3 HTTP调用应用场景 三、微服务场景下http调用概述 3.1 微服务开发中http调用场景 3.2 微服务组件中http的应用 四、常用的http调用组件 4.1 java中常用的http组件介绍 4…

数据结构===二叉树

文章目录 概要二叉树的概念分类存储遍历前序中序后序 小结 概要 简单写下二叉树都有哪些内容&#xff0c;这篇文章要写什么 二叉树的概念分类&#xff0c;都有哪些二叉树遍历 对一个数据结构&#xff0c;最先入手的都是定义&#xff0c;然后才会有哪些分类&#xff0c;对二叉…

File contains parsing errors: file:///etc/yum.repos.d/nginx.repo报错解决,文件配置出现问题

执行yum指令出现以下错误&#xff1a; 解决方案&#xff1a;yum的配置文件出现问题&#xff0c; 先删除yum.repos.d目录下所有文件 rm -f /etc/yum.repos.d/* 然后重新下载阿里的资源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.…

【Mac】Lightroom Classic 2024 v13.1安装教程

软件介绍 Lightroom Classic 2024是Adobe公司推出的一款专业的数字图像处理软件&#xff0c;旨在为摄影师提供强大的工具和功能&#xff0c;以管理、编辑和分享他们的照片作品。以下是Lightroom Classic 2024的主要特点和功能&#xff1a; 数字照片管理&#xff1a; 提供直观…

SpringData JPA - ORM 框架下,打造高效数据访问层

目录 一、SpringData JPA 概述 1.1、什么是 JPA 1.2、什么是 ORM 1.3、什么是 Hibernate 1.4、JPA 和 Hibernate 的关系 1.5、JPA 的优势 二、SpringData JPA 实战开发 2.1、依赖 2.2、配置文件 2.3、启动类 2.4、创建实体 2.5、基于 JpaRepository 的 CRUD 三、…

【软件设计师】上午题

【软考】软件设计师plus 「软件设计师」 2022年下半年上午真题解析视频 计算机系统知识 22下 考点&#xff1a;指令系统之CISC vs RISC RISC指令系统整体特点是简单、精简 》指令种类少&#xff0c;但是指令功能强 考点&#xff1a;计算机系统组成 A属于运算器&#xff0c;…

图文并茂手把手教你安装windows搭建sqlserver(SqlServer数据库安装保姆级教程)

sqlserver是什么 SQL Server 是由美国微软公司(Microsoft)开发的一款关系型数据库管理系统(RDBMS)。作为全球主流的数据库平台之一,SQL Server 设计用于高效管理和处理大量结构化数据,支持各种规模的应用场景,从个人电脑到企业级数据中心,乃至云端部署。 SQL Server 数…

FineBI学习:K线图

效果图 底表结构&#xff1a;日期、股票代码、股票名称、开盘价、收盘价、最高价、最低价 步骤&#xff1a; 横轴&#xff1a;日期 纵轴&#xff1a;开盘价、最低价 选择【自定义图表】&#xff0c;或【瀑布图】 新建字段&#xff1a;价差&#xff08;收盘-开盘&#xf…

Spring IoCDI (1)

目录 一、IoC & DI入门 1、Spring是什么 &#xff08;1&#xff09;什么是容器&#xff1f; &#xff08;2&#xff09;什么是IoC&#xff1f; 二、IoC介绍 1、传统程序开发 2、解决方案 3、IoC程序开发 4、IoC优势 三、DI介绍 通过前面的学习&#xff0c;我们知…