写在前面
大家好,不知道前面的20题大家写的怎么样,前面分享的20题是SQL中查询的基础题型,这部分被称为DQL部分,是每个学习MySQL必须要学会的部分,下面就让我来介绍MySQL中的其他部分。
回顾DQL部分
先介绍一下sql语句的语法和执行顺序(序号代表顺序由1~9):
| select 查询列表 (7) |
| from 表名 (1) |
| [ |
| join type join 表2 (2) |
| on 连接条件。 (3) |
| where 筛选条件 (4) |
| group by 分组字段 (5) |
| having 分组后的筛选 (6) |
| order by 排序的字段 (8) |
| ] |
| limit [offset] ,size; (9) |
| 其中: |
| select: 指定要查询的列或表达式,用于检索数据。 |
| from: 指定要查询的表名,表示数据来自哪个表。 |
| join: 将两个或多个表连接起来进行查询,有不同类型的连接(如内连接、左连接、右连接等)。 |
| on: 指定连接条件,即指定两个表如何关联。 |
| where: 筛选条件,用于过滤数据,只返回满足条件的行。 |
| group by: 按指定列对结果集进行分组,通常与聚合函数一起使用(如 SUM、COUNT)。 |
| having: 对分组后的结果应用筛选条件,过滤分组后的结果集。 |
| order by: 指定结果集的排序方式,可以是升序(ASC)或降序(DESC)。 |
| limit: 限制查询返回的行数,常与 offset 一起使用,表示从第几行开始取数据,取多少行。 |
| offset: 要显示条目的起始索引(起始索引从0开始)。 |
| size: 要显示的条目个数。 |
当你在编写 SQL 查询时,通常会使用这些来获取想要的数据,是MySQL中DQL的基本语法,要想熟练掌握它,需要不断通过sql习题来增强记忆,学会分析问题的思路,最后就能快速地实现需求。
DML(数据操作语言)部分
以下是数据库操作部分的语法及其示例:
插入数据:
| ## 方式一:insert into 表名 values(,,) ; |
| # 示例 : |
| INSERT INTO beauty |
| VALUES (17,'关晓彤','女',NULL,'18788888888',NULL,NULL); |
| ## 方式二:insert into 表名 set 1,2,3; |
| # 示例 : |
| INSERT INTO beauty |
| SET id=18,name='张静怡',phone='19088888888'; |
更新数据:
| ## 单表更新: |
| update 表名 set xx=xx ; |
| # 示例 : |
| UPDATE boys SET boyName='李晨',userCP=50 |
| WHERE id = 3; |
| ## 多表更新: |
| # (92规范)示例 : |
| UPDATE boys bo,beauty b |
| SET b.boyfriend_id = 3 |
| WHERE bo.id = b.boyfriend_id |
| AND bo.id IS NULL; |
| # (99规范)示例 : |
| UPDATE boys bo |
| RIGHT JOIN beauty b |
| ON bo.id = b.boyfriend_id |
| SET b.boyfriend_id = 3 |
| WHERE bo.id IS NULL; |
删除数据:
| ## 单表删除: |
| delete [from](单表加上,多表放表名后面)表名 where 筛选条件; |
| # 示例 : |
| DELETE FROM beauty WHERE phone LIKE '19%'; |
| ## 多表删除: |
| # 方式一:使用delete |
| DELETE b |
| FROM beauty b |
| INNER JOIN boys bo ON b.boyfriend_id = bo.id |
| WHERE bo.boyName = '汪峰'; |
| delete b |
| from beauty b , boys bo |
| where b.boyfriend_id = bo.id |
| and bo.boyName = '汪峰'; |
| # 方式二:使用truncate |
| truncate table 表名 |
| TRUNCATE TABLE boys WHERE userCP > 100; |
| TRUNCATE TABLE boys; 相当于清空表 |
delete和truncate对比
(1)delete可以加where条件,truncate不能加。
(2)truncate删除,效率高一点。
(3)加入要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,而truncate删除后,再插入数据自增长列的值从1开始。
(4)truncate删除没有返回值,delete删除有返回值。
(5)truncate删除不能回滚,delete删除可以回滚。
DDL(数据定义语言)部分
以下是数据库定义部分的语法及其示例:
创建 create
| #库: |
| DROP DATABASE IF EXISTS books; |
| CREATE DATABASE [IF NOT EXISTS] books; |
| #表: |
| DROP TABLE IF EXISTS books; |
| CREATE TABLE [IF NOT EXISTS] books( |
| id INT, |
| bName VARCHAR(20) |
| ); |
修改 alter
| # 库: |
| RENAME DATABASE books TO 新库名; |
| # 更改库的字符集 |
| ALTER DATABASE books CHARACTER SET 'utf8'; |
| # 表: |
| # 语法: |
| alter table 表名 add | drop | modify | change column 列名 [列类型 约束]; |
| add(加字段):ALTER TABLE author ADD COLUMN age INT; |
| drop(删字段):ALTER TABLE author DROP COLUMN age; |
| modify(修改字段类型):ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP; |
| change(修改列名):ALTER TABLE book CHANGE COLUMN publishDate pubDate DATETIME; |
| 如果想修改表名:ALTER TABLE author RENAME TO book_author; |
| 添加外键:ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES other_table(column_name) |
删除 drop
| #库: |
| DROP DATABASE [IF EXISTS] books; |
| #表: |
| DROP TABLE [IF EXISTS] book_author; |
表的复制
| # 方式一: 使用like复制表结构 |
| CREATE TABLE 表名 LIKE author; |
| # 方式二: 复制结构和数据 |
| CREATE TABLE 表名 SELECT * FROM author; |
| # 使用where 0和 where 1 来实现: |
| CREATE TABLE 表名 |
| SELECT id,au_name |
| FROM author |
| WHERE 0; (仅仅复制表结构即字段) |
| CREATE TABLE 表名 |
| SELECT id,au_name |
| FROM author |
| WHERE 1; (结构加数据) |
常见数据类型
| 整型: int bigint |
| 小数定点数: DECIMAL类型 NUMERIC类型 |
| 小数浮点数: float double |
| 字符型较短的文本:char varchar |
| 字符型较长的文本:text blob(较长的二进制数据) |
| 日期型: date datetime timestamp |
| 在创表时不确定的字段类型使用varchar(255) |
好了,今天就先介绍这么多,以后每天还会分享更多的大数据技术基础知识!
最后附上这部分思维导图,以便大家记忆。
DML部分:

DDL部分:

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库