SQLyou基础用法讲解
文章目录
- SQLyog 基础知识讲解
- 1. 数据定义语言 (DDL)
- 创建数据库
- 创建表
- 修改表
- 删除表
- 2. 数据操作语言 (DML)
- 插入数据
- 批量插入数据
- 更新数据
- 条件更新
- 删除数据
- 条件删除
- 3. 数据查询语言 (DQL)
- 查询数据
- 查询所有数据
- 使用排序
- 使用聚合函数
- 分组查询
- 使用 HAVING 子句
- 4. 事务
- 5. 索引
- 创建索引
- 唯一索引
- 删除索引
- 6. 视图
- 7. 存储过程
- 总结
SQLyog 基础知识讲解
SQLyog 是一款强大的 MySQL 数据库管理工具,提供了直观的图形用户界面 (GUI),帮助用户简化数据库管理和操作。以下内容将详细讲解 SQLyog 中的基础知识,并对数据定义语言 (DDL)、数据操作语言 (DML)、数据查询语言 (DQL) 以及索引、事务、视图和存储过程等内容进行扩展和注释。
1. 数据定义语言 (DDL)
DDL 用于定义和管理数据库结构,如创建、修改和删除数据库和表。
创建数据库
CREATE DATABASE my_database;
- 解释: 创建一个名为
my_database
的新数据库,存放数据表及其数据。
创建表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, -- 自动递增的整型主键,每条记录唯一username VARCHAR(50) NOT NULL, -- 用户名,长度不超过50个字符,不能为空email VARCHAR(100) NOT NULL, -- 邮箱,长度不超过100个字符,不能为空created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认是当前时间
);
- 解释: 创建一个名为
users
的表,包含id
、username
、email
和created_at
列,其中id
列是主键,username
和email
列不能为空,created_at
列自动记录插入数据的时间。
修改表
ALTER TABLE users
ADD age INT; -- 向 users 表中添加 age 列,用于记录用户的年龄
- 解释: 使用
ALTER TABLE
命令修改表结构,向users
表中添加一个名为age
的整型字段,用于存储用户的年龄信息。
删除表
DROP TABLE users;
- 解释: 删除名为
users
的表,同时删除该表中的所有记录和结构。
2. 数据操作语言 (DML)
DML 用于操作数据表中的数据,主要包括插入、更新和删除操作。
插入数据
INSERT INTO users (username, email)
VALUES ('john_doe', 'john@example.com'); -- 插入一条新记录
- 解释: 向
users
表中插入一条新记录,用户名为john_doe
,邮箱为john@example.com
。
批量插入数据
INSERT INTO users (username, email)
VALUES
('jane_doe', 'jane@example.com'), -- 插入多个用户数据
('alice', 'alice@example.com');
- 解释: 向
users
表中插入多条记录,一次插入多个用户信息,减少操作次数,提高效率。
更新数据
UPDATE users
SET email = 'john_doe@example.com'
WHERE username = 'john_doe'; -- 更新 john_doe 的邮箱信息
- 解释: 更新
users
表中用户名为john_doe
的记录,将其邮箱更改为john_doe@example.com
。WHERE
子句用于指定更新的条件。
条件更新
UPDATE users
SET email = 'new_email@example.com'
WHERE age > 30; -- 更新所有年龄大于 30 的用户的邮箱
- 解释: 更新
users
表中所有年龄大于 30 的用户,将他们的邮箱设置为new_email@example.com
。
删除数据
DELETE FROM users
WHERE username = 'john_doe'; -- 删除用户名为 john_doe 的记录
- 解释: 从
users
表中删除用户名为john_doe
的记录。WHERE
子句确保只删除特定的记录。
条件删除
DELETE FROM users
WHERE created_at < '2022-01-01'; -- 删除 2022 年之前创建的所有用户
- 解释: 删除
users
表中所有创建时间早于 2022 年的记录。
3. 数据查询语言 (DQL)
DQL 用于查询数据库中的数据,主要通过 SELECT
语句来执行。
查询数据
SELECT username, email
FROM users
WHERE age > 18; -- 查询所有年龄大于 18 岁的用户的用户名和邮箱
- 解释: 查询
users
表中所有年龄大于 18 岁的用户,返回他们的用户名和邮箱。
查询所有数据
SELECT * FROM users; -- 返回 users 表中的所有数据
- 解释: 查询
users
表中的所有记录和所有列。
使用排序
SELECT * FROM users
ORDER BY created_at DESC; -- 按照创建时间降序排列结果
- 解释: 查询
users
表中的所有数据,并按照created_at
列降序排列结果。最新的记录会排在最前面。
使用聚合函数
SELECT COUNT(*) AS total_users, AVG(age) AS average_age
FROM users; -- 统计用户总数和平均年龄
- 解释: 通过
COUNT
计算users
表中的总用户数,通过AVG
计算用户的平均年龄,分别命名为total_users
和average_age
。
分组查询
SELECT age, COUNT(*) AS user_count
FROM users
GROUP BY age; -- 按年龄分组,统计每个年龄的用户数量
- 解释: 按
age
分组,统计每个年龄段的用户数量,并将结果命名为user_count
。
使用 HAVING 子句
SELECT age, COUNT(*) AS user_count
FROM users
GROUP BY age
HAVING user_count > 1; -- 只显示用户数量大于 1 的年龄组
- 解释: 使用
HAVING
子句进一步过滤分组结果,只显示用户数量大于 1 的年龄组。
4. 事务
事务是一个逻辑单元,其中的一组 SQL 操作要么全部成功,要么全部失败。事务用于确保数据库操作的一致性和完整性。
START TRANSACTION; -- 开始一个事务-- 插入数据
INSERT INTO users (username, email) VALUES ('jane_doe', 'jane@example.com');COMMIT; -- 提交事务,保存更改-- 如果出现错误,使用 ROLLBACK 撤销更改
ROLLBACK;
- 解释: 通过
START TRANSACTION
开始事务,如果所有操作都成功,使用COMMIT
提交更改。如果遇到错误,可以使用ROLLBACK
撤销所有操作,保证数据的一致性。
5. 索引
索引用于加速数据查询操作,尤其是在处理大量数据时。通过索引,可以显著提高查询的速度。
创建索引
CREATE INDEX idx_username ON users (username); -- 在 username 列上创建索引
- 解释: 为
users
表中的username
列创建索引,优化基于用户名的查询速度。
唯一索引
CREATE UNIQUE INDEX idx_email ON users (email); -- 创建唯一索引,确保邮箱唯一
- 解释: 创建一个唯一索引,确保
email
列中的值是唯一的。此索引会阻止重复的邮箱插入。
删除索引
DROP INDEX idx_username ON users; -- 删除 username 列上的索引
- 解释: 删除
users
表中username
列上的索引。
6. 视图
视图是基于 SQL 查询创建的虚拟表,通常用于简化复杂查询或者为特定用户提供特定的数据视图。
CREATE VIEW active_users AS
SELECT username, email
FROM users
WHERE active = 1; -- 创建一个只包含活跃用户的视图
- 解释: 创建一个名为
active_users
的视图,视图中的数据来自users
表,只包含标记为活跃的用户。
7. 存储过程
存储过程是一组预编译的 SQL 语句,可以多次调用,通常用于封装复杂的业务逻辑或重复性操作。
CREATE PROCEDURE GetUserCount()
BEGINSELECT COUNT(*) FROM users; -- 返回用户总数
END;
- 解释: 创建一个名为
GetUserCount
的存储过程,执行该过程时会返回users
表中的用户总数。
总结
通过本篇基础知识讲解,涵盖了 SQLyog 中 DDL、DML 和 DQL 的基础语法和扩展功能,介绍了事务、索引、视图和存储过程的使用。掌握这些基本语法和扩展知识可以帮助你更有效地管理和操作 MySQL 数据库。
相关文章:
SQLyou基础用法讲解
文章目录 SQLyog 基础知识讲解 1. 数据定义语言 (DDL)创建数据库创建表修改表删除表 2. 数据操作语言 (DML)插入数据批量插入数据更新数据条件更新删除数据条件删除 3. 数据查询语言 (DQL)查询数据查询所有数据使用排序使用聚合函数分组查询使用 HAVING 子句 4. 事务5. 索引创建…...
Can‘t get Kerberos realm
近期封装Ozone客户端,需要走kerberos登陆,遇到了一个问题,花了很长时间解决。记录一下,跟网上能搜到的解决方案不大一样。 先看有问题的代码 Configuration config new Configuration();ConfigurationUtils.setHadoopConfig(conf…...

[python]从零开始的PySide安装配置教程
一、PySide是什么? PySide 是 Qt for Python 项目的一部分,它提供了与 PyQt 类似的功能,使开发者能够使用 Python 编程语言来构建基于 Qt 的图形用户界面 (GUI) 应用程序。PySide 是由 Qt 公司官方维护的,而 PyQt 则是由第三方开发…...

LeetCode[中等] 74.搜索二维矩阵
给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…...

overleaf如何下载论文的pdf
用overleaf写完英文论文后,要将论文保存为PDF格式 点击图片中的下载按钮 然后选择一个路径保存论文的PDF格式即可。...

Java 每日一刊(第13期):this super static
“优秀的代码不仅仅是给机器看的,更是给人看的。” 前言 这里是分享 Java 相关内容的专刊,每日一更。 本期将为大家带来以下内容: this 关键字super 关键字static 关键字 this 关键字 this 关键字是 Java 中最常见的关键字之一…...
关于一些Spring的配置的作用
文章目录 spring.profiles.activejmx.default-domainmain.allow-bean-definition-overridingmain.allow-circular-referencescloud.nacoscloud.nacos.configcloud.nacos.shared-configsmvc.pathmatch.matching-strategy spring:profiles:active: ${config.profile}# include…...
利用Python与Ansible实现高效网络配置管理
利用Python与Ansible实现高效网络配置管理 在当今复杂多变的网络环境中,自动化配置管理工具成为了IT运维团队不可或缺的工具。Python以其强大的编程能力和丰富的库支持,结合Ansible这一流行的自动化运维工具,能够极大地提升网络配置管理的效…...
JDBC技术在不同数据库系统中的兼容性及Java数据库交互技术概览
目录 1. JDBC技术在不同数据库系统中的兼容性 2. 除了JDBC,还有哪些技术可以实现Java与数据库的交互? 3. 结论 在Java应用程序中,数据库交互是一个核心功能。Java Database Connectivity (JDBC) 是实现这一功能的标准技术之一。然而&#…...

双击热备 Electron网页客户端
安装流程: 1.下载node.js安装包进行安装 2.点击Next; 3.勾选,点击Next; 4.选择安装目录 5.选择Online 模式 6.下一步执行安装 。 7.运行cmd,执行命令 path 和 node --version,查看配置路径和版本 8.Goland安装插件node.js 9.配置运行…...

数据中台系统产品原型RP原型Axure高保真交互原型 源文件分享
在数字化时代,数据已经成为企业最宝贵的资产之一。为了更好地管理和利用这些数据,这边为大家整理了一套数据中台Axure高保真原型。这套原型致力于为企业提供全方位的数据服务,助力企业实现数据驱动的创新发展。 下载及预览地址:h…...

论文阅读笔记:Sapiens: Foundation for Human Vision Models
Sapiens: Foundation for Human Vision Models 1 背景1.1 问题1.2 目标 2 方法3 创新点4 模块4.1 Humans-300M数据集4.2 预训练4.3 2D位姿估计4.4 身体部位分割4.5 深度估计4.6 表面法线估计 5 实验5.1 实现细节5.2 2D位姿估计5.3 身体部位分割5.4 深度估计5.5 表面法线估计5.6…...

【学术会议:中国厦门,为全球的计算机科学与管理科技研究者提供一个国际交流平台】第五届计算机科学与管理科技国际学术会议(ICCSMT 2024)
您的学术研究值得被更多人看到! 在这里,我为您提供精准的会议推荐,包括计算机科学、管理科技、信息系统、人工智能、供应链管理等领域的国际会议。高效的稿件录用流程和优质的检索服务将确保您的研究成果迅速传播。关注我,寻找与…...

RK3588/RK3588s运行yolov8达到27ms
前言 Hello,小伙伴们~~我最近做了一个比较有意思的东西,想起来也好久没有写博客了,就记录一下吧。希望和大家一起学习,一起进步! 我简单介绍一下我最近做的这个东西的经过哈~上个月在B站上看到了一个博主发了一条视频关…...
2024年华为杯中国研究生数学建模竞赛E题(高速公路应急车道紧急启用模型)思路
1. 统计四个观测点的交通流参数随时间的变化规律 思路: 从视频数据中提取流量、密度、速度等交通流参数。进行时间序列统计,分析其随时间的变化规律。通过数据可视化,帮助分析流量波动、车速变化等现象。主要步骤: 读取视频数据:利用提供的Python程序读取每个视频文件。提…...
np.random.seed设完又想用随机seed怎么办
Python 设完np random seed 之后又想不设这个seed让它random,怎么办? 在Python的NumPy库中,一旦你设置了随机种子(通过numpy.random.seed()函数),所有后续的随机操作都会基于这个种子生成可预测的结果。如…...

[数据结构]动态顺序表的实现与应用
文章目录 一、引言二、动态顺序表的基本概念三、动态顺序表的实现1、结构体定义2、初始化3、销毁4、扩容5、缩容5、打印6、增删查改 四、分析动态顺序表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引言 想象一下,你有一个箱子(静态顺序…...
Invalid Private Key, Not a valid string or uint8Array
报这种错误:一般在生成private key前面添加"0x"即可解决。我就是在私钥前面添加了"0x"解决了。 在学习web3时,使用助词生成的私钥,然后由私钥导出keystore就报错: ERROR Invalid Private Key, Not a valid …...

【Text2SQL】PET-SQL:在Spider基准测试中取得了SOTA
解读:PET-SQL: A Prompt-enhanced Two-stage Text-to-SQL Framework with Cross-consistency 这篇论文介绍了一个名为 PET-SQL 的文本到 SQL(Text-to-SQL)框架,旨在通过增强提示(prompt)和利用不同大型语言…...

python-3n+1数链/233
一:3n1数链题目描述 在计算机科学上,有很多类问题是无法解决的,我们称之为不可解决问题。然而,在很多情况下我们并不知道哪一类问题可以解决,哪一类问题不可解决。现在我们就有这样一个问题,问题如下&#…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...