MySQL数据库——数据库基础

二、数据库基础

1.主流数据库

  • SQL Sever:微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle:甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite::是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2:是一个用va开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
  1. mysql他是数据库服务的客户端
  2. mysqld是数据库服务的服务器端
  3. mysql本质:基于C(mysql)S(mysql)模式的一种网络服务

2.基本使用

①连接服务器

输入:

-h:连接地址,如果没有写默认是连接本地-h 127.0.0.1

-P:连接端口号,如果没有写默认是连接端口号3306

-u:连接到MySql服务器时使用的用户名

-p:表示需要输入密码

输出:

quit;-----> 退出

②服务器管理

执行win+r输入services.msc打开服务管理器

左侧选项可以停止、暂停、重启动进行服务管理

(在我的本机上安装了两个不同版本的MySQL)

③使用数据库

sql 复制代码
//创建数据库
mysql> create database helloworld;
Query OK, 1 row affected (0.00 sec)

//展示数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bookstore          |
| helloworld         |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

//使用数据库
mysql> use helloworld;
Database changed

//创建表
mysql> create table student(
    -> name varchar(32),
    -> age int,
    -> gender varchar(2)
    -> );
Query OK, 0 rows affected (0.01 sec)

//向表中插入数据
mysql> insert into student (name, age, gender) values ('张三',20,'男');
Query OK, 1 row affected (0.00 sec)

//查询表中所有数据
mysql> select * from student;
+--------+------+--------+
| name   | age  | gender |
+--------+------+--------+
| 张三   |   20 | 男     |
+--------+------+--------+
1 row in set (0.00 sec)

mysql> 
  1. 建立数据库,本质就是在Linux下的一个目录(cd /var/lib/mysql)
  2. 在数据库内建立表,本质就是在Linux下创建对应的文件即可
  3. 数据库本质其实也是文件,只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作

④服务器/数据库/表的关系

  • 所谓安装数据库服务器 ,只是在机器上安装了一个数据库管理系统程序 ,这个管理程序可以管理多个数据库 ,一般开发人员会针对每一个应用创建一个数据库。
  • 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
  • 数据库服务器、数据库和表的关系如下:

⑤MySQL架构

MySQL是一个可移植的数据库,几乎能在当前所有的操系统上运行,如Unix/Linux、Windows、Mac和Solaris。各种系统在底层实现方面各有不同,但是MySQL基本上能保证在各个平台上的物理体系结构的一致性。

⑥SQL分类

  • DDL【data definition1 anguage】数据定义语言 ,用来维护存储数据的结构
    • 代表指令:create,drop,alter
  • DML【data manipulation1 anguage】数据操纵语言 ,用来对数据进行操作
    • 代表指令:insert,delete,update
    • DML中又单独分了一个DQL,数据查询语言,
    • 代表指令:select
  • DCL【Data Contro1 Language】数据控制语言,主要负责权限管理和事务
    • 代表指令:grant,revoke,commit

⑦存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

MySQL的核心就是插件式存储引擎,支持多种存储引擎。

查看存储引擎的方法:show engines;

sql 复制代码
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

mysql> 

各种存储引擎对比:

相关推荐
摇滚侠6 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试6 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
2501_937767167 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
silvamux_8 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
I Am a robert girl10 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒10 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB10 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB11 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
SelectDB11 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析
pjj1985413 小时前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse