0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MySQL知识点汇总

马哥Linux运维 来源:博客园ikestu小猪 2024-08-05 15:27 次阅读

写在前面

大家好,这部分被称为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只能用于截断或者说是清空表。
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部分: 3d2ea02a-4ceb-11ef-b8af-92fbcf53809c.png

DDL部分: 3d4459f6-4ceb-11ef-b8af-92fbcf53809c.png

链接:https://www.cnblogs.com/cjybigdatablog/p/18326252

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3707

    浏览量

    64011
  • MySQL
    +关注

    关注

    1

    文章

    789

    浏览量

    26282
  • SQL语句
    +关注

    关注

    0

    文章

    19

    浏览量

    7015

原文标题:MySQL基础知识分享

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    GDB的知识点汇总,绝对实用

    GDB的知识点汇总,绝对实用
    发表于 12-24 06:01

    JTAG调试的知识点汇总,绝对实用

    JTAG调试的知识点汇总,绝对实用
    发表于 12-24 06:09

    关于汇编语言的知识点汇总,绝对实用

    关于汇编语言的知识点汇总,绝对实用
    发表于 01-18 07:32

    物联网设计与开发的知识点汇总,绝对实用

    物联网设计与开发的知识点汇总,绝对实用
    发表于 01-18 06:43

    STM32定时器中断的知识点汇总,绝对实用

    STM32定时器中断的知识点汇总,绝对实用
    发表于 01-20 06:06

    外部中断的知识点汇总,绝对实用

    外部中断的知识点汇总,绝对实用
    发表于 01-21 07:39

    Systick中断优先级的知识点汇总,绝对实用

    Systick中断优先级的知识点汇总,绝对实用
    发表于 01-26 07:43

    HT32F52352的知识点汇总,绝对实用

    HT32F52352的知识点汇总,绝对实用
    发表于 01-27 06:06

    DBC编辑的知识点汇总,绝对实用

    DBC编辑的知识点汇总,绝对实用
    发表于 02-09 08:02

    STM32时钟树的基础知识点汇总,绝对实用

    STM32时钟树的基础知识点汇总,绝对实用
    发表于 02-14 07:49

    三极管的知识点汇总,绝对实用

    三极管的知识点汇总,绝对实用
    发表于 02-15 06:23

    关于信号完整性的31个知识点汇总

    本文主要介绍了的是关于信号完整性的31个知识点汇总
    发表于 06-05 09:00 0次下载

    PHP基础学习知识点汇总免费下载

    本文档的主要内容详细介绍的是PHP基础学习知识点汇总免费下载。
    发表于 04-24 16:45 6次下载
    PHP基础学习<b class='flag-5'>知识点</b><b class='flag-5'>汇总</b>免费下载

    数字电子技术重要知识点汇总

    数字电子技术重要知识点汇总免费下载。
    发表于 07-06 17:06 50次下载

    三级网络技术知识点汇总(全部)

    三级网络技术知识点汇总(全部)
    发表于 10-20 10:30 0次下载