Mysql数据库基础总结:

什么是数据库:

数据库(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.rhkb.cn/news/129097.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手写Mybatis

Mybatis核心配置文件就是为了配置Configration 因此要首先会解析Mybatis核心配置文件 首先使用dom4J解析Mybatis核心配置文件 新建模块演示dom4j解析.xml 目录放错了 无所谓 引入依赖 从原来项目可以拷贝过来 就些简单配置就好 解析核心配置文件和解析xxxMapper.xml映射文件…

vue学习之属性绑定

内容渲染 采用 &#xff1a;进行属性渲染创建 demo3.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

CHS零壹视频恢复程序OCR使用方法

目前CHS零壹视频恢复程序监控版、专业版、高级版已经支持了OCR&#xff0c;OCR是一种光学识别系统&#xff0c;通俗说就和扫描仪带的OCR软件一样的原理&#xff1a; 分析照片->OCR获取字符串->整理字符串->输出 使用方法如下&#xff08;以CHS零壹视频恢复程序监控版…

使用LlamaIndex构建自己的PandasAI

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 Pandas AI 是一个 Python 库&#xff0c;它利用生成 AI 的强大功能来增强流行的数据分析库 Pandas。只需一个简单的提示&#xff0c;Pandas AI 就可以让你执行复杂的数据清理、分析和可视化&#xff0c;而这以前需要很…

STL线程各种容器对比、数组和vector如何互相转换

STL vector如何扩展内存和释放内存STL中各种容器对比STL中的swap函数STL中哈希表扩容STL迭代器失效的情况和原因vector删除元素后如何避免当前迭代器会失效vector的iterator和const_iterator和const iterator vector如何扩展内存和释放内存 内存增长 1.5还是2倍扩容 gcc 二倍扩…

微信小程序ibeacon搜索功能制作

以下是一个完整的微信小程序代码示例&#xff0c;演示如何实现iBeacon搜索功能&#xff1a; // 在小程序页面中的js文件中编写代码Page({data: {beacons: [] // 存储搜索到的iBeacon设备信息},onReady() {// 初始化iBeaconwx.startBeaconDiscovery({uuids: [你的UUID], // 替换…

数据结构和算法(1):开始

算法概述 所谓算法&#xff0c;即特定计算模型下&#xff0c;旨在解决特定问题的指令序列 输入 待处理的信息&#xff08;问题&#xff09; 输出 经处理的信息&#xff08;答案&#xff09; 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序…

用户促活留存新方式——在APP中嵌入小游戏

随着APP同类产品的不断出现&#xff0c;APP开发者们面临着激烈的竞争&#xff0c;很多APP下载后被新的APP取代&#xff0c;获客成本越来越高。同时开发者还会面临用户粘性差、忠诚度低、用完即走、留存困难&#xff0c;商业化价值被大大缩减。 在APP中植入小游戏来提高用户活跃…

Vue——vue3+element plus实现多选表格使用ajax发送id数组

代码来源: Vue 3结合element plus&#xff08;问题总结二&#xff09;之 table组件实现多选和清除选中&#xff08;在vue3中获取ref 的Dom&#xff09;_multipletableref.value.togglerowselection()打印出来的是u_子时不睡的博客-CSDN博客 前言 为了实现批量删除功能的功能…

【Python爬虫实战】爬虫封你ip就不会了?ip代理池安排上

前言 在进行网络爬取时&#xff0c;使用代理是经常遇到的问题。由于某些网站的限制&#xff0c;我们可能会被封禁或者频繁访问时会遇到访问速度变慢等问题。因此&#xff0c;我们需要使用代理池来避免这些问题。本文将为大家介绍如何使用IP代理池进行爬虫&#xff0c;并带有代…

C语言练习:输入日期输出该日期为当年第几天

用scanf()输入某年某月某日&#xff0c;判断这一天是这一年的第几天。以3月5日为例&#xff0c;应该先把前两个月的加起来&#xff0c;然后再加上5天即本年的第几天&#xff0c;特殊情况&#xff0c;闰年且输入月份≥3时需考虑多加一天。注&#xff1a;判断年份是否为闰年的方法…

【C刷题】day1

一、选择题 1.正确的输出结果是 int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf("%d,%d\n"&#xff0c;x, y); return 0; } 【答案】&#xff1a; 3&#xff0c;8 【解析】&#xff1a; 考点&#xff1a; &#xff…

Matlab如何导入Excel数据并进行FFT变换

如果你发现某段信号里面有干扰&#xff0c;想要分析这段信号里面的频率成分&#xff0c;就可以使用matlab导入Excel数据后进行快速傅里叶变换&#xff08;fft&#xff09;。 先直接上使用方法&#xff0c;后面再补充理论知识。 可以通过串口将需要分析的数据发送到串口助手&a…

postgresql-窗口函数

postgresql-窗口函数 窗口函数简介窗口函数的定义分区排序选项窗口选项 窗口函数简介 包括 AVG、COUNT、MAX、MIN、SUM 以及 STRING_AGG。聚合函数的作用是针对一组数据行进行运算&#xff0c;并且返回一条汇总结果 分析的窗口函数&#xff08;Window Function&#xff09;。 …

投稿指南【NO.12_8】【极易投中】核心期刊投稿(组合机床与自动化加工技术)

近期有不少同学咨询投稿期刊的问题&#xff0c;大部分院校的研究生都有发学术论文的要求&#xff0c;少部分要求高的甚至需要SCI或者多篇核心期刊论文才可以毕业&#xff0c;但是核心期刊要求论文质量高且审稿周期长&#xff0c;所以本博客梳理一些计算机特别是人工智能相关的期…

单相并联下垂控原理

Part1 上述有个核心的piont是等效阻抗上的电压一般时很小的&#xff0c;这就导致逆变器输出电压矢量E和负载电压矢量UL之间的夹角很小 》基于上述的结论有助于我们去简化下垂控制的公式&#xff01;&#xff01;&#xff01; Part2 上述得到负载电流&#xff0c;接着乘以负载…

mac 查看端口占用

sudo lsof -i tcp:port # 示例 sudo lsof -i tcp:8080 杀死进程 sudo kill -9 PID # 示例 sudo kill -9 8080

基于奇偶模的跨线桥(crossover)分析

文章目录 1、ADS建模2、奇偶模分析2.1 Port1→Port2传输特性2.1.1奇模分析2.1.2偶模分析 2.2 Port1→Port4传输特性 附&#xff1a;正交混合网络的奇偶模分析1、 Port1→Port21.1奇模分析1.2Port1→Port2偶模分析1.3 奇模传输与偶模传输相位关系![在这里插入图片描述](https://…

蚂蚁开源编程大模型,提高开发效率

据悉&#xff0c;日前蚂蚁集团首次开源了代码大模型 CodeFuse&#xff0c;而这是蚂蚁自研的代码生成专属大模型&#xff0c;可以根据开发者的输入提供智能建议和实时支持&#xff0c;帮助开发者自动生成代码、自动增加注释、自动生成测试用例、修复和优化代码等kslouitusrtdf。…

rrweb入门

rrweb 背景 rrweb 是 record and replay the web&#xff0c;是当下很流行的一个录制屏幕的开源库。与我们传统认知的录屏方式&#xff08;如 WebRTC&#xff09;不同的是&#xff0c;rrweb 录制的不是真正的视频流&#xff0c;而是一个记录页面 DOM 变化的 JSON 数组&#x…