MySQL 学习笔记(基础)

首先解释数据库DataBase(DB):即存储数据的仓库,数据经过有组织的存储

数据库管理系统DataBase Management System(DBMS):管理数据库的软件

SQL(Structured Query Language):结构化查询语言 / 操作关系型数据库的编程语言 / 定义操作所以关系型数据库的统一标准

关系型数据库

下图是截取了2020年左右关系型数据库管理系统的前十排名图:

  • Oracle:收费大型数据库
  • MySQL:开源免费的中小型数据库
  • SQL Server:MicroSoft 公司收费的中型数据库(C# 和 .net 等语言常用)
  • PostgreSQL:开源免费的中小型数据库
  • DB2:IBM 公司的收费大型数据库
  • SQLite:嵌入式微型数据库(可作为 Android 内置数据库)
  • MariaDB:开源免费的中小型数据库

顾名思义即建立在关系模型上的数据库,也可以说是由多张可以相互连接的 二维表 组成的数据库。

CRUD(create、read、update、delete)是精髓!

SQL 结构化查询语言

SQL 通用语法

SQL 分类(加星是管理员,无是用户)

DDL* 操作数据库 DataBase

DDL* 操作表 Table

CRUD(Create、Retrieve/Read、Update、Delete)操作*

DESC 数据库名称;

查询数据库结构

数据类型

MySQL 中可分为三类:数值、日期、字符串

分类 数据类型 大小 描述
数值类型 TINYINT 1 byte 小整数值
数值类型 SMALLINT 2 bytes 大整数值
数值类型 MEDIUMINT 3 bytes 大整数值
数值类型 INT或INTEGER 4 bytes 大整数值
数值类型 BIGINT 8 bytes 极大整数值
数值类型 FLOAT 4 bytes 单精度浮点数值
数值类型 DOUBLE 8 bytes 双精度浮点数值
数值类型 DECIMAL 小数值
日期和时间类型 DATE 3 日期值
日期和时间类型 TIME 3 时间值或持续时间
日期和时间类型 YEAR 1 年份值
日期和时间类型 DATETIME 8 混合日期和时间值
日期和时间类型 TIMESTAMP 4 混合日期和时间值,时间戳
宇符串类型 CHAR 0-255 bytes 定长字符串
宇符串类型 VARCHAR 0-65535 bytes 变长宇符串
宇符串类型 TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
宇符串类型 TINYTEXT 0-255 bytes 短文本字符串
宇符串类型 BLOB 0-65 535 bytes 二进制形式的长文本数据
宇符串类型 TEXT 0-65 535 bytes 长文本数据
宇符串类型 MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
宇符串类型 MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
宇符串类型 LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
宇符串类型 LONGTEXT 0-4 294 967 295 bytes 极大文本数据

MySQL 图形化界面工具

  • Navicat
  • SQLyog

DML

指除 Query 操作外的 Create、Update、Delete。

DQL (非常重要!)

数据库设计

a.约束

主要有:非空、唯一、主键、默认、检查、外键约束

1.非空约束

2.唯一约束

3.主键约束

4.默认约束

5.外键约束(连接约束)

(一个论坛网站的数据库设计图)

b.表关系

1.一对多

2.多对多

3.一对一

4.小结

c.总结

扩展:多表查询(多表连接)

介绍:

1.内连接

2.外连接

3.子查询(嵌套查询)

事务

事务四大特征

  • 原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
  • 隔离性(Isolation):多个事务之间,操作的可见性
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

事务其它有关的就以后再议吧!

相关推荐
IMPYLH3 小时前
Python 的内置函数 reversed
笔记·python
程序员岳焱4 小时前
Java 与 MySQL 性能优化:Java 实现百万数据分批次插入的最佳实践
后端·mysql·性能优化
码荼5 小时前
学习开发之hashmap
java·python·学习·哈希算法·个人开发·小白学开发·不花钱不花时间crud
梦在深巷、5 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
武昌库里写JAVA6 小时前
Oracle如何使用序列 Oracle序列使用教程
java·开发语言·spring boot·学习·课程设计
Johny_Zhao6 小时前
Ubuntu系统安装部署Pandawiki智能知识库
linux·mysql·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm·pandawiki
ysa0510306 小时前
数论基础知识和模板
数据结构·c++·笔记·算法
祁思妙想7 小时前
八股学习(三)---MySQL
数据库·学习·mysql
今天背单词了吗9807 小时前
算法学习笔记:7.Dijkstra 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·数据结构·笔记·算法
惊骇世俗王某人7 小时前
1.MySQL之如何定位慢查询
数据库·mysql