【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 &#…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

统计按位或能得到最大值的子集数目
我们先来看题目描述: 给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。 如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,…...

夏普比率(Sharpe ratio)
具有投资常识的人都明白,投资光看收益是不够的,还要看承受的风险,也就是收益风险比。 夏普比率描述的正是这个概念,即每承受一单位的总风险,会产生多少超额的报酬。 用数学公式描述就是: 其中࿱…...
跨域请求解决方案全解析
跨域请求可以通过多种技术方案实现,核心是绕过浏览器的同源策略限制。以下是主流解决方案及具体实现方式: 一、CORS(跨域资源共享) 最常用的标准化方案,通过服务器设置HTTP响应头实现: Access-Control-Al…...

LabVIEW的MathScript Node 绘图功能
该VI 借助 LabVIEW 的 MathScript Node,结合事件监听机制,实现基于 MathScript 的绘图功能,并支持通过交互控件自定义绘图属性。利用 MathScript 编写脚本完成图形初始化,再通过LabVIEW 事件结构响应用户操作,动态修改…...
上位机知识篇---网页端实现
一、网页端基础概念 网页的本质 网页是通过浏览器展示的超文本(HTML)内容,依赖 HTTP/HTTPS 协议 进行数据传输。组成要素: 结构层(HTML):定义页面内容和语义(如标题、段落、列表等&a…...

如何实现本地mqtt服务器和云端服务器同步?
有时候,一个物联网项目,A客户想要本地使用,B客户想要线上使用,C客户想要本地部署,当有网环境时能线上使用。这个时候就需要本地MQTT服务和线上MQTT服务能相互自动转发。 后来经我一翻研究,其实Activemq支持…...