数据库的基本知识点

数据仓库基本知识点 数据仓库(Data Warehouse,简称DW或DWH)是一个为企业所有级别的决策制定过程提供所有类型数据支持的战略集合。:为企业决策分析提供数据支持,包括业务流程改进、时间、成本、质量的监视与控制等。:如报表工具、查询工具、数据挖掘工具等,用于数据的展示和分析。:数据仓库的数据来源于多个操作型数据库、文件或其他数据源。:提供联机分析处理功能,支持用户进行多角度、多层次的分析。:数据库一般存储业务数据,数据仓库存储的一般是历史数据。:数据库是面向事务的设计,而数据仓库是面向主题设计的。 阅读详情

1、数据库常用命令

  • 查看有哪些数据库

    show databases; //这个不是SQL语句,属于MySQL的命令
    
  • 创建属于我们自己的数据库

    create database bjpowernode; //这个不是SQL语句,属于MySQL的命令
    
  • 使用bjpowernode数据

    use bjpowernode; //这个不是SQL语句,属于MySQL的命令
    
  • 查看当前使用的数据库中有哪些表?

    show tables; //这个不是SQL语句,属于MySQL的命令
    
  • 初始化数据

    source 目录	//sql脚本的数据量太大是不能直接打开的,使用source命令导入
    
  • 删除数据库

    drop database 库名;
    

2、DB DBMS SQL之间的关系

  • DB:数据库
  • DBMS:数据库管理系统
  • SQL:结构化查询语句

DBMS -(执行)-> SQL -(操作)-> DB

3、SQL语句的分类

  • DQL(数据查询语言): 查询语句,凡是select语句都是DQL

  • DML(数据操作语言):insert delete update,对表当中的数据进行增删改

  • DDL(数据定义语言):create drop alter,对表结构的增删改

  • TCL(事务控制语言):commit提交事务,rollback回滚事务(TCL中的T是

    Transaction)

  • DCL(数据控制语言): grant授权、revoke撤销权限等

4、函数

4.1、分组函数(多行处理函数)

​ 分组函数对一组数据进行操作

​ 分组函数自动忽视null,分组函数需要分完组使用,所以可以用在having后面

max()
min()
avg()
sum()
count()
4.2、单行处理函数

单行处理函数:输入一行,输出一行,单行处理需要判断值是否为null

所有的数学表达式,但凡与null计算的结果都为null

  • ifnull() 空处理函数
ifnull(sal,0)//如果sal的值未null,那么会替换成0
4.3、时间函数
timestampdiff(year,hiredate,now())

5、查询

  • 内连接:两张表都是平等的没有主副之分

  • 外连接:一张主表,一张副表,主要查询主表数据,顺带查询副表,当副表的数据没有和主表数据匹配上,副表自动模拟出null与之匹配

5.1、内连接
  • 找出每个员工的部门名称以及工资等级
select
	e.ename,d.dname,s.grade
from
	emp e
join
	dept d
on
	e.deptno = d.deptno
join
	salgrade s
on
	e.sal between s.losal and s.hisal
5.2、外连接
  • 找出没有员工的部门
select
	a.*
from
	dept a
left join 
	emp b
on 
	a.deptno = b.deptno
where
	b.job is null;
  • 找出每个员工的部门名称、工资等级以及上级领导
select
	e.ename as '员工',d.dname,s.grade,m.ename as '领导'
from
	emp e
join
	dept d
on
	e.deptno = d.deptno
join
	salgrade s
on
	e.sal between s.losal and s.hisal
left join
	emp m
on
	e.mgr = m.empno;
5.3、子查询
  • 找出高于平均工资的员工信息
select
	*
from 
	emp
where
	sal > (select avg(sal) from emp);
  • 找出每个部门平均薪水的薪资等级
select
	t.*,s.grade
from
(
	select
    	deptno,avg(sal) as avgsal
    from
    	emp
	group by
    	deptno
) t
join
	salgrade s
on 
	t.avgsal between s.losal and s.hisal;
  • 找出每个部门薪水等级的平均值
select
	e.deptno,avg(s.grade)
from
	emp e
join
    salgrade s
on
    e.sal between s.losal and s.hisal
group by
	e.deptno;
  • 找出每个员工所在的部门名称,要求显示员工名和部门名
select	e.ename,	(select d.dname from dept d where e.deptno = d.deptno) as dnamefrom	emp e;
5.4、拼接查询union

两张表拼接,两张表的查询结果列数必须一致

select ename from empunionselect dname from dept;
5.5、limit

mysql特有的,limit取出结果集中的部分数据,分页查询全靠limit

//starIndex表示起始位置,默认为0(第一条数据),length表示取几个
limit starIndex,length

select ename,sal from emp order by sal desc limit 0,5;
5.6、查询去重

distinct

select distinct job from emp;

6、创建表

表名在数据库中一般建议以:t_ 或者 tbl_开始

create table 表名(
	字段名1 数据类型,
    字段名2 数据类型,
    ...
)
6.1、创建学生表

学生信息:学号,姓名,性别,班级,生日

create table t_student(
	no bigint,	
    name varchar(255),
    sex char(1) default 1,
    classno varchar(255),
    birth char(10)
);
6.2、mysql中字段的数据类型
int		整数型
bigint	长整形
float	浮点型
char	定长字符串
varchar	可变成字符串
date	日期类型
BLOB	二进制大对象(存储图片、视频等流媒体信息)
CLOB	字符大对象(存储较大的文本,可以存储4G的字符串)
...

7、插入数据

//字段数量与值的数量要一致,且数据类型要相对应
insert into 表名(字段名1,字段名2,...) values(值1,值2,...)

//值的顺序必须和表中字段一致,且数量相同
insert into t_student values(值1...)

//一次插入多行
insert into 表名(字段名1,字段名2,...) 
values(值1,值2,...),(值1,值2,...),(值1,值2,...)
//如:
insert into t_student(no,name,sex,classno,birth) 
values(15666,'wangwu','1','gaoSan1Ban','1999-01-01'),(15556,'wangwu','0','gaoSan1Ban','1999-02-02'),(1562,'wangwu','1','gaoSan1Ban','1999-03-03');
7.1插入学生信息

学生信息:学号,姓名,性别,班级,生日

insert into t_student(no,name,sex,classno,birth) values(15666,'wangwu','0','gaoSan1Ban','1999-01-01');

8、删除表

//当这个表存在,删除该表
drop table if exists t_student;

9、修改数据

update t_student set name = 'zhangsan',classno = 'dayi2ban' where no = 1562;

10、删除数据

delete from t_student where no = 15666;
10.1、删除大表(数据量很大)

表被截断,不可回滚,永久丢失,慎重使用

truncate table 表名

11、约束(constraint)

  • 非空约束(not null)

    约束的字段不能为NULL

  • 唯一约束(unique)

    约束的字段不能重复

    1. 列级:

    ​ name varchar(255) unique,

    1. 表级:

      可以多列字段具有唯一性

      在这些字段后面添加:

      unique(字段名1,字段名2…),

  • 主键约束(primary key)
    1. 自然主键:主键值最好与业务没有任何光系的自然数
    2. 业务主键:主键值和系统的业务挂钩,最好不要拿业务相关的字段作为主键。因为以后的业务一旦发生了变化,主键值可能也需要随着发生变化,但有的时候无法改变,因为变化可能导致主键重复
    //id字段自动增加,从1开始
    create table t_user(
    	id int primary key auto_increment
    );
    
  • 外键约束(foreign key)
    create table t_class(
    	cno int,
        cname varchar(255),
        primary key(cno)
    );
    
    create table t_student(
    	sno int,
        sname varchar(255),
        classno in,
        primary key(sno),
        foreign key(classno) references t_class(cno)
    );
    

12、事务

提交事务commit,回滚事务rollback

四大特性:ACID
  • A:原子性:事务是最小的工作单元,不可再分

  • C:一致性:事务必须保证多条DML语句同时成功或同时失败

  • I:隔离性:事务A与事务B之间具有隔离

  • D:持久性:最终数据必须持久化到硬盘文件中,事务才算成功结束

隔离性:
  1. 第一级别:读未提交(read uncommitted)

    事务A可以读取事务B未提交的数据

  2. 第二级别:读已提交(read committed)

    事务读取的数据是实时更新的数据

  3. 第三级别:可重复读(repeatable read)

    事务所读取的数据一直都是事务开启时的数据,即使数据被修改了,事务所读取的数据不会发生改变。事务开启读取的数据是备份数据,不能实时读取数据

  4. 第四级别:序列化读/串行读

    效率低,事务需要排队

13、索引

主键和具有unique约束的字段自动会添加索引

根据主键查询效率较高,尽量根据主键检索

创建索引:

create index 索引名 on 表名(字段名);

删除索引:

drop index 索引名 on 表名(字段名);

需要加索引的条件:

  • 数据量庞大
  • 该字段很少进行DML操作(字段进行修改操作,索引也需要维护)
  • 该字段经常出现在where语句中(经常根据哪个字段查询)

索引底层采用的数据结构是:B + Tree

​ 通过B Tree 缩小扫描范围,底层索引进行了排序、分区,索引会携带数据在表中的“物理地址,最终通过索引检索到数据之后,获取数据的物理地址,通过物理地址定位到表中的数据

索引什么时候失效:

​ 模糊查询的时候,第一通配符使用的是%,这个时候索引会失效

14、视图

作用:

视图可以隐藏表的实现细节,保密级别较高的系统,数据库只对外提供相关的视图,只对视图进行CRUD

15、三范式

  • 第一范式:任何一张表都应该有主键,并且每个字段原子性不可再分

  • 第二范式:建立在第一范式基础之上,所有非主键的字段完全依赖主键,不产生部分依赖

    多对多采用三张表,关系表存储另外两张表的主键,即关系表两个外键

  • 第三范式:建立在第二范式基础之上,所有非主键的字段直接依赖主键,不能产生传递依赖

    多对一采用两张表,多的加外键

    一对一设计有两种方案:

    1. 主键共享:既是主键也是外键
    2. 外键唯一:一张表加外键,并且外键需要添加唯一约束

    在实际开发中,以满足客户的需求为主,有时候会拿冗余换执行速度

16、sql语句执行顺序

select		5
    ...
from		1
    ...		
where		2
    ...	
group by	3
    ...
having		4
    ...
order by	6
    ...
limit		7
    ...;
SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

相关推荐

SpringBoot+Vue+MySQL 民宿在线预定平台 完整可运行版(源码+文档)

本文介绍一套基于SpringBoot+Vue+MySQL的民宿在线预订平台,涵盖用户与管理员双角色全流程功能,实现房源展示、订单管理、支付模拟、数据看板等闭环业务。系统架构清晰,前后端分离,附带完整源码、数据库脚本、万字论文、答辩PPT及部署文档,适合毕设、课程设计或小型民宿二次开发,开箱即用,快速落地。

招风的黑耳优快云 193

数据库基本知识点

数据库基本知识点

jzybkse的博客 440

基于PLC的全自动洗衣机控制系统+控制程序

本设计使用PLC控制系统替换了传统的继电器控制系统,实现了全自动洗衣机在硬件方面的提升,丰富了全自动洗衣机在软件方面的功能,提高了全自动洗衣机的洗衣效率,基本可以满足用户的洗衣需求。

zzzz114231的博客 8958

数据库基本知识点总结

这是一张思维脑图,希望能有帮助 基本概念总结 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为( 数据操纵功能 )。 什么是数据的语义?为什么数据与其语义是不可分的。 数据的含义称为数据的语义,所以数据和语义是不可分的 什么是数据库?什么是数据库管理系统? 说明两者的区别和联系。 数据库(DataBase,DB)是长期存储的、有组织的、可共享的相关数据的集合。 数据...

Welkin_qing的博客 1万+

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1969

使用LoRa远程控制路灯(PWM调光以及LoRaWAN单播、组播、广播)

PWM调光 1、使用有pwm波输出的引脚,本例子使用timer0,PA0引脚; 2、由于timer时钟的原因,mcu不能进入休眠; 3、主控使用EFM32,代码实现如下: #define MAX_PULSE (CPU_FREQ/1000-1) #define UNIT_PULSE MAX_PULSE/100 //单位脉宽 void pwminit(void) { ...

freemote的博客 2944

【MySQL】数据库基本知识点

MySQL数据库,SQL通用语法,语句书写方式 SQL语句可以单行或多行书写,以分号 ( ; )结尾 大小写不敏感:SQL语句大小写,但建议关键字使用大写

m0_71872338的博客 1089

centos7安装Ambari 2.7.5 + HDP3.1.5

准备 1.安装包准备: Ambari2.7.5、HDP31.5、libtirpc-devel: centos7操作系统: 链接:https://pan.baidu.com/s/1vzvio5rAMsbYF0-0vBs5dw 提取码:xij9

kxq的博客 5092

MySQL 索引深入理解:B+ 树、二级索引、联合索引与查询优化

理解二级索引后,就可以理解回表了。SELECT *MySQL 的执行过程分为三个步骤。覆盖索引(Covering Index)并不是一种独立的索引类型,而是一种查询效果。SQL 查询需要的所有字段,都能够直接从某个索引中获得,不需要再访问聚簇索引获取其他字段。例如:因为user_id已经包含在二级索引中,所以 MySQL 可以直接返回结果。不需要回表。联合索引(Composite Index)是同时使用多个字段建立的索引。它的排序规则是:首先按照user_id排序。当user_id。

m0_64642997的博客 140

N5105 PVE UEFI核显直通Windows:从黑屏到HDMI输出的实战调优

本文详细介绍了在N5105处理器上实现PVE UEFI核显直通Windows的实战调优方法。针对黑屏和HDMI音频无法识别等常见问题,提供了系统参数调整、驱动模块加载、虚拟机配置等解决方案,帮助用户成功实现核显直通并优化性能。

weixin_42566424的博客 207

LeRobot 入门教程(十三)集成自定义的机器人、相机等硬件

本文详细介绍了如何将自定义机器人集成到LeRobot生态系统的完整流程。主要内容包括:1)硬件准备与通信接口选择;2)继承Robot基类实现标准接口;3)定义观察特征和动作特征;4)处理设备连接/断开逻辑;5)支持校准与配置;6)实现核心传感器读取和动作发送功能;7)可选遥操作器集成;8)遵循4项规范打包自定义设备(命名前缀、类名对应、文件结构、模块暴露);9)提供了完整实现示例。通过该方案,开发者可让自定义机器人兼容LeRobot的数据采集、控制管道和策略训练等全套工具链。

2506_90492529的博客 1902

一篇文章讲清 MySQL 索引:聚簇索引、联合索引、回表与 EXPLAIN

以订单查询为例,拆解 InnoDB 聚簇索引与二级索引的存储和回表路径,解释联合索引的列序、覆盖与 ICP,再用 EXPLAIN 判断扫描、排序和优化器选择,给出可复现的排查方法。

qq_74421990的博客 291

【花雕学编程】嵌入式破局:MimiClaw入局后,“小龙虾”AI智能体生态的竞争与未来

摘要: 2026年初,开源项目OpenClaw的爆发式增长带动AI智能体赛道迅速崛起,国内外厂商竞相布局,形成多元化的“小龙虾”生态。国外开源社区推出的嵌入式智能体MimiClaw填补了边缘设备场景空白,重塑行业竞争格局。本文系统梳理生态构成,分析云厂商(如腾讯、阿里云)、大模型厂商(如智谱、MiniMax)、硬件/OS厂商(华为)及开源独立派(有道龙虾、MimiClaw)的差异化策略,并预判未来趋势:消费级渗透加速、云边协同、IM整合及模型与Agent深度绑定。同时提醒生态存在数据泄露等高危风险,需警惕安

雕爷学编程 885

MySQL 中 DISTINCT 与 GROUP BY 哪个效率更高?

DISTINCT与GROUP BY在纯去重场景下,MySQL 8.0 中执行计划通常一致,效率基本相同。老版本(8.0.13 之前)GROUP BY有隐式排序开销,DISTINCT往往更快。需要聚合或HAVING时,只能用GROUP BY。效率的真正决定因素是索引和执行计划,而不是这两个关键字本身。所以,与其问「哪个更快」,不如问「我的查询有没有走对索引」。

2601_96709915的博客 339

基于粒子群优化的PID控制在药液流量控制系统中的应用

本文提出了一种基于粒子群优化(PSO)的PID控制算法,用于药液流量控制系统。系统采用C37控制器和Codesys 2.3编程环境实现,通过传感器实时监测流量、压力和车速,并控制水泵占空比和电动球阀开度来精确调节药液流量。硬件配置包括FT-2000流量传感器、PT-3000压力传感器和MV-500电动球阀等。控制算法将PSO与PID结合,使用ITAE指标优化PID参数,在Codesys中实现了包含PSO优化循环、PID控制等功能的程序模块。该系统通过分层控制策略和智能优化算法,提高了药液流量控制的精度和响应

AI的内部世界的博客 250

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

4. 关系型数据库-MySQL-Canal 进阶

Canal 是基于 MySQL binlog 的增量数据订阅工具,可实现数据库变更的实时捕获。它通过伪装从库订阅 binlog,无需业务代码侵入,支持缓存同步、搜索索引更新、数据异构、实时入仓及汇总宽表增量更新等场景。使用时需开启 ROW 格式 binlog,配置专用账号,并通过 canal-server 接收事件,下游消费者处理后确认。注意 binlog 保留期、正则过滤写法及全量初始化等关键点,避免数据丢失或误判。

princemilo的博客 151

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

mysql常见问题汇总

按「现象 → 排查 → 解法」整理,按事故频率排序。

qq_38636133的博客 185

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

基于 FastAPI+LangChain+LangGraph+Agent+Vue3+MySQL 的房产数据采集与房价预测分析平台

本文介绍一个完整的「房产数据采集+AI房价预测」全栈项目,涵盖FastAPI异步后端、LangGraph Agent智能问答、爬虫采集、机器学习预测与Vue3前端,实现从数据采集到AI交互的闭环。项目融合多技术栈,具备真实业务场景与生产级设计(如降级策略、流式输出、多模型对比),兼具简历亮点与答辩演示优势,可系统性提升工程能力,并附高频面试题解析,是理想的技术综合实践项目。

深耕开发,专注编程实战。分享源码解析、项目搭建、问题排查笔记,沉淀技术,持续更新。 250

MySQL 事务:转账中途断电,钱为什么没有丢

本文系统讲解 MySQL 事务的原理与实践:以转账场景引入原子性、一致性、隔离性、持久性四大保证,剖析脏读、不可重复读、幻读三类并发异常与四个隔离级别的取舍,解读 undo log、redo log、锁与多版本并发控制的底层实现,并给出事务粒度控制与异常回滚的编码建议。

大模型全栈工程师 · Thanks_ks 312

MYSQL-多表设计

在项目开发中,在进行各个数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构。由于业务之间相互关联,所有各个表结构之间也存在各种联系。

weixin_61074074的博客 173

微服务架构下的MySQL设计实战

微服务架构下的 MySQL 交付,核心不是追求最先进的技术方案,而是建立一套边界清晰、可评审、可监控、可回滚的规范体系。分库分表解决容量与写入扩展,读写分离解决读扩展,索引优化与慢查询治理解决日常性能问题,变更管控与备份容灾守住交付底线。把这些实践嵌入需求评审、开发自测、测试压测、上线灰度、运维巡检的每个环节,并明确各自的适用边界与常见误区,才能真正让数据库成为微服务交付的稳定底座,而不是随时可能引爆的风险点。

流水账 771

mysql初阶--数据库设计

本文系统阐述数据库设计的核心方法论,从范式理论(1NF、2NF、3NF)出发,揭示数据冗余与操作异常的根源,强调3NF为工程实践的最优平衡点。通过E-R图构建实体关系模型,实现从业务需求到表结构的清晰映射。文章厘清类、实体、表三者对应关系,提出“抽象→建模→落地”的设计流程,帮助开发者建立可复用的数据库设计思维框架,避免“拍脑袋”建表的陷阱。

2601_97033068的博客 715

MySQL报Too many open files?句柄耗尽的排查与参数配置

文章讲清 max_connections 与 open_files_limit 两个额度、句柄被谁占走、分区表为什么最容易踩,给出从 error log 到 /proc/pid/limits 的定位顺序与句柄预算算法。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 338

MySQL --库的操作

基于 Unicode 9.0 规则,排序更准确,性能也更好。新库如果没有特殊兼容需求,直接让默认值生效即可,不必手动指定。后面的数字表示版本号,意思是“如果当前 MySQL 版本 ≥ 4.01.00,就执行这句话”。在老版本中比较粗糙,比如它认为某些带重音的字母和普通字母等价。连接数爆满报“Too many connections”时,找出谁占着连接不放。,所以导出文件里不含建库语句。,但 MySQL 不强制大小写,建议养成大写习惯。,更不会转换表里已经存好的数据。),必须用反引号包起来,否则语法报错。

2501_94405739的博客 293

Flink 连接器选型实战:HDFS、Kafka、MySQL 与 Doris 的分层数据架构

连接器选型不是技术炫技,而是对数据特征的准确判断。HDFS承担离线归档与批处理,靠分区和滚动策略控制文件质量。Kafka是实时链路的中枢,靠分区、攒批和事务保证吞吐与一致性。MySQL只做维表和小结果集,靠缓存和限流保护在线库。Doris承接大数据量分析写入,靠分桶、攒批和两阶段提交保证性能与准确。把这四者按数据规模、延迟要求和一致性要求分层组合,就能搭出一套既稳定又可扩展的 Flink 数据架构。

2401_83857914的博客 883
上一篇: JAVA中collection方法的迭代器
下一篇: Spark RDD编程-大数据课设
chen_xionxion
博客等级 码龄7年 9粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值