一、基础认识数据库是结构化数据的集合它以系统化的方式存储、组织和管理数据便于计算机程序快速访问、操作和管理。简单来说数据库就是存放数据的“仓库”但这个仓库有着精心设计的结构和高效的存取机制。数据库进行数据管理的优势数据持久性数据共享与并发控制减少数据冗余数据一致性高效的数据检索数据完整性约束数据备份与恢复二、数据库分类关系型数据库MySQL、PostgreSQL、Oracle、SQL Server适用于需要事物支持、数据一致性要求高、数据结构固定的应用非关系型数据库Reis、MongoDB、HBase……适用于高并发读写、海量数据存储、数据结构灵活多变或需要水平扩展而对强事务和复杂关联查询要求不高的应用。三、SQL认识3.1、基础认识SQL 是 Structured Query Language 的缩写直译“结构化查询语言”是用来 定义、操作、查询、控制关系型数据库的标准语言3.2、主要作用数据定义DDLCREATE / ALTER / DROP 表、索引、视图、数据库本身数据操作DMLINSERT、UPDATE、DELETE 真正增删改数据数据查询DQLSELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY …最常用数据控制DCLGRANT / REVOKE 权限START TRANSACTION / COMMIT / ROLLBACK 事务四、安装与配置4.1、安装与配置# ubuntu sudo apt install mysql-server libmysqlclient-devsudo cat /etc/mysql/debian.cnf mysql -u debian-sys-maint -p4.2、修改密码ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 11111111;4.3、刷新权限配置FLUSH PRIVILEGES;quit:退出4.4、重新登录用root登录mysql -u root -p4.5、查看字符集//字符集的一个配置SHOW VARIABLES LIKE character_set%;4.6、修改字符集然后重启mysql服务---sudo systemctl restart mysqlsudo vi /etc/mysql/my.cnf #修改里面的内容[client] default-character-set utf8mb4 [mysql] default-character-set utf8mb4 [mysqld] character-set-server utf8mb4 collation-server utf8mb4_unicode_ci init_connect SET NAMES utf8mb4五、库与表在MySQL中库是一个容器用于存储一组相关的数据对象比如表、试图、存储过程、函数等SQL语句的注意事项sql语句中不分大小写每个sql语句总是默认以“”作为结尾5.1、库的操作查看库show Databases;---查看都有那些库select database();--查看当前选中的库选中库use 库名称创建库create database 数据库名称---数据库名称不要使用关键字和数字开头对创建库加工不会对库已经存在而报错---create database if not exists 数据库名称create database if not exists 数据库名称反引号里面可以写关键字反引号去除它原有的含义删除库drop database 数据库名称drop database 关键字如果不小心删除使用手段开始可以恢复过来的5.2、表的操作表的操作定义表的数据结构有哪些字段字段是什么类型有哪些约束mysql中的数据类型整型INT--4字节通用整型 bit[n]--比特位 TINYINT--1字节 BIGINT--8字节浮点型FLOAT--4字节 DOUBLE--8字节DECMAL--可变长通用字符串CHAR[M](255字符)VARCHAR[]--可变长度65535字节最常用 TEXT中等文本 BLOB64kb,二进制 MEDIUMTEXT---大文本长文章时间类型DATETIME8字节最常用TIMESTAMP4字节1970……2038年JSON类型JSON变长用户配置、商品属性布尔类型BOOLEAN0或1枚举和集合类型ENUM--1字节性别(男,女)SET--1……8字节爱好(运动,音乐,阅读)查看表show tables;---查看库中有那些表desc 表名称查看表结构5.3、创建表create table if not exists tbl_student例如注意--后边是注释但是要注意内容和--之间有一个空格表名称和(之间必须有个空格最后一个字段末尾不能有,5.4、修改表的结构alter table 表名称 修改事项修改事项如ADD COLUMN--增加列ADD COLUMN …FIRST/AFTER--指定位置加列DROP COLUMN--删除列……注意事项修改表结构要尽量向前兼容查看表的创建语句show create table tbname;查看表的创建语句删除表drop table 表名称5.5、表中数据的增删改查5.5.1、增通用查询select*from tbname;--查询表中的所有数据全列插入insert [into] tbname values(val1,val2,……)val1是第一列数据……多行插入注意多行插入时间隔是而不是列值插入INSERT INTO 表名SET 列1 值1,列2 值2,...;INSERT INTO tbl_studentSET sn 4,name 小红,ch85,en82,created2026-11-01 00:00:04指定列插入列:从查询结果插入常用于数据备份、表间数据迁移或基于现有数据生成新数据INSERT INTO 目标表名 (列1, 列2, ...) SELECT 列A, 列B, ... FROM 源表名 WHERE 条件;替换插入如果新行与表中的主键或唯一索引冲突则先删除旧行再插入新行如果不冲突则直接插入新行。-- 语法1 REPLACE INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); -- 语法2 REPLACE INTO 表名 SET 列1 值1, 列2 值2, ...;冲突时更新这是最常用、最灵活的“有则更新无则插入”的方法。当插入会导致主键或唯一索引冲突时转而执行更新操作。INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...) ON DUPLICATE KEY UPDATE 列1 新值1, 列2 VALUES(列2); -- 使用 VALUES(列名) 来引用原INSERT中想插入的值更新数据update 表名称 set fields1val,fileds2val;更新操作若不指定过滤条件会导致表中的数据的指定字段都会被修改where 条件-----指定条件5.5.2、删delete from 表名称 where 过滤条件5.5.3、改UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition;UPDATE tbl_studentSET name小明, ch 90WHERE sn4;5.5.4、查查询可加条件限制SELECT ... FROM table_name WHERE condition;注意大小写不影响UPDATE tbl_studentSET name小明, ch 90WHERE sn4;或者//select *from tbl_studentwhere sn1;整表查询SELECT * FROM employee;指定列查询SELECT name, department, salary FROM employee;去重查询SELECT DISTINCT department FROM employee;起别名SELECT name AS 姓名, salary AS 月薪 FROM employee;排序查询SELECT name, salary FROM employee ORDER BY salary [DESC/ASC]; //DESC:降序 //ASC升序分页查询SELECT name, salary FROM employee ORDER BY id LIMIT n offset pos; SELECT name, salary FROM employee ORDER BY id LIMIT pos, offset_n;//n表示序号sn pos表示往后偏移多少位显示结果为snpos下一个代码一样的结果5.6、聚合函数函数作用COUNT(*/column)统计行数SUM(column)求和仅数值型AVG(column)求平均MAX(column)最大值MIN(column)最小值JSON_ARRAYAGG(column)把列值聚成 JSON 数组JSON_OBJECTAGG(field-key, val)聚成 JSON 对象GROUP_CONCAT(column SEPARATOR )把多行拼成一行字符串SELECT COUNT(*) FROM tbl_student;//总数 SELECT SUM(ch) FROM tbl_student;//总和 SELECT AVG(en) FROM tbl_student;//平均值 SELECT MAX(ch) FROM tbl_student;//最大值 SELECT MIN(ch) FROM tbl_student;//最小值 SELECT JSON_ARRAYAGG(name) FROM tbl_student;//名字数组 SELECT JSON_OBJECTAGG(sn, name) FROM tbl_student;//数组 SELECT GROUP_CONCAT(name ORDER BY ch DESC SEPARATOR ) FROM tbl_student;//字符串5.7、分组查询分组查询的查询字段中只能包含分组依据字段和聚合函数。SELECT name AS 姓名, COUNT(*) AS 人数, ROUND(AVG(ch), 2) AS 平均中文 FROM tbl_student GROUP BY name HAVING COUNT(*) 2;
企业数字化 ERP 产品动态
相关推荐
强化学习做人形运动控制:从仿真到真机的 gap 清单(完整版) 本文是《机器人炼金术 进阶配方》第 09 期完整版。相比免费版,本文额外包含:信源层(四篇里程碑论文的要点中英对照与精读批注)、延迟注入训练的可复现代码、域随机化参数表模板、sim2real 验收流程。 一、一个所有团队都经历过的下午
仿真演示视频里,人形机器人后空翻落… · 2026/11/6 8:54:14
已有ERP,还需要单独上费控系统吗?开灵科技、金蝶星瀚与浪潮海岳对比 ERP里通常已经能做费用单、审批和记账,为什么很多企业仍在评估费控系统?原因多半发生在报销单进入ERP之前:员工出差预订在哪里,预算何时拦截,发票怎么进入票夹,票据是否重复,付款和凭证是否自动… · 2026/11/6 8:51:09
酒泉电工证在哪里办含金量高吗?外省证能不能转过来 酒泉电工证在哪里办含金量高吗?外省证能不能转过来 之前考的证在外省能不能转过来?这个问题我天天在工地门口听工人问,也天天在培训教室里给学员解答。现在很多人在外地打工,考了证又想回老家干,结果发现 酒泉电工证在哪里办… · 2026/11/6 17:45:59
电工证多少学时才能考?含金量到底值不值得考? 电工证多少学时才能考?含金量到底值不值得考? 刚入职没多久就被领导说没有电工证不能上岗?你不是在做梦,是真的!现在工地、工厂、维修单位,特种作业证已经成为门槛,特别是电工证, 含金量 摆在那儿,谁也没法忽视。别再等了,今天我来给你讲清楚,… · 2026/11/6 17:45:59
晴隆县电工证培训机构实操考试心里没底怕挂科?考前押题助你一次通关 晴隆县电工证培训机构实操考试心里没底怕挂科?考前押题助你一次通关 实操考试心里没底怕挂科,特别是对于第一次参加特种作业考试的学员来说,这种焦虑感几乎人人都有。你不是一个人在战斗,很多在晴隆县电工证培训机构备考的学员,也都在担心自己会不会因为… · 2026/11/6 17:45:59
工地太忙根本没时间复习考试?电工证小本本千万别踩坑 工地太忙根本没时间复习考试?电工证小本本千万别踩坑 工地太忙根本没时间复习考试,这几乎是每个在一线施工的电工都经历过的事。尤其是现在项目周期紧、工期压得死,很多电工连吃饭时间都不够,更别说抽空准备考试了。但别小看这个【电工证小本本】,它是你… · 2026/11/6 17:45:59
考高压电工证理论题库到期换证流程 高压电工证值不值得考?别让培训费打水漂 怕考不过白交培训费?高压电工证可不是随便考个证就完事的,它关系到你的职业生涯,也关系到你能否拿到真正的高薪。特别是对于郑州这种工商业发达的城市,高压电工证不仅 值不值得考… · 2026/11/6 17:45:59
高压电工证可以进行低压施工吗 内部消息告诉你真相 高压电工证可以进行低压施工吗 内部消息告诉你真相 实操考试心里没底怕挂科,特别是高压电工证这玩意儿,很多人觉得它和低压电工证是“两码事”,但真到了现场,不少人都在问: 高压电工证可以进行低压施工吗… · 2026/11/6 17:44:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
ASIC主模式RTL设计:状态机与三态驱动的流片级实现 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23