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.mzph.cn/news/75649.shtml

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

相关文章

wpf C# 用USB虚拟串口最高速下载大文件 每包400万字节 平均0.7s/M,支持批量多设备同时下载。自动识别串口。源码示例可自由定制。

C# 用USB虚拟串口下载大文件 每包400万字节 平均0.7s/M。支持批量多设备同时下载。自动识别串口。可自由定制。 int 32位有符号整数 -2147483648~2147483647 但500万字节时 write时报端口IO异常。可能是驱动限制的。 之前用这个助手发文件,连续发送&#xff0…

【创新项目探索】大数据服务omnidata-hive-connector介绍

omnidata-hive-connector介绍 omnidata-hive-connector是一种将大数据组件Hive的算子下推到存储节点上的服务,从而实现近数据计算,减少网络带宽,提升Hive的查询性能。目前支持Hive on Tez。omnidata-hive-connector已在openEuler社区开源。 …

运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar

朋友 我当你一秒朋友 朋友 我当你一世朋友 奇怪 过去再不堪回首 怀缅 时时其实还有 运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar 基本可以断定,是jar不完整导致的。不完整!!!记住关键字 检查1: …

【Mysql】数据库第三讲(表的约束、基本查询语句)

表的约束和基本查询 1.表的约束1.1 空属性1.2默认值1.3列描述1.4 zerofill1.5主键1.6 自增长1.7 唯一键1.8外键 1.表的约束 真正约束字段的是数据类型,但是数据类型约束很单一, 需要有一些额外的约束, 更好的保证数据的合法性,从…

colcon build --symlink-install ,编译失败解决方法

colcon build --symlink-install编译ros2源代码时,或者其example时报此错误。 EasyInstallDeprecationWarning: easy_install command is deprecated.报错的路径是/usr/lib/python3/dist-packages中的setuptools,版本是setuptools-59.6.0.egg-info&…

鸿蒙应用开发之容器组件

一、概述 一个丰富的页面通常是由很多基础组件组成的,那么我们如何才能让这些组件有条不紊地在页面上布局呢?这就需要借助容器组件来实现。 容器组件是一种比较特殊的组件,它可以包含其他的组件,而且按照一定的规律布局&#xf…

基于SSM的精品酒销售管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Java项目-苍穹外卖-Day10-SpirngTask及WebSocket

文章目录 前言SpringTask介绍SpringTask_corn表达式Spring_Task入门案例 订单状态定时处理需求分析代码开发功能测试 WebScoket介绍入门案例 来单提醒需求分析代码开发功能测试 客户催单代码开发功能测试 前言 本章实现的业务功能 超时未支付订单自动取消,配送中订…

想了解Java内存分析工具MAT?看这里哦

MAT 简介 MAT全称为 Eclipse Memory Analyzer Tool ,eclipse基金会开源的java堆内存分析工具,可以快速的进行堆内存分析、大对象可视化、类加载器分析、线程分析等。在我们碰到线上内存问题时候,是不可多得的好工具(当然也有artha…

打工人必装的5款黑科技软件,办公舒适度立刻提升数倍

分享打工人必装的5款黑科技软件,让你高效完成工作,办公舒适度立刻提升数倍。 DroidCam——手机充当电脑摄像头 DroidCam可以让你的手机充当电脑的摄像头,让手机拍摄到的画面实时投送到电脑屏幕上,也可以充当视频聊天的摄像头&…

Netty核心原理:一、基础入门-03:NettyServer接收数据

文章目录 一、前言介绍二、代码实现2.1 工程结构2.2 Netty服务端接收数据实现2.2.1 服务端处理器2.2.2 通道初始化2.2.3 netty服务端 2.3 单元测试 一、前言介绍 💡 介绍使用 netty 写一个能接收数据的 socketServer 服务端。 通过实现通道适配器 ChannelInboundHan…

Windows通过RDP异地远程桌面Ubuntu【内网穿透】

文章目录 前言1. ubuntu安装XRDP2.局域网测试连接3.安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 前言 XRDP是一种开源工具,它允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP外,xrdp工具还接受来自其他RDP客户端(如Fre…

基于Python和mysql开发的在线音乐网站系统(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的在线音乐网站系统(,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经…

【面试题】前端开发中如何高效渲染大数据量?

前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 【国庆头像】- 国庆爱国 程序员头像!总有一款适合你! 在日常工作中,较少的能遇到一次性往页面中插入大量数据的场景…

小白备战大厂算法笔试(六)——堆

文章目录 堆常用操作堆的实现存储与表示访问堆顶元素元素入堆元素出堆 常见应用建堆操作自上而下构建自下而上构建 TOP-K问题遍历选择排序堆 堆 堆是一种满足特定条件的完全二叉树,主要可分为下图所示的两种类型。 大顶堆:任意节点的值 ≥ 其子节点的值…

【Hello Algorithm】贪心算法

本篇博客介绍: 简单介绍下贪心算法 贪心算法 介绍贪心算法最小字典序的字符串拼接最多会议数切棍子的最小成本IPO灯塔问题 介绍贪心算法 贪心算法是一种极具有自然智慧的算法 它会使用以一种局部最功利的标准来做出一个当前看来最好的选择 如果说我们根据局部最优…

【docker】私有仓库搭建

Docker 私有仓库搭建 在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。…

C高级 第四天

#!/bin/bash#1.实现一个对数组求和的函数,数组通过实参传递给函数 read -p "输入数组" -a arr sum0 function add() {for i in ${arr[*]}do((sumi))done } add arr echo $sum#2.写一个函数,输出当前用户的uid和gid,并使用变量接收结果 function my_id() {num1id -unu…

WebDAV之π-Disk派盘 + 小书匠

小书匠是一款功能丰富,强大的知识管理工具。全平台覆盖,离线数据存储,自定义数据服务器,所见即所得的 markdown 编辑体验。 小书匠提供了多种实用的编辑模式,例如:栏编辑、双栏编辑、三栏编辑、全屏写作、全屏阅读等。并且该软件还提供了许多有用的扩展语法,比如Latex公…

安装vCenter6.7出错 DNS服务原因

https://blog.csdn.net/seaship/article/details/107045006**A.VCSA6.7的安装**第1步,运行VCSA 6.7部署程序,中间一些截图参考何老师相关部署文章即可第2步,配置VCSA虚拟机网络,FQDN填写虚拟机分配的IP地址&#xff0c…