当前位置: 首页 > news >正文

数据库(数据库相关概念、MySQL数据库、SQL(DDL、DML、DQL))

数据库(数据库相关概念、MySQL数据库、SQL(DDL、DML、DQL))

1.数据库相关概念

数据库

  • 存储数据的仓库,数据是有组织的进行存储
  • 英文:DataBase,简称 DB
    数据库管理系统
  • 管理数据库的大型软件
  • 英文:DataBase Management System,简称 DBMS
    SQL
  • 英文:Structured Query Language,简称SQL,结构化查询语言
  • 操作关系型数据库的编程语言
  • 定义操作所有关系型数据库的统一标准

    常见的关系型数据库管理系统
  • Oracle:收费的大型数据库,Oracle 公司的产品
  • MySQL:开源免费的中小型数据库。后来Sun公司收购了MySQL,而 Sun 公司又被Oracle收购
  • SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用
  • PostgreSQL:开源免费中小型的数据库
  • DB2:IBM公司的大型收费数据库产品
  • SQLite:嵌入式的微型数据库。如:作为Android内置数据库
  • MariaDB:开源免费中小型的数据库
    2.MySQL数据模型

关系型数据库
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库

  • 优点:
    1.都是使用表结构,格式一致,易于维护。
    2.使用通用的SQL语言操作,使用方便,可用于复杂查询。
    3.数据存储在磁盘中,安全。


    3.SQL简介&通用语法&分类

SQL简介

  • 英文:Structured Query Language,简称 SQL
  • 结构化查询语言,一门操作关系型数据库的编程语言
  • 定义操作所有关系型数据库的统一标准
  • 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
    SQL通用语法
    1.SQL语句可以单行或多行书写,以分号结尾。
    2. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
    3.注释
  • 单行注释:-- 注释内容或#注释内容(MySQL特有) 注意:–后面有空格不然报错
  • 多行注释://注释//
    SQL分类
  • DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等
  • DML(DataManipulation Language)数据操作语言,用来对数据库中表的数据进行增删改
  • DQL(Data QueryLanguage)数据查询语言,用来查询数据库中表的记录(数据)
  • DCL(DataControlLanguage)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
  • DDL:操作数据库,表等
  • DML:对表中的数据进行增删改
  • DQL:对表中的数据进行查询
  • DCL:对数据库进行权限控制
    最重要是DML和DQL
    4.DDL–对于数据库的操作

  1. 查询
    SHOW DATABASES;
  2. 创建
  • 创建数据库
    CREATE DATABASE 数据库名称;
  • 创建数据库(判断,如果不存在则创建)
    CREATE DATABASE IF NOT EXISTS 数据库名称;
    3.删除
  • 删除数据库
    DROP DATABASE 数据库名称;
  • 删除数据库(判断,如果存在则删除)
    DROP DATABASE IF EXISTS 数据库名称;
  1. 使用数据库
  • 查看当前使用的数据库
    SELECT DATABASE();
  • 使用数据库
    USE 数据库名称;

    5.DDL–操作表

  • 创建(Create)
  • 查询(Retrieve)
  • 修改(Update)
  • 删除(Delete)

(1)DDL–操作表-查询&创建

查询表

  • 查询当前数据库下所有表名称
    SHOW TABLES;
  • 查询表结构
    DESC 表名称;

    创建表

    注意:最后一行末尾,不能加逗号

(2)DDL–操作表-数据类型

MySQL支持多种类型,可以分为三类:

  • 数值
  • 日期
  • 字符串

(3)DDL–操作表-修改&删除

删除表

  1. 删除表
    DROP TABLE 表名;
    2.删除表时判断表是否存在
    DROP TABLE IF EXISTS 表名;
    修改表
  2. 修改表名
    ALTER TABLE 表名 RENAME TO 新的表名;
  3. 添加一列
    ALTER TABLE 表名 ADD 列名 数据类型;
    3.修改数据类型
    ALTER TABLE 表名 MODIFY 列名 新数据类型;
    4.修改列名和数据类型
    ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
  4. 删除列
    ALTER TABLE 表名 DROP 列名;



6.图形化客户端工具Navicate

Navicat

  • Navicat for MySQL是管理和开发MySQL或MariaDB的理想解决方案。
  • 这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。
  • 官网:http://www.navicat.com.cn


    7.DML–操作数据-添加&修改&删除

添加数据
1.给指定列添加数据
INSERT INTO 表名(列名1,列名2…) VALUES(值1,值2…);
2. 给全部列添加数据
INSERT INTO 表名 VALUES(值1,值2…);
3.批量添加数据
INSERT INTO 表名(列名1,列名2…) VALUES(值1,值2…),(值1,值2…),(值1,值2…;
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2…;
不建议省略列名

修改数据
1.修改表数据
UPDATE 表名 SET 列名1=值1,列名2=值2…[WHERE条件];
注意:修改语句中如果不加条件,则将所有数据都修改!

删除数据

  1. 删除数据
    DELETE FROM 表名 [WHERE 条件];
    注意:删除语句中如果不加条件,则将所有数据都删除!
    8.DQL

查询语法

  • 基础查询
  • 条件查询(WHERE)
  • 分组查询(GROUP BY)
  • 排序查询(ORDER BY)
  • 分页查询(LIMIT)

(1)基础查询

1.查询多个字段
SELECT 字段列表 FROM 表名;
SELECT /* FROM 表名;-- 查询所有数据。不要使用!!!
2.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
3. 起别名
AS:AS 也可以省略



也可以不写as,但是列名和别名需要用空格隔开

(2)条件查询

  1. 条件查询语法
    SELECT 字段列表 FROM 表名 WHERE 条件列表;






(3)排序查询

1.排序查询语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]…;
排序方式:

  • ASC:升序排列(默认值)(从小到大)
  • DESC:降序排列(从大到小)
    注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

(4)聚合函数

聚合函数
1.概念:
将一列数据作为一个整体,进行纵向计算。
2. 聚合函数分类:

3.聚合函数语法:
SELECT 聚合函数名(列名)FROM 表;
注意:null值不参与所有聚合函数运算


建议count(/*)


null不参加任何聚合函数的计算

(5)分组查询

1.分组查询语法
SELECT 字段列表 FROM 表名 [WHERE分组前条件限定] GROUP BY 分组字段名 [HAVING分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where 和 having 区别:

  • 执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
  • 可判断的条件不一样:where不能对聚合函数进行判断,having可以。
    执行顺序:where > 聚合函数 > having







(6)分页查询

1.分页查询语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;

  • 起始索引:从0开始
    计算公式:起始索引=(当前页码-1)/*每页显示的条数
    tips:

  • 分页查询limit是MySQL数据库的方言

  • Oracle分页查询使用rownumber

  • SQL Server分页查询使用top

    《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

面试真题/经验

以上资料如何领取?

sdnimg.cn/direct/5458f21c6efa4e739621ffb5d4309b20.jpeg#pic_center)

面试真题/经验

以上资料如何领取?

http://www.jsqmd.com/news/682345/

相关文章:

  • Java RPG Maker MV Decrypter:三步轻松解密RPG游戏资源文件的实用指南
  • 2026 年 NAB 展:影石 Insta360 新品亮相,多系列产品升级创作体验
  • Pixel Aurora Engine参数调优指南:CFG幻想程度对像素块清晰度影响分析
  • 解密抖音直播数据采集:从实时弹幕到商业洞察的技术实现
  • 在Ubuntu 16.04上搞定SPDK 21.01:手把手解决Python 3.7.5依赖和pip3代理那些坑
  • 现代电商系统架构实战:从单体到微服务的完整解决方案深度解析
  • 如何配置MusicFree歌词源:5个技巧打造完美歌词体验 [特殊字符]
  • nli-MiniLM2-L6-H768保姆级教学:Gradio界面各字段含义与典型测试用例解析
  • 给硬件工程师的PCIe实战避坑指南:从LTSSM状态机到链路均衡,这些调试细节你踩过几个?
  • 服务器是什么?(四种服务器类型)
  • 别再折腾虚拟机了!用WSL2+Ubuntu 22.04搭建GitLab个人开发环境(附常见启动失败解决)
  • 突破性明日方舟素材库:创作者的高效资源管理引擎
  • 如何3分钟搞定国家中小学智慧教育平台电子课本下载:智能工具完全指南
  • Translumo:5分钟掌握实时屏幕翻译的终极免费工具,彻底告别语言障碍!
  • 魔兽世界GSE宏编辑器:5分钟掌握高级技能自动化终极指南
  • Docker AI环境一键配置:从零到生产级的7个关键参数调优实战
  • 3个进阶技巧深度优化JKSM存档管理效率
  • AI产品经理想转行做大模型?这5个方面你必须具备!速进!
  • STM32F103C8T6与NRF24L01通信调试避坑大全:从CubeMX配置到SPI时序问题排查
  • GitHub功能大揭秘:涵盖AI创作、工作流、安全等多领域!
  • 从嵌入式配置到PCB电平转换:一文拆解UART协议在不同工程师眼中的‘模样’
  • 从零开始掌握Snap.Hutao:原神桌面工具箱的完整使用指南
  • HTML基础教程(非常详细)从零基础入门到精通,看完这一篇就够了。
  • 华润万家卡回收的市场折扣,今年的转让流程解析 - 京回收小程序
  • 别再乱用QueryWrapper了!MyBatis-Plus四种Lambda写法保姆级对比(含性能与可读性分析)
  • 【深度解析】Qwen 3.6 Max Preview 发布:从“刷榜模型”到实战型 Coding Agent 的关键跃迁
  • 镀锌角钢厂家多少钱,各服务区域性价比高的厂家盘点 - 工业设备
  • 从音乐收藏到数字宝库:fre:ac音频转换器如何帮你轻松管理所有音乐格式
  • Adobe-GenP 3.0:实用高效的Adobe软件通用补丁方案深度解析
  • 告别Arduino!用Lua+NodeMCU固件快速上手ESP8266物联网开发(附巴法云MQTT/TCP连接代码)