当前位置: 首页 > 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…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...