数据库基础

这里写目录标题

  • [<font color="FF00FF">1. 下载数据库](#1. 下载数据库)
  • [<font color="FF00FF">2. 数据库的理解](#2. 数据库的理解)
  • [<font color="FF00FF">3. 服务器,数据库,表关系](#3. 服务器,数据库,表关系)
  • [<font color="FF00FF">4. MySQL架构](#4. MySQL架构)
  • [<font color="FF00FF">5. SQL分类](#5. SQL分类)
  • [<font color="FF00FF">6. 存储引擎](#6. 存储引擎)
  • [<font color="FF00FF">7. 库的操作](#7. 库的操作)
    • [<font color="FF00FF">1. 创建数据库](#1. 创建数据库)
    • [<font color="FF00FF">1. 校验规则对数据库的影响](#1. 校验规则对数据库的影响)
    • [<font color="FF00FF">2. 修改数据库](#2. 修改数据库)
    • [<font color="FF00FF">3. 数据库删除](#3. 数据库删除)
    • [<font color="FF00FF">4. 备份和恢复](#4. 备份和恢复)
    • [<font color="FF00FF">5. 查看连接情况](#5. 查看连接情况)
  • [<font color="FF00FF">2. 表的操作](#2. 表的操作)
    • [<font color="FF00FF">1. 创建表](#1. 创建表)
    • [<font color="FF00FF">2. 查看表结构](#2. 查看表结构)
    • [<font color="FF00FF">3. 修改表](#3. 修改表)
      • [<font color="FF00FF">1. 添加表的记录](#1. 添加表的记录)
      • [<font color="FF00FF">2. 修改表字段的属性](#2. 修改表字段的属性)
      • [<font color="FF00FF">3. 删除表的一列](#3. 删除表的一列)
      • [<font color="FF00FF">4. 更改表名字](#4. 更改表名字)
      • [<font color="FF00FF">5. 更改表中列属性的名字](#5. 更改表中列属性的名字)
      • [<font color="FF00FF">6. 删除表](#6. 删除表)
      • [<font color="FF00FF">7. 查看创建表的语句](#7. 查看创建表的语句)
      • [<font color="FF00FF">8. 查看当前在哪个数据库下](#8. 查看当前在哪个数据库下)
      • [<font color="FF00FF">9. 查看该数据库有哪些表](#9. 查看该数据库有哪些表)

1. 下载数据库

  1. 在linux的云服务器上下载mysql,以unbuntu20.04为例,只需要
c 复制代码
sudo apt install mysql-server //下载数据库
sudo mysql //进入数据库的命令行

2. 数据库的理解

  1. mysql:数据库服务的客户端

  2. mysqld:数据库服务的服务端

  3. mysql:基于C(mysql),S(mysqld) 模式的一种网络服务

  4. mysql:是一套给用户提供数据存取的服务的网络程序

  5. 数据库:一般指的是,在磁盘或者内存中存储的特定结构组织的数据,就是在磁盘上存储的一套数据库放案

  6. 一般文件只提供了数据存储的功能,但是文件并没有提供非常好的数据(内容)管理能力

  7. 数据库的本质:对数据内容存储的一套方案,用户给我字段或要求,数据库给你结果

当我们使用mysql建立一个数据库,建立一张表,插入一些数据,
这个工作是mysqld服务请求mysql,帮我们做的

  1. 建立数据库,本质就是在Linux下建立一个目录

  2. 在数据库内建立表,本质就是在Linux下创建对应的文件,
    这个创建的文件,在我们创建的数据库这个目录下,目录也是文件

  3. 数据库也是文件,只不过这些文件并不由程序员直接操作,
    而是数据库服务(mysqld)帮我们进行操作

3. 服务器,数据库,表关系

  1. 安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,
    这个管理程序可以管理多个数据库

  2. 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据

  3. 数据库服务器、数据库和表的关系如下:

4. MySQL架构

首先数据库,有一个连接池,接收连接,然后下一个模块是进行语句,语法翻译的模块,在下一个是储存引擎,是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法,然后就是内核层了,所以数据库在应用层

5. SQL分类

  1. DDL数据定义语言,用来维护存储数据的结构
    代表指令: create, drop, alter

  2. DML【data manipulation language】 数据操纵语言,用来对数据进行操作
    代表指令: insert,delete,update
    DML中又单独分了一个DQL,数据查询语言,代表指令: select

  3. DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务
    代表指令: grant,revoke,commit

DDL像创建链表,DML是对链表进行增删查改

6. 存储引擎

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

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

查看存储引擎

存储引擎对比

主要用的是innoDB,MylSAM

7. 库的操作

  1. 查看系统默认字符集以及校验规则
c 复制代码
show variables like 'character_set_database';//默认字符集
show variables like 'collation_database';//校验规则

查看数据库支持的字符集

c 复制代码
show charset;//查看数据库支持的字符集

查看数据库支持的字符集校验规则

c 复制代码
show collation;//查看数据库支持的字符集校验规则

1. 创建数据库

c 复制代码
create database sjk;

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8mb4
校验规则:utf8mb4_ 0900_ai_ci


查看数据库列表(databases)里的数据库

创建一个使用utf字符集,并带校对规则的 db3 数据库

c 复制代码
create database db3 charset=utf8mb4 collate utf8mb4_ 0900_ai_ci;

默认就是这个,不用写

清屏

c 复制代码
system clear; //类似于linux的clear

显示创建语句

c 复制代码
show create database 数据库名;


数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
/*!40100 default... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

1. 校验规则对数据库的影响

创建一个数据库,校验规则使用utf8_ general_ ci(不区分大小写)

  1. 创建数据库
c 复制代码
create database test1 collate utf8_general_ci;
  1. 使用数据库
c 复制代码
use test1;
  1. 创建表
c 复制代码
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  1. 查询a
  2. 对字母排序

创建一个数据库,校验规则使用utf8_ bin(区分大小写)

  1. 创建数据库
c 复制代码
create database test2 collate utf8_bin;
  1. 使用数据库
c 复制代码
use test2
  1. 创建表
c 复制代码
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  1. 查询a
  2. 对字母排序

2. 修改数据库

c 复制代码
alter database test1 charset=gbk;//将 test1 数据库字符集改成 gbk

3. 数据库删除

c 复制代码
drop database test1

执行删除之后的结果:
数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

4. 备份和恢复

  1. 备份
c 复制代码
mysqldump  -u root  -B test2 > test //在linux命令行输入,把test2的内容放到test里

然后删除test2

  1. 恢复
c 复制代码
source /home/xaq/test;//把你的test文件的路径加上,source恢复,把test的内容重新输入

可以打开看看 test 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中

5. 查看连接情况

c 复制代码
show processlist;

2. 表的操作

1. 创建表

c 复制代码
CREATE TABLE table_name (
 field1 datatype,
 field2 datatype,
 field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

field 表示列名
datatype 表示列的类型
character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

  1. 首先创建数据库
  2. use 数据库名字;
  3. 然后建表
c 复制代码
create table students (
    -> id int,
    -> name varchar(20) comment '学生姓名',
    -> password char(32) comment '学生密码'
    -> );

2. 查看表结构

c 复制代码
desc students;

3. 修改表

1. 添加表的记录


select * from students:表示查看students里的所有内容

c 复制代码
insert into students values(1,'张三','123456') //向表中插入数据
after table students add age int comment'年龄' after id;//向表结构里插入字段

2. 修改表字段的属性

c 复制代码
alter table students modify name varchar(10);

3. 删除表的一列

c 复制代码
alter table students drop assets;//删除字段及其对应的列数据都没了

4. 更改表名字

c 复制代码
alter table students rename to people; //更改表名字,to可以省略

5. 更改表中列属性的名字

c 复制代码
alter table people change name xingming varchar(20); //新字段需要完整定义

6. 删除表

c 复制代码
drop table t1;

7. 查看创建表的语句

  1. ENGINE:默认是InnoDB,也可以写成MyISAM

    不同的存储引擎,创建表的文件不一样,people是InnoDB,s1是MyISAM
    s1.MYD:数据文件 存储 MyISAM 表的实际数据
    s1.MYI:索引文件 存储 MyISAM 表的索引
    people.ibd:表空间文件 存储 InnoDB 表的数据和索引
    s1_375.sdi:系统文件) 数据字典 MySQL 8.0+ 用于描述表结构的元数据文件(不区分引擎)

8. 查看当前在哪个数据库下

9. 查看该数据库有哪些表

相关推荐
李白客2 小时前
国产数据库选型指南:从技术路线到实战要点
运维·数据库·数据库架构·迁移学习
Nalu CONG2 小时前
mysql数据被误删的恢复方案
数据库·mysql
小宋加油啊2 小时前
工作中数据库知识
数据库
杨浦老苏2 小时前
数据库备份管理工具DBackup
数据库·docker·备份·群晖
一 乐2 小时前
交通感知与车路协同系统|基于springboot + vue交通感知与车路协同系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·交通感知与车路协同系统
NineData2 小时前
NineData 将亮相 DACon 2026 上海站!解锁 AGI 时代数据“智理”新范式
数据库·架构·agi·ninedata·数据复制·数据迁移工具·dacon2026
黄昏晓x2 小时前
数据库----函数
数据库
UpYoung!3 小时前
【数据库工具】DBeaver——轻量化多功能数据库连接工具DBeaver Ultimate 24.0.0版详细下载安装指南
数据库·mysql·sqlserver·数据库开发·数据库管理·dbeaver·数据库工具
爬山算法3 小时前
MongoDB(92)什么是变更流(Change Streams)?
数据库·mongodb