【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 &#…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...