【MySQL】SQL菜鸟教程(一)
1.常见命令
1.1 总览

| 命令 | 作用 |
|---|---|
| SELECT | 从数据库中提取数据 |
| UPDATE | 更新数据库中的数据 |
| DELETE | 从数据库中删除数据 |
| INSERT INTO | 向数据库中插入新数据 |
| CREATE DATABASE | 创建新数据库 |
| ALTER DATABASE | 修改数据库 |
| CREATE TABLE | 创建新表 |
| ALTER TABLE | 变更数据表 |
| DROP TABLE | 删除表 |
| CREATE INDEX | 创建索引 |
| DROP INDEX | 删除索引 |
1.2 常用语法
- SELECT:用于从数据库中查询数据
SELECT column_name
FROM table_name
WHERE condition
ORDER BY column_name ASC/DESC
column_name(s): 要查询的列。
table_name: 要查询的表。
condition: 查询条件(可选)。
ORDER BY: 排序方式,ASC 表示升序,DESC 表示降序(可选)。
- INSERT INTO:用于向数据库表中插入新数据
INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2, ...)
table_name: 要插入数据的表。
column1, column2, …: 要插入数据的列。
value1, value2, …: 对应列的值。
- UPDATE:用于更新数据库表中现有数据
UPDATE table_name
SET column1 = value1, column2 = value2,..
WHERE condition
table_name: 要更新数据的表。
column1 = value1, column2 = value2, …: 要更新的列及其新值。
condition: 更新条件。
- DELETE:用于从数据库表中删除数据
DELETE FROM table_name
WHERE condition
table_name: 要删除数据的表。
condition: 删除条件。
- CREATE TABLE:用于创建新的数据库表
CREATE TABLE table_name(column1 data_type constraint,column2 data_type constraint,....)
table_name: 要创建的表名。
column1, column2, …: 表的列。
data_type: 列的数据类型(如 INT、VARCHAR 等)。
constraint: 列的约束(如 PRIMARY KEY、NOT NULL 等)。
- ALTER TABLE:用于修改现有的数据库表的结构
ALTER TABLE table_name
ADD column_name1 data_typeALTER TABLE table_name
DROP COLUMN column_name2
table_name: 要修改的表。
column_name1: 要添加的列。
data_type: 列的数据类型。
column_name2: 要删除的列。
- DROP TABLE:用于删除数据库表
DROP TABLE table_name
table_name: 要删除的表
- CREATE INDEX:用于创建索引,以加快查询速度
CREATE INDEX index_name
ON table_name (column_name)
index_name: 索引名
table_name:创建的表
column_name: 表中要索引的列
- DROP INDEX:用于删除索引
DROP INDEX index_name
ON table_name
index_name: 要删除的索引名
table_name:索引所在的表
- WHERE:用于指定筛选条件
SELECT column_name
FROM table_name
WHERE condition
condition:筛选条件
- ORDER BY:用于对结果集进行排序
SELECT column_name
FROM table_name
ORDER BY column_name ASC/DESC
column_name : 用于排序的列
ASC : 升序(默认,什么都不写的话就是升序)
DESC :降序
- GROUP BY:用于将结果按一列或者多列进行分组
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE condition
GROUP BY column_name
aggregate_function: 聚合函数(如 COUNT、SUM、AVG 等)
- HAVING:用于对分组后的结果进行筛选
SELECT column_name, aggregate_function(column_name)
FROM table_name
GROUP BY column_name
HAVING condition
condition:筛选条件
- JOIN:用于将两个或多个表的记录结合起来
SELECT column_name
FROM table_name1
JOIN table_name2
ON table_name1.column_name = table_name2.column_name
JOIN: 可以是 INNER JOIN、LEFT JOIN、RIGHT JOIN 或 FULL JOIN。
- DISTINCT:用于返回唯一不同的值
SELECT DISTINCT column_name
FROM table_name
column_name(s): 要查询的列。
2.SELECT
2.1 语法
SELECT column_name 1, column_name 2
FROM table_name#OR
SELECT * FROM table_name
参数说明:
- column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
- *: 通配符,表示选择表中的所有列。
2.2 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.从 “Websites” 表中选取 “name” 和 “country” 列:
SELECT name, country
FROM Websites

2.从 “Websites” 表中选取所有列:
SELECT * FROM Websites

3.SELECT DISTINCT
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
3.1 语法
SELECT DISTINCT column_name 1, column_name 2
FROM table_name
参数说明:
- column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
3.2 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.从 “Websites” 表的 “country” 列中选取唯一不同的值,也就是去掉 “country” 列重复值:
SELECT DISTINCT country
FROM Websites

4.WHERE
WHERE 子句用于提取那些满足指定条件的记录。
4.1 语法
SELECT column_name 1, column_name 2
FROM table_name
WHERE condition
参数说明:
- column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
- condition: 筛选条件
4.2 WHERE 中的运算符
| 运算符 | 含义 |
|---|---|
| = | 等于 |
| != / <> | 不等于 |
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| AND | 组合多个逻辑,与 |
| OR | 逻辑,或 |
| NOT | 逻辑,非 |
| BETWEEN …AND… | 在某个范围之内 |
| LIKE | 搜索某种模式吗,模糊查询 |
| IN | 指定针对某个列的多个可能值 |
| IS NULL | 检查是否为空 |
| IS NOT NULL | 检查是否不为空 |
4.3 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.从 “Websites” 表中选取国家为 “CN” 的所有网站:
SELECT url
FROM Websites
WHERE country = 'CN'

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。在上个实例中 ‘CN’ 文本字段使用了单引号。如果是数值字段,请不要使用引号。
2.从 “Websites” 表中选取id为 “1” 的网站:
SELECT url
FROM Websites
WHERE id = 1

3.匹配列表中的任意值(IN)
SELECT *
FROM Employees
WHERE Department IN ('HR', 'IT', 'Finance')
4.模糊匹配(LIKE)支持通配符 %(任意多个字符)和 _(单个字符)
SELECT * FROM Employees WHERE Name LIKE ‘J%’ -- 以J开头的名字
SELECT * FROM Employees WHERE Name LIKE ‘%son’ -- 以son结尾的名字
SELECT * FROM Employees WHERE Name LIKE ‘_o%’ -- 第二个字符是o的名字
5.ORDER BY
ORDER BY 关键字用于对结果集进行排序。默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
5.1 语法
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
参数说明:
- column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
- ASC: 按升序排序(默认)
- DESC: 按降序排序
5.2 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.从 “Websites” 表中选取所有网站,并按照 “alexa” 列排序:
SELECT *
FROM Websites
ORDER BY alexa

2.从 “Websites” 表中选取所有网站,并按照 “alexa” 列降序排序:
SELECT *
FROM Websites
ORDER BY alexa DESC

3.从 “Websites” 表中选取所有网站,并按照 “country” 和 “alexa” 列排序:
SELECT *
FROM Websites
ORDER BY country, alexa

6.INSERT INTO
INSERT INTO 语句用于向表中插入新记录。
6.1 语法
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
参数说明:
- column1, column2, …:要插入的字段名称
- table_name:要查询的表名称。
- value1, value2, …:需要插入的字段值。
6.2 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.向 “Websites” 表中插入一个新行。
INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度', 'https://www.baidu.com/','4','CN');

2.在指定的列插入数据,将插入一个新行,但是只在 “name”、“url” 和 “country” 列插入数据(id 字段会自动更新):
INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');

没有添加的列会自动填充为0
7.UPDATE
UPDATE 语句用于更新表中已存在的记录。
7.1 语法
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition
参数说明:
- column1, column2, …:要修改的字段名称
- table_name:要修改的表名称。
- value1, value2, …:需要修改的字段值。
- condition:修改条件,用于指定哪些数据要修改。
7.2 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.把 “菜鸟教程” 的 alexa 排名更新为 5000,country 改为 USA。
UPDATE Websites
SET alexa = '5000', country = 'USA'
WHERE name = '菜鸟教程'

8.DELETE
DELETE 语句用于删除表中的记录。
7.1 语法
DELETE FROM table_name
WHERE condition;
参数说明:
- table_name:要删除的表名称。
- condition:删除条件,用于指定哪些数据要删除。
7.2 示例
Websites表:
| id | name | url | alexa | country |
|---|---|---|---|---|
| 1 | https://www.google.cm/ | 1 | USA | |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | https://www.facebook.com/ | 3 | USA |
1.从 “Websites” 表中删除网站名为 “Facebook” 且国家为 USA 的网站。
DELETE FROM Websites
WHERE name = 'Facebook' AND country = 'USA'

相关文章:
【MySQL】SQL菜鸟教程(一)
1.常见命令 1.1 总览 命令作用SELECT从数据库中提取数据UPDATE更新数据库中的数据DELETE从数据库中删除数据INSERT INTO向数据库中插入新数据CREATE DATABASE创建新数据库ALTER DATABASE修改数据库CREATE TABLE创建新表ALTER TABLE变更数据表DROP TABLE删除表CREATE INDEX创建…...
安装本地测试安装apache-doris
一、安装前规划 我的服务器是三台麒麟服务器,2台跑不起来,这是我本地的,内存分配的也不多。 fe192.168.1.13 主数据库端口9030访问 8Gbe192.168.1.13内存4G 硬盘50be192.168.1.14内存4G 硬盘50be192.168.1.12内存4G 硬盘5013同时安装的fe和be 。 原理:192.168.1.13 服…...
【Apache Paimon】-- 13 -- 利用 paimon-flink-action 同步 mysql 表数据
利用 Paimon Schema Evolution 核心特性同步变更的 mysql 表结构和数据 1、背景信息 在Paimon 诞生以前,若 mysql/pg 等数据源的表结构发生变化时,我们有几种处理方式 (1)人工通知(比如常规的使用邮件),然后运维人员手动同步到数据仓库中 (2)使用 flink 消费 DDL bi…...
IOS HTTPS代理抓包工具使用教程
打开抓包软件 在设备列表中选择要抓包的 设备,然后选择功能区域中的 HTTPS代理抓包。根据弹出的提示按照配置文件和设置手机代理。如果是本机则会自动配置,只需要按照提醒操作即可。 iOS 抓包准备 通过 USB 将 iOS 设备连接到电脑,设备需解…...
在 Ubuntu 22.04 上从 Wayland 切换到 X11的详细步骤
在 Ubuntu 22.04 上从 Wayland 切换到 X11,步骤其实很简单,主要是在登录界面进行选择。以下是详细的步骤: 步骤 1:退出当前会话 首先,点击屏幕右上角的用户菜单,选择 注销 或 退出,以退出当前…...
【Linux】4.Linux常见指令以及权限理解(2)
文章目录 3. Linux指令3.1 ls指令和rm指令补充3.2 man指令(重要)3.3cp指令(重要)输出重定向3.3.1ubuntu20.04如何安装tree 3.4 mv指令(重要)mv指令更改文件名mv指令更改目录名 如何看待指令指令的重命名3.5…...
ffmpeg aac s16 encode_audio.c
用ffmpeg库时,用代码对pcm内容采用aac编码进行压缩,出现如下错误。 [aac 000002bc5edc6e40] Format aac detected only with low score of 1, misdetection possible! [aac 000002bc5edc8140] Error decoding AAC frame header. [aac 000002bc5edc81…...
vue3监听器
1.侦听数据源类型 watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组 const x ref(0) const y ref(0)// 单个 ref watch(x, (newX) > {console.log(x is ${newX}) …...
03-51单片机定时器和串口通信
一、51单片机定时器 1.定时器介绍 1.1为什么要使用定时器 在前面的学习中,用到了 Delay 函数延时,这里学习定时器以后,就可以通过定时器来完成,当然定时器的功能远不止这些: 51 单片机的定时器既可以定时ÿ…...
系统架构设计师考点—项目管理
一、备考指南 项目管理主要考查的是进度管理、软件配置管理、质量管理、风险管理等相关知识,近几年都没有考查过,但是有可能在案例分析中考查关键路径的技术问题,考生了解为主。 二、重点考点 1、项目的十大管理(速记࿱…...
代码随想录算法训练营第三十二天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯
目录 509.斐波那契数 动态规划五部曲: 1.确定dp数组(dp table)以及下标的含义 2.确定递推公式 3.dp数组如何初始化 4.确定遍历顺序 5.举例推导dp数组 70.爬楼梯 动态规划五部曲: 1.确定dp数组(dp table)…...
【2024年华为OD机试】 (A卷,100分)- 总最快检测效率(Java JS PythonC/C++)
一、问题描述 题目描述 在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同,采样效率为 N 人/小时。由于外界变化,采样员的效率会以 M 人/小时为粒度发生变化,M 为采样效率浮动粒度…...
【大数据】Apache Superset:可视化开源架构
Apache Superset是什么 Apache Superset 是一个开源的现代化数据可视化和数据探索平台,主要用于帮助用户以交互式的方式分析和展示数据。有不少丰富的可视化组件,可以将数据从多种数据源(如 SQL 数据库、数据仓库、NoSQL 数据库等࿰…...
LabVIEW调用不定长数组 DLL数组
在使用 LabVIEW 调用 DLL 库函数时,如果函数中的结构体包含不定长数组,直接通过 调用库函数节点(Call Library Function Node) 调用通常会遇到问题。这是因为 LabVIEW 需要与 DLL 中的数据结构完全匹配,而包含不定长数…...
MySQL 17 章——触发器
在实际开发中,我们经常会遇到这样的情况:有2个或者多个相关联的表,比如商品信息表和库存信息表,分别存放在两个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时在…...
面向对象分析与设计Python版 面向对象设计方法
文章目录 前言一、职责驱动设计二、职责驱动设计-案例 前言 面向对象设计目标:在面向对象分析建立的领域模型的基础上,定义对象操作(职责)。为对象分配职责的方法有: 职责驱动设计遵循GRASP设计原则(Gene…...
GB/T 19582.1-2008主要内容
标准背景与概述 GB/T 19582.1-2008是由中国国家标准化管理委员会发布的国家标准,旨在指导和规范基于Modbus协议的工业自动化网络的设计和实施。该标准由全国工业过程测量控制和自动化标准化技术委员会(TC124)归口,并由中国机械工…...
[石榴翻译] 维吾尔语音识别 + TTS语音合成
API网址 丝路AI平台 获取 Access token 接口地址:https://open.xjguoyu.cn/api/auth/oauth/token,请求方式:GET,POST Access token是调用服务API的凭证,调用服务API之前需要获取 token。每次成功获取 token 以后只有…...
算法题(32):三数之和
审题: 需要我们找到满足以下三个条件的所有三元组,并存在二维数组中返回 1.三个元素相加为0 2.三个元素的下标不可相同 3.三元组的元素不可相同 思路: 混乱的数据不利于进行操作,所以我们先进行排序 我们可以采取枚举的方法进行解…...
webpack03
什么是source-map 将代码编译压缩之后,,可以通过source-map映射会原来的代码,,,在调试的时候可以准确找到原代码报错位置,,,进行修改 source-map有很多值: eval &#…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
