数据库的介绍和分类
目录
一、数据库的介绍和分类
二、命令行客户端
三、数据操作
四、查询的基本操作
五、条件查询
六、分组和聚合
资料获取方法
一、数据库的介绍和分类
数据库:长期存储在计算机内、有组织的数据集合
数据库的分类:
- 关系型数据库
以表格的形式展示
oracle: 大型项目使用, 比如银行、电信等
mysql:web项目使用最广泛
microsoft SQL Server:微软项目中使用
sqlite:轻量级数据库,主要用在移动平台
- 非关系型数据库
以键值对的方式展示,比如 "name":"mike","age":18
redis/ mongodb/hbase
SQL 是一个结构化的查询语言,通过SQL能够对数据库进行相关操作
常见的有 select insert update delete
数据库的连接:
- 命令连接
前置条件:
1)确定mysql数据库的ip地址 通过ifconfig
2)确认mysql服务是否开启: netstat -anptu | grep 3306
命令: mysql -h数据库ip -P端口号 -u数据库登录用户名 -p数据库登录密码
-h 不加表示为 本机, -P不加表示默认3306端口
2. 工具连接
通过navicat 来使用
二、命令行客户端
常见的数据库操作命令:
- 查看所有数据库: show databases;
- 使用数据库: use 数据库名;
- 查看当前使用数据库: select database();
- 创建数据库: create database 数据库名 charset =utf8;
- 删除数据库:drop database 数据库名;
命令行操作数据库表:
- 前置条件: 通过use 打开对应的数据库
- 查看当前数据库所有的表: show tables;
- 查看表结构: desc 表名;
- 查看表的创建语句:show create table 表名;
创建数据库语法格式:
create table 表名(
字段名1 类型 约束,
字段名2 类型 约束
)
create table students(id int unsigned primary key auto_increment, -- 无符号整型,主键,自增name varchar(20), -- 字段类型为字符串,长度为20age int unsigned, -- 无符号整型height decimal(5,2) -- 字段类型为小数,小数位数为2
);
删除数据库表:
drop table students; 删除数据库表,如果不存在会报错
drop table if exists students; 如果students存在删除数据库表,不存在也不报错
三、数据操作
简单查询
select * from 表名;
例子:select * from students;
2. 添加一行数据
insert into 表名 values(...)
例子:insert into students values (0,'亚舍',22,177.56);
--主键自增长,可以用0或null代替
insert into 表名(字段1,字段2,...) values (值1,值2,...)
例子:insert into students(name) values('老夫子');
3. 添加多行数据
方式一:写多条insert数据,多条语句之间用英文分号分隔
insert into students(id,name) values(0,'张三');
insert into students(id,name) values(0,'李四');
insert into students values(0,'李四',20,180);
方式二:通过一条 insert 语句插入所条数据,数据间用逗号分隔
-- insert into 表名 values (...),(...)...
insert into students values (0,'亚瑟',23,167.56),(0,'亚瑟3',23,158.89);
-- insert into 表名(字段名1,字段名2...) values (字段值1,字段值2,...),(字段值1,字段值2,...)...
insert into students(id,name) values (0,'小黑'),(0,'小蓝'),(null,‘小粉’);
4. 修改数据
--update 表名 set 字段名1=值1,字段名2=值2 ... where 条件
例子: 修改id为5 的数据, 将名称设为 李想,年龄设为23
update students set name ='李想',age =23 where id = 5;
5. 删除数据
-- delete from 表名 where 条件 (物理删除对应的数据)
delete from students where id=6;
物理删除是指在数据库中彻底删除, 逻辑删除是指通过设定一个字段来标识当前记录是否已经删除
比如 is_delete ,1 代表删除, 0代表未删除
三种删除数据的比较:
1) delete 删除所有数据时,自增长字段不会从1开始
2)truncate table students; 清除表里所有数据,但是表结构会保留, 自增长字段的值会从1开始
3) drop table students; 删除数据表,包括数据和表结构
四、查询的基本操作
1. 查询部分字段的值
-- select 字段名1,字段名2,... from 表名 (查询的为一部分字段的信息)
-- 查询学生表中的姓名、性别、年龄的数据
select name,sex,age from students;
2. 取别名
1)给表取别名
-- select 别名.字段名1,别名.字段名2 ... from 表名 as 别名
select s.name,s.sex,s.age from students as s;
2)给字段取别名
-- select 字段名1 as 别名1, 字段名2 as 别名2 ... from 表名;
select name as 姓名, sex as 性别, age as 年龄 from students;
3. 去重
--select distinct 字段名1,字段名2... from 表名;
select distinct sex from students;
五、条件查询
语法格式:
select * from students where id = 5;
1. 比较运算符
(>) (=) (<) (>=) (<=) (<>或!=)
2. 逻辑运算符
and or not
3. 模糊查询
like 关键字
% 匹配任意个字符, _ 匹配单个字符
select * from students where name like '%小_'
4. 范围查询
1) 查询非连续范围内的数据(in)
select * from students where hometown in ('北京','上海','广东')
2)查询连续范围内的数据(用在数值型字段中, between ... and ...)
查询年龄在18到20之间的学生
select * from students where age between 18 and 20;
5. 条件查询:为空判断
-- 查询出学生身份证号为空的信息
select * from students where card is null;
-- 查询出学生身份证号为空的信息
select * from students where card is not null;
6. 排序
字段的默认排序是从小到大asc
select * from 表名 order by 字段1 asc|desc,字段2 asc|des...
-- 查询所有学生信息, 按班级从小到大排序, 班级相同时,再按学号从小到大排序
select * from students order by class,studentNo;
六、分组和聚合
使用聚合函数方便统计数据
1. count(*) 查询总记录数
select count(*) from students
-- 统计name 下有几个记录,个数
select count(name) from students
2. max(字段名)
-- 查询女生的最大年龄
select max(age) from students where sex = '女';
3. min(字段名)
-- 查询1班的最小年龄
select min(age) from students where class = '1班';
4. sum(字段名) 对应字段值的总和
-- 查询北京学生的年龄总和
select sum(age) from students where hometown='北京';
5. avg(字段名) 查询对应字段的值平均数
-- 查询女生的平均年龄
select avg(age) from students where sex = '女';
分组查询
分组时对每一组的数据进行统计(使用聚合函数)
select 字段名1,字段名2,聚合函数 from 表名 group by 字段名1,字段名2
-- 查询各种性别的人数
select sex,count(*) from students group by sex;
资料获取方法
【留言777】
各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!
三连之后我会在评论区挨个私信发给你们~
相关文章:

数据库的介绍和分类
目录 一、数据库的介绍和分类 二、命令行客户端 三、数据操作 四、查询的基本操作 五、条件查询 六、分组和聚合 资料获取方法 一、数据库的介绍和分类 数据库:长期存储在计算机内、有组织的数据集合 数据库的分类: 关系型数据库 以表格的形式…...
职责链模式——请求的链式处理
1、简介 1.1、概述 很多情况下,在一个软件系统中可以处理某个请求的对象不止一个。例如SCM系统中的采购单审批,主任、副董事长、董事长和董事会都可以处理采购单,他们可以构成一条处理采购单的链式结构。采购单沿着这条链进行传递ÿ…...

docker中涉及的挂载点总结
文章目录 1.场景描述2. 容器信息在主机上位置3. 通过docker run 命令4、通过Dockerfile创建挂载点5、容器共享卷(挂载点)6、最佳实践:数据容器 1.场景描述 在介绍VOLUME指令之前,我们来看下如下场景需求: 1ÿ…...

elasticsearch 官方优化建议
.一般建议 a.不要返回过大的结果集。这个建议对一般数据库都是适用的,如果要获取大量结果,可以使用search_after api,或者scroll (新版本中已经不推荐)。 b.避免大的文档。 2. 如何提高索引速度 a.使用批量请求。为了…...
Kubernetes(K8s)从入门到精通系列之五:K8s的基本概念和术语之应用类
Kubernetes K8s从入门到精通系列之五:K8s的基本概念和术语之应用类 一、Service与Pod二、Label与标签选择器三、Pod与Deployment四、Service的ClusterIP地址五、Service的外网访问问题六、有状态的应用集群七、批处理应用八、应用配置问题九、应用的运维一、Service与Pod Ser…...

DevOps(四)
CD(二) 1. CDStep 1 - 上传代码Step 2 - 下载代码Step 3 - 检查代码Step 4 - 编译代码Step 5 - 上传仓库Step 6 - 下载软件Step 7 - 制作镜像Step 8 - 上传镜像Step 9 - 部署服务2. 整体预览2.1 预览1. 修改代码2. 查看sonarqube检查结果3. 查看nexus仓库4. 查看harbor仓库5.…...

Element-plus侧边栏踩坑
问题描述 el-menu直接嵌套el-menu-item菜单,折叠时不会出现文字显示和小箭头无法隐藏的问题,但是实际开发需求中难免需要把el-menu-item封装为组件 解决 vue3项目中嵌套两层template <template><template v-for"item in list" :k…...

支持多种通信方式和协议方便接入第三方服务器或云平台
2路RS485串口是一种常用的通信接口,可以支持Modbus Slave协议,并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议,可用于扩展多达48个Modbus Slave设备,如Modbus RTU远程数据采集模块、电表、水表、柴油发电机…...

使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)
写在前面 工作中遇到,简单整理人脸识别中,对于模糊程度较高的图像数据,识别率低,错误率高。虽然使用 AdaFace 模型,对低质量人脸表现尤为突出。但是还是需要对 模糊程度高的图像进行丢弃处理当前通过阈值分类ÿ…...

神经网络简单介绍
人工神经网络(artififial neural network) 简称神经网络,它是一种模仿生物神经网络结构和功能的非线性数学模型。 神经网络通过输入层接受原始特征信息,再通过隐藏层进行特征信息的加工和提取,最后通过输出层输出结果。 根据需要神经网络可以…...

16位S912ZVML32F3MKH、S912ZVML31F1WKF、S912ZVML31F1MKH混合信号MCU,适用于汽车和工业电机控制应用。
S12 MagniV微控制器是易于使用且高度集成的混合信号MCU,非常适合用于汽车和工业应用。S12 MagniV MCU提供单芯片解决方案,是基于成熟的S12技术的完整系统级封装 (SiP) 解决方案,在整个产品组合内软件和工具都兼容。 S12 MagniV系统级封装 (S…...

力扣 509. 斐波那契数
题目来源:https://leetcode.cn/problems/fibonacci-number/description/ C题解1:根据题意,直接用递归函数。 class Solution { public:int fib(int n) {if(n 0) return 0;else if(n 1) return 1;else return(fib(n-1) fib(n-2));} }; C题…...
使用 DolphinDB TopN 函数探索高效的Alpha因子
DolphinDB 已经有非常多的窗口计算函数,例如 m 系列的滑动窗口计算,cum 系列累计窗口计算,tm 系列的的时间窗口滑动计算。但是所有这类函数都是对窗口内的所有记录进行指标计算,难免包含很多噪音。 DolphinDB 的金融领域用户反馈…...

超聚变和厦门大学助力兴业银行构建智慧金融隐私计算平台,助力信用卡业务精准营销...
兴业银行与超聚变数字技术有限公司、厦门大学携手,发挥产学研用一体化整体优势联合建设,厦门大学提供先进的算法模型及科研能力,超聚变提供产品解决方案及工程能力,兴业银行提供金融实践能力,三方发挥各自领域优势&…...

docker 的compose安装
1. Docker Compose 环境安装 Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose docker compose 实现单机容器集群编排管理(使用一个模板文件定义多个应用容器的启动参数和依赖关系,并使用docker co…...
JavaScript---事件对象event
获取事件对象: 事件对象:是个对象,这个对象里有事件触发时的相关信息,在事件绑定的回调函数的第一个参数就是事件对象,一般命名为event、ev、e eg: 元素.addEventListener(click,function (e){}) 部分常用属性&…...
Day 15 C++对象模型和this指针
目录 C对象模型 类内的成员变量和成员函数分开存储 总结 this指针 概念 示例 用途 当形参和成员变量同名时 在非静态成员函数中,如果希望返回对象本身 例子 空指针访问成员函数 示例 const修饰成员函数 常函数(const member function&…...
HarmonyOS/OpenHarmony元服务开发-卡片生命周期管理
创建ArkTS卡片,需实现FormExtensionAbility生命周期接口。 1.在EntryFormAbility.ts中,导入相关模块。 import formInfo from ohos.app.form.formInfo; import formBindingData from ohos.app.form.formBindingData; import FormExtensionAbility from …...
软件工程01
软件工程原则: 开闭原则: open closed principle : 对扩展开放,对修改关闭,,,只让扩展,不让修改,用新增的类去替代修改的类 扩展之后,代码不用改变ÿ…...

UML/SysML建模工具更新(2023.7)(1-5)有国产工具
DDD领域驱动设计批评文集 欢迎加入“软件方法建模师”群 《软件方法》各章合集 最近一段时间更新的工具有: 工具最新版本:Visual Paradigm 17.1 更新时间:2023年7月11日 工具简介 很用心的建模工具。支持编写用例规约。支持文本分析和C…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...