【SQL基础】SQL增删改查基本语句

2023-10-30

1 SQL 增删改查基本语句

增删改查是一个数据操作工具最基本的命令,在SQL中,这四种语句主要由以下关键字语句执行:

  • 增:insert
  • 删:delete
  • 改:update
  • 查:select

2 select 语句

2.1 select 基本语句

  1. 功能:SELECT 语句用于从数据库中选取数据。
  2. 结果:选取结果被存储在一个结果表中,称为结果集。
  3. 语法:可以用以下语句选择特定列名,或用*代替表示所有列。
SELECT column_name,column_name
FROM table_name;
  1. 练习网址:https://sqlzoo.net/wiki/SELECT
    5.

2.2 Select … where 语句

  1. 功能:SELECT语句用于从数据库中选取数据,WHERE子句用于提取那些满足指定条件的记录。
  2. 语法:
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
  1. 练习网址:https://sqlzoo.net/wiki/SELECT_…_WHERE
    在这里插入图片描述

2.3 Select … order by 语句

  1. 功能:SELECT语句用于从数据库中选取数据,用于对一列或者多列数据进行升序(ASC)或者降序(DESC)排列。
  2. 默认为升序排列,如果要对某元素按降序排列则在对应关键字后添加参数DESC。
  3. 语法:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
  1. 例子:
    在这里插入图片描述

2.4 Select … group by 语句

  1. 功能:SELECT语句用于从数据库中选取数据, GROUP BY 语句用来对相同的数据进行分组。
  2. 语法:
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
  1. 练习网址:https://sqlzoo.net/wiki/SELECT_…_GROUP_BY
    在这里插入图片描述

3 Select … join 语句

  1. 功能:JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
  2. 类型:
    • INNER JOIN:如果表中有至少一个匹配,则返回行;
    • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;
    • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行;
    • FULL JOIN:只要其中一个表中存在匹配,则返回行。
  3. 不同类型的join语句功能图解
    在这里插入图片描述
  4. 练习网址:https://sqlzoo.net/wiki/SELECT_…_JOIN
    在这里插入图片描述

3 insert into 语句

  1. 功能:用于向表中插入新记录,可以插入一行也可以同时插入多行。
  2. 语句:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
  1. 练习网址:https://sqlzoo.net/wiki/INSERT_…_VALUES
    在这里插入图片描述

4 update 语句

  1. 功能:用于更新表中已存在的记录。
  2. 语法:
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
  1. 练习网址:https://sqlzoo.net/wiki/UPDATE
    在这里插入图片描述

5 delete 语句

  1. 功能:用于删除表中的行。
  2. 语法:
DELETE FROM table_name
WHERE some_column=some_value;
  1. 练习网址:https://sqlzoo.net/wiki/DELETE
    在这里插入图片描述

6 XXX … Select 语句

  1. 功能:在一个查询语句中使用另一个查询语句的结果,用于无法一次查询到所需内容的情况。
  2. 子查询可以与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,并可使用运算符如 =、<、>、>=、<=、IN、BETWEEN 等。
  3. 以下是子查询必须遵循的几个规则:
    • 子查询必须用括号括起来。
    • 子查询在 SELECT 子句中只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较。
    • ORDER BY 不能用在子查询中,虽然主查询可以使用 ORDER BY。可以在子查询中使用 GROUP BY,功能与 ORDER BY 相同。
    • 子查询返回多于一行,只能与多值运算符一起使用,如 IN 运算符。
    • BETWEEN 运算符不能与子查询一起使用,但是,BETWEEN 可在子查询内使用。
  4. 语法:
--SELECT 语句中的子查询使用
SELECT column_name [, column_name ]
FROM   table1 [, table2 ]
WHERE  column_name OPERATOR
      (SELECT column_name [, column_name ]
      FROM table1 [, table2 ]
      [WHERE])
      
--INSERT 语句中的子查询使用
--INSERT 语句使用子查询返回的数据插入到另一个表中。
INSERT INTO table_name [ (column1 [, column2 ]) ]
   SELECT [ *|column1 [, column2 ] ]
   FROM table1 [, table2 ]
   [ WHERE VALUE OPERATOR ]

--UPDATE 语句中的子查询使用
--当通过 UPDATE 语句使用子查询时,表中单个或多个列被更新。
UPDATE table
SET column_name = new_value
[ WHERE OPERATOR [ VALUE ]
   (SELECT COLUMN_NAME
   FROM TABLE_NAME)
   [ WHERE) ]

--DELETE 语句中的子查询使用
DELETE FROM TABLE_NAME
[ WHERE OPERATOR [ VALUE ]
   (SELECT COLUMN_NAME
   FROM TABLE_NAME)
   [ WHERE) ]

7 数据库连接与退出

要对数据库进行操作,需要先连接数据库;操作完毕后需要退出数据库。对数据库的连接与退出命令如下:

/*两种连接方式*/
mysql -uroot -ppass						-- 连接本地SQL,账号为root,密码为pass
mysql -h192.168.206.100 -uroot -ppass	-- 连接远程SQL,IP为192.168.206.100,账号为root,密码为pass
/*三种退出方式*/
exit;
quit;
\q;

8 总结

  1. 掌握select及添加各种条件的查询语句;
  2. 掌握insert 、delete、update等增删改语句;
  3. 掌握增删改查中包含子查询的语句;
  4. 掌握数据库的连接与退出方式。

参考文献

  1. SQL 教程
  2. SQLzoo练习平台
  3. 千锋网络安全零基础到就业教程-Web渗透全套
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【SQL基础】SQL增删改查基本语句 的相关文章

  • 将静态值添加到 SQL 查询的结果

    我想知道是否有一种方法可以通过 SQL 查询来完成此任务 我有一个表 我们称之为 LISTOFTHINGS 它有两个感兴趣的字段 ID 和 NAMEOFTHING 我想要做的是构造一个查询 以便返回的是该查询的结果 SELECT ID NA
  • 我可以从列 CHECK 约束调用用户定义的函数吗?

    我有一个返回 1 或 0 的用户定义的 SQL 函数 我想从列 CHECK 约束中调用它 是的 SQL Anywhere 没有布尔数据类型 因此您必须编写一个生成 TRUE FALSE 或 UNKNOWN 的谓词 换句话说 如果函数返回 1
  • 如何将UTF-8编码的汉字从MySql正确导出到SQL

    过去三天我们正在与严重的问题作斗争 我们从PhpmyAdmin导出MySql数据库文件 数据库条目中写入的数据是带有UTF 8字符集的中文 导出后将其转换为拉丁字符集 现在我们正在将此数据库SQl文件导入到其他主机 我们在UTF 8和排序规
  • mysql 将 varchar 字段排序为整数

    我的表中有一个 varchar 字段 我想对其进行排序 但我需要将此字段作为整数处理 意思是如果按文本排序 顺序是 19 2 20 但我想得到正确的顺序 2 19 20 谁能帮我 我不知何故没有设法运行查询CAST 我总是得到Error C
  • 删除除一行之外的所有具有重复值的行

    我有一个包含三列的表 KEY VALUE and LAST UPDATED 有重复的VALUE字段 我想删除所有具有相同的行VALUE和其他人一样except获取最新更新的信息 因此 如果表包含这些行 1 A 2013 11 08 2 B
  • Oracle SQL 列转行(无需 UNPIVOT)

    我目前拥有的 Team User Apples Oranges Pears Red Adam 4 5 6 Red Avril 11 12 13 Blue David 21 22 23 需要什么 Team User Product Count
  • MongoDB 中递归文档的结构和查询语法?

    我最近开始在工作项目中研究 MongoDB 我对 JSON 和 MongoDB 的查询结构相当陌生 所以我希望你们中的一位能够提供一些说明 我已将这个问题翻译成 Excel 术语 因为它很常见并且很好地代表了我的问题 如果我尝试将 Exce
  • mysql 中的 max(长度(字段))

    如果我说 select max length Name from my table 我得到的结果是 18 但我也想要相关数据 所以如果我说 select max length Name Name from my table 这是行不通的 我
  • 如何增加每次 INSERT INTO 迭代的值?

    我有一个查询 如下所示 第 1 列位于 另一列是 varchar 100 INSERT INTO TABLE1 column1 column2 SELECT MAX column1 FROM TABLE1 1 anotherColumn F
  • 每组最大 n 个 SQL 查询的高性能方法

    我正在尝试构建一个基础设施 以便根据需要快速运行回归 从包含我们网络服务器上所有历史活动的数据库中提取 apache 请求 为了通过确保我们仍然回归来自较小客户的请求来提高覆盖范围 我想通过为每个客户检索最多 n 个 为了这个问题 假设 1
  • Doctrine 在 Active Record 之上添加了什么 - CodeIgniter?

    我真的很喜欢 CodeIgniter Active Record 它非常好地允许我进行所有需要的数据库查询 但我也一直在阅读有关 ORM 的内容 例如 Doctrine 当我阅读 Doctrine 的文档时 它的使用似乎不像 Active
  • SQL 选择 ID 相同的多个最大行

    我在这方面一次又一次地挣扎 但无法让它发挥作用 在这些论坛上呆了几个小时 数据集 Row Date AccountID Column 1 1 21 02 2013 0 30 A0M8FA1003YP 2 21 02 2013 0 30 A0
  • 我们如何从 getschemaTable 获取列大小和数据类型?

    我是一个新手 我试图从数据库中的某个表中检索列名称 大小 最大长度 和数据类型 当我执行以下代码时 希望它显示所有列类型和名称 我没有找到如何引用 Size 我使用了 ColumnSize 但据说 DataColumn 不包含此方法的定义
  • 从 LEFT OUTER JOIN 中删除重复项

    我的问题非常类似于限制 LEFT JOIN https stackoverflow com questions 757957 restricting a left join 有一个变体 假设我有一个表 SHOP 和另一个表 LOCATION
  • 如何将 SQL 查询结果导出为 csv 样式格式的字符串,然后将其保存到 Oracle 中的 clob 中?

    我有以下问题 我有一个表 Source Data 实际上 有很多不同的源表 我需要将其中的一些数据导出到 Result Table 中 对于每个源表 我都有一些返回数据的 sql 并且需要将其转换为类似 csv 的字符串 例如 Source
  • 如何使用PowerShell批量调用Update-Database

    我们使用 Azure 弹性池生成多个客户端数据库和一个引用客户端数据库的主数据库 我们已经拥有多个数据库 并且正在开发新版本的代码 我们使用 EF6 代码优先 当我们更改模型 添加属性 时 我们创建迁移文件并需要调用Update Datab
  • 是否可以将普通表与临时表进行左外连接?

    我创建 SQL Server 查询并有一个包含记录的普通表 另一方面有一个包含记录的临时表 该表不为空 并且所有字段都没有任何冲突 加入 可以连接这两个不同类型的表吗 SELECT NormalTable Entityname FROM N
  • 在 StackOverflow 克隆中,评论表与问题和答案应该有什么关系?

    在我正在构建的类似于 StackOverflow 的应用程序中 我试图确定我的关系Questions Answers and Comments表应该有 我本可以有Questions and Answers两者都由一个表表示Posts 那将允
  • SQL Server 2008 中超前滞后函数的替代

    我想将当前行与下一行中的值进行比较 SQL 有LEAD and LAG函数来获取下一个和上一个值 但我无法使用它们 因为我使用的是 SQL Server 2008 那么我该如何得到这个呢 我有带输出的表 Id ActId StatusId
  • Knex 中的表的别名

    我有一个 SQL 查询两次引用同一个表 并且我需要将该表别名为两个单独的别名 我不太清楚如何用 Knex 来编写它 有一个 单词 表和一个 用户 表 Words 表有两个外键 author id 和 winner id 引用 Users 表

随机推荐

  • 【ANN预测】基于遗传算法优化 ANN附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • qt在windows下交叉编译arm架构程序

    1
  • 《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装kubeadm、kubelet和kubectl》

    一 背景 由于客户网络处于专网环境下 使用kubeadm工具安装K8S集群 由于无法连通互联网 所有无法使用apt工具安装kubeadm kubelet kubectl 当然你也可以使用apt get工具在一台能够连通互联网环境的服务器上下
  • 单淘汰赛制两队相遇算法

    对于这种单循环赛制acm也是常遇到这样的题那么 对于这样的比赛我们要怎么模拟所有的可能是一个问题 我们如何判断两个队在某一轮是否会遇到呢 我们其实可以利用二进制的性质 设某一轮比赛为i 求j和k两只队伍是否能比赛 下面我们用二进制来表示队伍
  • vp8-vp9-ivf文件格式

    经常遇到ivf格式 下面看看它的头 typedef struct ivf header 0 3 固定的 DKIF 字符串 4 5 version 应该为0 6 7 header的字节长度 8 11 编码器的FourCC e g VP80 1
  • 在内嵌窗口中调用父窗口的javascript代码

    noname1 html noname2 html
  • 【原创】【硬件电路】AltiumDesigner18规则检查含义

    文章首发于同名微信公众号 DigCore 欢迎关注同名微信公众号 DigCore 及时获取最新技术博文 Layout时最常用的错误检查 这需要在布局布线前做好规则设置 所谓磨刀不误砍柴工 尤其是在Layout时 如果违反规则 就会亮起绿色
  • vue.config.js配置详解

    1 vue inspect rule 命令获取vue config js中的chainWebpack配置项 2 vue inspect rule svg 筛选配置项 const path require path function reso
  • Rattle :基于R的数据挖掘工具(3):载入数据

    数据 数据是进行数据挖掘工作的基础 要是没有数据 那也就没什么可挖的了 当今时代 数据的丰富超乎想象 它可以是数字 也可以是文本 图像 声音 视频等各种形式的存在 但是要把数据变成知识和信息 并不是一件简单的事 关于数据的一般术语 一个数据
  • C语言有参函数调用时参数间数据传递问题

    C语言有参函数调用时参数间数据传递问题 C语言中在发生有参函数调用时 实参变量与形参变量之间的数据都是单向的 值传递 方式 包括指针变量和数组名作参数的情况 C语言要求函数的实参要有确定的值 在函数调用时给形参分配相应的内存单元 同时将实参
  • 一文讲清 c++ 之队列

    队列也是一种特殊的 表 使用队列时插入是在一端操作 而删除则是在另外一端 1 队列模型 队列的基本操作是enqueue 入队 它是在表的末端 称为队尾 插入 个元素 dequeue 出队 它是删除 并返回 表的开头 叫作队头 的元素 下图显
  • 计算机简史:从分布式到中心化的博弈螺旋

    作为应用程序开发商 我们有责任为用户的隐私和信息安全考虑 用户应该拥有控制自己信息数据的权利 这些用户数据应该在初始化的时候就被加密和保护 作者 Eric Elliott 书籍 函数式编程的兴衰 和 编程JavaScript应用 的作者 他
  • apt install命令安装失败(已解决)

    在安装virtualbox时出现如下错误 百度了许久没有找到答案 朋友指点下已解决 分享给你们 以上 在处理时有错误发生 getdeb repository N 忽略 getdeb list bck 于目录 etc apt sources
  • Transformers GitHub项目星标突破10万!新里程碑!

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt Transformer 微信技术交流群 转载自 新智元 编辑 桃子 导读 问世6年来 Transformer不仅成为NLP领域的主流模型 甚至成功向其他
  • c++遇到的问题剪辑

    1 VS中使用TextOutW 参数不匹配问题 BOOL CDC TextOutW int int const CString 不能将参数 3 从 const char 18 错误说明 VC程序中使用了文字输出函数 TextOut 20 2
  • centos8配置网络

    centos安装后配置网络连接 3 网络配置 3 1 查看自己主机ip 网关等信息 例如个人主机信息如下 使用ipconfig all 可以查看所有信息 包括DNS 3 2 设置vmware网络连接 vmware gt 我的计算机 gt 设
  • java.net.ProtocolException: exceeded content-length limit of XXX bytes

    场景 使用HttpURLConnection向服务器提交POST请求 模拟将评论的内容提交给服务器 url new URL http 10 0 2 2 9102 post comment HttpURLConnection connecti
  • Docker之一:账号注册

    Docker之一 账号注册 在学习Docker之前 我们需要在Docker官网注册一个账号 方便后续下载安装包等操作 在主页面点击 Sign in 注册 Sign Up 填写注册信息 然后点击 Sign Up 选择Free 如果您有需求 可
  • python读取excel文件并保存成array

    要使用xlrd包 import numpy as np import xlrd 读取excel的库 resArray 先声明一个空list data xlrd open workbook demo xlsx 读取文件 table data
  • 【SQL基础】SQL增删改查基本语句

    目录 1 SQL 增删改查基本语句 2 select 语句 2 1 select 基本语句 2 2 Select where 语句 2 3 Select order by 语句 2 4 Select group by 语句 3 Select