Mysql数据库基础总结:

news2025/3/10 11:01:04

什么是数据库:

数据库(DataBase):存储和管理数据的一个仓库。

数据库类型分为:关系型数据库和非关系型数据库。

关系型数据库(SQL):存储的数据以行和列为格式,类似于excel表格,一张二维表。例如:MySQL、Oracle等。

非关系型数据库:数据是以对象类型存储。例如:redis、mongdb等。

几个概念介绍:

  • DB:DataBase数据库。
  • DBMS:DataBase Management System数据库管理系统。
  • DBS:DataBase System数据库系统。
  • DBA:DataBase Administrator数据库管理员。

MySQL介绍:

开源免费、属于Oracle公司旗下。体积小、速度快。

常用版本:5.7和8.0两个版本。

MySQL安装

请参考:百度

MySQL可视化工具:

常见的MySQL可视化管理工具有:Navicat、sqlyog、DBeaver等。

五种SQL类型:

  • DDL:Data Definition Language,数据定义语言。例如:create、alter、drop等,主要用于操作表结构。
  • DML:Data Manipulation Language,数据操纵语言。例如:select、insert、delete、update,主要用于操作表中数据。
  • DCL:Data Control Language,数据控制语言。例如:grant、deny、revoke,主要用于控制数据访问权限。
  • DTL:Data Transaction Language,数据事务语言。例如:commit、rollback,主要用于事务控制。
  • DQL:Data Query Language,数据查询语言。例如:select,主要用于查询数据表中的数据。

操作数据库命令:

创建数据库

create database 数据库名称;

指定数据库字符集

create database 数据库名称 default character set utf8;

指定数据库引擎

create database 数据库名称 engine = innodb

删除数据库

drop database 数据库名称;

使用数据库

use 数据库名称;

查看已有数据库

show databases; -- 有s

查看某个数据库的信息

show create database 数据库名称;

数据表操作:

创建数据表

create table 表名称(
    字段名称 类型 [属性] [索引] [注释],
    字段名称 类型 [属性] [索引] [注释],
    字段名称 类型 [属性] [索引] [注释]
);
 
CREATE TABLE  USER (
    id INT PRIMARY KEY auto_increment,
    username VARCHAR (20) NOT NULL,
    password VARCHAR (20) NOT NULL
);

数据表字段类型:

数值类型

  • tinyint:占用1字节。
  • int:占用4字节。这是常用类型。
  • bigint:占用8字节。
  • float:4字节。
  • double:8字节。
  • decimal:高精度浮点类型,字符串类型的浮点类型。

字符串类型

  • char:固定长度的字符串类型。0到255长度。
  • varchar:可变长度的字符串类型。0到65536长度。这是常用类型。
  • tingtext:微型文本。2^8-1长度,博客文章可以使用该类型足以。
  • text:文本串。2^16-1长度。

日期类型

  • date:日期类型,格式:yyyy-MM-dd。
  • time:时间类型,格式:HH:mm:ss。
  • datetime:日期时间类型,格式:yyyy-MM-dd HH:mm:ss。这是常用类型。
  • timestamp:时间戳类型,格式:毫秒数。

myisam和innodb区别

myisaminnodb
事务支持不支持支持
数据行锁定不支持(默认是表锁)支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约是myisam的2倍

mysiam优点:节约空间、存储速度快。

innodb优点:安全性高,支持事务,支持多用户多表操作。

数据表操作

添加数据

insert into 表名称 (字段1,字段2...) values (1,2...);

更新数据

update 表名称 set 字段1=1,字段2=2... where 条件;

删除数据

delete from 表名称; -- 全表删除
 
delete from 表名称 where 条件; -- 指定数据删除

清空数据

truncate 表名称;

truncate作用是清空一张数据表中的所有数据,表的结构和索引约束不会改变。

delete和truncate区别

  • delete和truncate都可以用于清空一张数据表的所有数据。
  • delete清空数据后,数据的自增值不会从1开始。
  • truncate清空数据后,数据的自增会从1开始。
  • delete删除问题,对于innodb引擎,重启数据库后,自增值会从1开始,因为innodb引擎下,自增数据存储在内存中。
  • 对于myisam引擎,delete删除问题,重启数据库后,自增值不会从1开始,因为myisam引擎下,自增数据存储在文件中。

数据库查询

基本查询语句格式

select 字段 from 表名称 where 条件 order by 排序字段 group by 分组字段 Asc/Desc;

去重查询

select distinct 字段 from 表名称 where 条件;

使用关键字distinct去除重复的数据,只保留一条。

like模糊查询

select 字段 from 表名称 where 字段 like '%内容%';
  • %百分号表示任意字符,下划线_表示一个字符。

IN范围查询

select 字段 from 表名称 where 字段 in(1,2,3);
  • 表示字段是值1、值2、值3其中的一个即可。

数据联表查询

  • inner join内连接
select 字段
from A
inner join B 
on A.x = B.x
where 条件;

在这里插入图片描述

  • left join 左连接(不含交集情况)
select 字段
from A
left join B
on A.x = B.x
where B.x is null;

在这里插入图片描述

  • right join 右连接(不含交集情况)
select 字段
from A
right join B
on A.x = B.x
where A.x is null;

在这里插入图片描述

  • left join 左连接(含交集情况)
select 字段
from A
left join B
on A.x = B.x

在这里插入图片描述

  • right join 右连接(含交集情况)
select 字段
from A
right join B
on A.x = B.x

在这里插入图片描述

  • full outer join 全外连接(含交集情况)
select 字段
from A
full outer join B
on A.x = B.x

在这里插入图片描述

  • full outer join 全外连接(不含交集情况)
select 字段
from A
full outer join B
on A.x = B.x
where A.x is null or B.x is null;

在这里插入图片描述

数据库聚合函数

count()函数:统计数量。

-- 指定列计数
select count(指定列) from 表名称;
 
-- *
select count(*) from 表名称;
 
-- 1
select count(1) from 表名称;

三者区别:

  • count(指定列):只统计该列的数量,如果该列的值为null,则不统计该列。
  • count(*):统计所有列,相当于按行计数,如果为null,则也会就行统计。
  • count(1):和count(*)类似。

max()函数:求最大值。

select max(指定列) from 表名称;

min()函数:求最小值。

select min(指定列) from 表名称;

avg()函数:求平均值。

select avg(指定列) from 表名称;

sum()函数:求数据总和。

select sum(指定列) from 表名称;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1000299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二.RocketMQ基础概念及名词说明

RocketMQ基础概念及名词说明 一:RocketMQ基本概念1.消息(Message)2.生产者(Producer)3.消费者(Consumer)4.分组(Group):4.主题(Topic)5.标签(Tag)6.队列(Queue&#xff0…

Springboot 实践(15)spring config 配置与运用—自动刷新

目前,网络上讲解spring config的自动刷新,都是通过git服务站的webhook功能执行“actuator/bus-refresh”服务实现的自动刷新。我们的前文讲解的配置中心,配置中心仓库使用的时本地地址,如下图所示: 那么,配…

JVM 虚拟机 ---> JVM 基础概念

文章目录 JVM 虚拟机 ---> JVM 基础概念一、Java 跨平台主要原因 二、JVM 的组成结构三、Java 代码执行流程四、JVM 的生命周期 JVM 虚拟机 —> JVM 基础概念 一、Java 跨平台 Java是一种可跨平台的编程语言,我们通常把CPU处理器与操作系统构成的计算机系统…

记录vxe-table show-overflow失效问题

后来发现,在使用的过程中发现vxe-table的show-overflow在普通的界面是生效的,但是在el-dialog对话框始终不出现 超出的文本鼠标移上去没有显示全部 排查后发现和tooltip的z-index有关,modal的z-index比tooltip的z-index大, 方法…

行业报告 | 智慧三角:长三角掀起AI产业热潮

原创 | 文 BFT机器人 产业集群是指在特定地理区域内,一群相关产业相互依存、相互关联、相互支持,形成密集的产业网络和价值链条的现象,这些相关产业可能涵盖整个产业链的不同环节,从原材料供应到产品研发、生产、销售和服务等多个…

回显服务器

写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api,传输层提供协议,主要是两个: UDP,TCP,它们分别提供了一套不同的api,socket api. UDP和TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 一个客户端可以连接多…

【计算机组成原理】读书笔记第一期:对程序员来说CPU是什么

目录 写在开头 CPU的结构 功能的角度 程序员的角度 寄存器与程序的执行流程 程序计数器 条件分支与循环 函数的调用流程 通过地址和索引实现数组 CPU的处理过程 结尾 写在开头 近期经他人推荐,正在阅读《程序是怎样跑起来的》这本书(作者&…

为虚拟化环境带来更强I/O性能!SR-IOV技术简介

在 ICT 行业,不断提高硬件资源的使用效率是技术发展路线中亘古不变的主旋律。虚拟化作为其中最为主要的解决方式之一,其带来的影响早已不言而喻。而今天我们要说的,正是虚拟化中一项非常重要的技术 —— SR-IOV,也是下一代高端企业…

每日一练 | 网络工程师软考真题Day32

阅读以下说明,答复以下【问题1】至【问题5】 【说明】 某公司内部效劳器S1部署了重要的应用,该应用只允许特权终端PC1访问,如图4-1所示。为保证通信平安,需要在S1上配置相应的IPSec策略。综合考虑后,确定该IPSec策略如…

龙迅LT86204UX HDMI二进四出 支持高达4K60HZ的分辨率

龙迅LT86204UX 1.描述: LT86204UX HDMI2.0/1.4交换机具有2:4的开关,符合HDMI2.0/1.4规格,最大6Gbps高速数据速率,自适应均衡RX输入和预先强调的TX输出。LT86204UX HDMI2.0/1.4交换机自动检测电缆损耗,并自…

上位机的社会工作发展前景

在元宇宙发展的趋势下,上位机已经融合了虚拟现实(VR)和增强现实(AR)技术。我们不能局限于传统的电脑上的上位机开发,作为工控领域的从业者,我们应该打通PLC与各种先进外设的互通和互信。无论是i…

【C-C++源码】仓库管理系统 期末课设必备源码

文章目录 介绍 介绍 有两个版本,一个是C语言,一个是C,自行选择,VC、VS、devc等各编译器均可运行。代码注释齐全,容易理解,代码量850行。 printf("需要源码,可以百度:学长敲代码")&…

risc-v dv源代码分析

地址为 GitHub - chipsalliance/riscv-dv: Random instruction generator for RISC-V processor verificationRandom instruction generator for RISC-V processor verification - GitHub - chipsalliance/riscv-dv: Random instruction generator for RISC-V processor verif…

论文于祥读及复现——《VDO-SLAM: A Visual Dynamic Object-aware SLAM System》

论文详读之------《一个视觉动态对象感知SLAM系统》 0. 出发点(暨摘要)1.引言2. 相关工作2.1 探索针对动态环境的健壮SLAM2.2 分别执行SLAM和运动对象跟踪(MOT),作为传统SLAM的扩展,用于动态场景理解。2.3 对象SLAM(通…

2023年高校大数据实验室建设方案

大数据实验室建设方案具体内容包括:人才培养方案建设、课程资源建设、师资建设、实验室建设、教学服务建设。 泰迪打造国内领先的大数据人工智能及课程资源,包括:商务数据分析实训管理平台、云计算资源管理平台、大数据编程实训平台、商务数据…

linux入门---用匿名管道实现一个功能

前言 在之前的学习中我们知道通信的概念和匿名管道的使用,那么接下来我们就要用匿名管道来实现一个功能,首先我们有很多的函数需要被执行,然后创建一些子进程通过匿名管道方式给子进程传递一些信息,然后子进程就根据这些信息来确…

Linux安装免费Https证书,过期自动更新 省钱秘籍

Linux安装免费Https证书,过期自动更新 acme.sh这个服务可以友好地帮助我们获取免费的证书以及过期实现自动更新操作 官方网站:https://github.com/acmesh-official/acme.sh 介绍 嗨!今天我要和大家聊聊关于使用acme.sh和Nginx结合生成HTT…

基于SpringBoot的招聘信息管理系统

基于SpringBootVue的招聘信息管理系统【附源码文档】、前后端分离 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:管理员、用户、…

运营商大数据可以帮助企业实现什么目标?

虽然现在有很多合法合规的运营商大数据,那么合法合规的运营商大数据可以实现什么目标? 1、对用户进行相应研究的目标 如果是合法合规的运营商大数据那么这种情况下,对于用户就能够进行相应的研究了。在这个过程中可以直接对产品的优化进行相…

【博客笔记+java+测试】

一、项目背景 1.个人博客采用前后端分离的方法来实现,同时使用数据库存储相关的数据,将其部署在云服务器上。前端主要分为五个页面:注册页、登录页、列表页、详情页和编辑页,以上模块实现了最简单的个人博客系统。其结合后端实现了…