找回密码
 立即注册
快捷导航

[数据库] mysql 必须了解的基础

[复制链接]
镖师 2023-7-9 20:30:14 | 显示全部楼层
DB:数据库(Database)
即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。比如mysql的data目录、或者说是.doc文件

DBMS:数据库管理系统(Database Management System)
是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。比如mysql本身,或者说类似wps软件

SQL:结构化查询语言(Structured Query Language)
专门用来与数据库通信的语言。

关系型数据库(RDBMS)
是把复杂的数据结构归结为简单的二元关系 (即二维表格形式)。以 行(row) 和 列(column) 的形式存储数据,以便于用户理解。这一系列的行和列被称为 表(table) ,一组表组成了一个库(database);表与表之间的数据记录有关系(relationship)。关系型数据库,就是建立在 关系模型 基础上的数据库。
优点:
- 复杂查询 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
- 事务支持 使得对于安全性能很高的数据访问要求得以实现。

mysql 必须了解的基础6290 作者:镖师 帖子ID:456

非关系型数据库(非RDBMS)
可看成传统关系型数据库的功能 阉割版本 ,基于键值对存储数据,不需要经过SQL层的解析, 性能非常高 。
NoSQL 泛指非关系型数据库,包括了榜单上的键值型数据库、文档型数据库、搜索引擎和列存储等,除此以外还包括图形数据库。

表之间四种关系:一对一关联、一对多关联、多对多关联、自我引用

一对一
原则:一张表拆成两张表,比如学生表拆分为 基础信息表 与 档案信息表
- 主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。
- 主表的主键和从表的主键,形成主外键关系。

一对多
客户表和订单表 , 分类表和商品表 , 部门表和员工表 。
原则:在从表(多方)创建一个字段,该字段作为外键指向主表(一方)的主

mysql 必须了解的基础6332 作者:镖师 帖子ID:456

多对多
原则:需要创建第三张表,该表通常称为 联接表 (或说 中间表),它将多对多关系划分为两个一对多关系,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键(理解为将这两个表的主键都插入到第三个表中)。

mysql 必须了解的基础6229 作者:镖师 帖子ID:456

学生信息表 与 选课信息表
产品表 与 订单表
用户 与 角色

自我引用
-


show databases;
mysql 必须了解的基础5298 作者:镖师 帖子ID:456

  • “information_schema” 系统自带,主要保存 MySQL 数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使用的文件夹,等等
  • “performance_schema” 系统自带,可以用来监控 MySQL 的各类性能指标。
  • “sys” 系统自带,主要作用是以一种更容易被理解的方式展示 MySQL 数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。
  • “mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等


创建数据库:create database 数据库名
使用数据库:use 数据库名;
查看数据库中的表:show tables; #要求前面有use语句
创建表:
create table student(
    id int,
    name varchar(20)    #说名字最长不超过20个字符
);
查看表数据:select * from 数据库表名称;
插入数据到表中:insert into student values(1,'张三');        # 如果插入的中文变为乱码,则说明 表或数据库 可能是 拉丁latin1 而不是 utf8
查看student表的详细创建信息:show create table student;
查看数据库的详细创建信息:show create database 数据库名;

删除表:drop table 表名称
删除数据库:drop database 数据库名;

mysql5.7 或以下中文乱码解决:
1、查看编码命令
show variables like 'character_%';
show variables like 'collation_%'
2、用notepad++(防止 含BOM头 导致改后无法重启)修改mysql的数据目录下的my.ini配置文件
[mysql] #大概在63行左右,在其下添加
...
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_ci
重启服务并按第一步命令查看;

修改已有 表/数据库 的拉丁编码:alter table student charset utf8;     alter database 数据库名 chatset utf8;

mysql8之后的字符集为 utf8mb4,字符排序为 utf8mb4_0900_ai_ci

mysql8前,默认字符集为latin1,utf8字符集指向的是utf8mb3,从MySQL 8.0 开始,数据库的默认编码改为 utf8mb4
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 00:40

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表