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

数据库的介绍和分类

目录

一、数据库的介绍和分类

二、命令行客户端

三、数据操作

四、查询的基本操作

五、条件查询

六、分组和聚合

资料获取方法


一、数据库的介绍和分类

数据库:长期存储在计算机内、有组织的数据集合

数据库的分类:

  • 关系型数据库

以表格的形式展示

oracle: 大型项目使用, 比如银行、电信等

mysql:web项目使用最广泛

microsoft SQL Server:微软项目中使用

sqlite:轻量级数据库,主要用在移动平台

  • 非关系型数据库

以键值对的方式展示,比如 "name":"mike","age":18

redis/ mongodb/hbase

SQL 是一个结构化的查询语言,通过SQL能够对数据库进行相关操作

常见的有 select insert update delete

数据库的连接:

  1. 命令连接

前置条件:

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】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

相关文章:

数据库的介绍和分类

目录 一、数据库的介绍和分类 二、命令行客户端 三、数据操作 四、查询的基本操作 五、条件查询 六、分组和聚合 资料获取方法 一、数据库的介绍和分类 数据库&#xff1a;长期存储在计算机内、有组织的数据集合 数据库的分类&#xff1a; 关系型数据库 以表格的形式…...

职责链模式——请求的链式处理

1、简介 1.1、概述 很多情况下&#xff0c;在一个软件系统中可以处理某个请求的对象不止一个。例如SCM系统中的采购单审批&#xff0c;主任、副董事长、董事长和董事会都可以处理采购单&#xff0c;他们可以构成一条处理采购单的链式结构。采购单沿着这条链进行传递&#xff…...

docker中涉及的挂载点总结

文章目录 1.场景描述2. 容器信息在主机上位置3. 通过docker run 命令4、通过Dockerfile创建挂载点5、容器共享卷&#xff08;挂载点&#xff09;6、最佳实践&#xff1a;数据容器 1.场景描述 在介绍VOLUME指令之前&#xff0c;我们来看下如下场景需求&#xff1a; 1&#xff…...

elasticsearch 官方优化建议

.一般建议 a.不要返回过大的结果集。这个建议对一般数据库都是适用的&#xff0c;如果要获取大量结果&#xff0c;可以使用search_after api&#xff0c;或者scroll &#xff08;新版本中已经不推荐&#xff09;。 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菜单&#xff0c;折叠时不会出现文字显示和小箭头无法隐藏的问题&#xff0c;但是实际开发需求中难免需要把el-menu-item封装为组件 解决 vue3项目中嵌套两层template <template><template v-for"item in list" :k…...

支持多种通信方式和协议方便接入第三方服务器或云平台

2路RS485串口是一种常用的通信接口&#xff0c;可以支持Modbus Slave协议&#xff0c;并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议&#xff0c;可用于扩展多达48个Modbus Slave设备&#xff0c;如Modbus RTU远程数据采集模块、电表、水表、柴油发电机…...

使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)

写在前面 工作中遇到&#xff0c;简单整理人脸识别中&#xff0c;对于模糊程度较高的图像数据&#xff0c;识别率低&#xff0c;错误率高。虽然使用 AdaFace 模型&#xff0c;对低质量人脸表现尤为突出。但是还是需要对 模糊程度高的图像进行丢弃处理当前通过阈值分类&#xff…...

神经网络简单介绍

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

16位S912ZVML32F3MKH、S912ZVML31F1WKF、S912ZVML31F1MKH混合信号MCU,适用于汽车和工业电机控制应用。

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

力扣 509. 斐波那契数

题目来源&#xff1a;https://leetcode.cn/problems/fibonacci-number/description/ C题解1&#xff1a;根据题意&#xff0c;直接用递归函数。 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 已经有非常多的窗口计算函数&#xff0c;例如 m 系列的滑动窗口计算&#xff0c;cum 系列累计窗口计算&#xff0c;tm 系列的的时间窗口滑动计算。但是所有这类函数都是对窗口内的所有记录进行指标计算&#xff0c;难免包含很多噪音。 DolphinDB 的金融领域用户反馈…...

超聚变和厦门大学助力兴业银行构建智慧金融隐私计算平台,助力信用卡业务精准营销...

兴业银行与超聚变数字技术有限公司、厦门大学携手&#xff0c;发挥产学研用一体化整体优势联合建设&#xff0c;厦门大学提供先进的算法模型及科研能力&#xff0c;超聚变提供产品解决方案及工程能力&#xff0c;兴业银行提供金融实践能力&#xff0c;三方发挥各自领域优势&…...

docker 的compose安装

1. Docker Compose 环境安装 Docker Compose 是 Docker 的独立产品&#xff0c;因此需要安装 Docker 之后在单独安装 Docker Compose docker compose 实现单机容器集群编排管理&#xff08;使用一个模板文件定义多个应用容器的启动参数和依赖关系&#xff0c;并使用docker co…...

JavaScript---事件对象event

获取事件对象&#xff1a; 事件对象&#xff1a;是个对象&#xff0c;这个对象里有事件触发时的相关信息&#xff0c;在事件绑定的回调函数的第一个参数就是事件对象&#xff0c;一般命名为event、ev、e eg: 元素.addEventListener(click,function (e){}) 部分常用属性&…...

Day 15 C++对象模型和this指针

目录 C对象模型 类内的成员变量和成员函数分开存储 总结 this指针 概念 示例 用途 当形参和成员变量同名时 在非静态成员函数中&#xff0c;如果希望返回对象本身 例子 空指针访问成员函数 示例 const修饰成员函数 常函数&#xff08;const member function&…...

HarmonyOS/OpenHarmony元服务开发-卡片生命周期管理

创建ArkTS卡片&#xff0c;需实现FormExtensionAbility生命周期接口。 1.在EntryFormAbility.ts中&#xff0c;导入相关模块。 import formInfo from ohos.app.form.formInfo; import formBindingData from ohos.app.form.formBindingData; import FormExtensionAbility from …...

软件工程01

软件工程原则&#xff1a; 开闭原则&#xff1a; open closed principle &#xff1a; 对扩展开放&#xff0c;对修改关闭&#xff0c;&#xff0c;&#xff0c;只让扩展&#xff0c;不让修改&#xff0c;用新增的类去替代修改的类 扩展之后&#xff0c;代码不用改变&#xff…...

UML/SysML建模工具更新(2023.7)(1-5)有国产工具

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

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

LangChain【6】之输出解析器:结构化LLM响应的关键工具

文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器&#xff1f;1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

数据挖掘是什么?数据挖掘技术有哪些?

目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...

VSCode 没有添加Windows右键菜单

关键字&#xff1a;VSCode&#xff1b;Windows右键菜单&#xff1b;注册表。 文章目录 前言一、工程环境二、配置流程1.右键文件打开2.右键文件夹打开3.右键空白处打开文件夹 三、测试总结 前言 安装 VSCode 时没有注意&#xff0c;实际使用的时候发现 VSCode 在 Windows 菜单栏…...