快速复习数据库(包含代码举例注释)

登录数据库

mysql -u用户名 -p
密码

数据库命令以**分号;**结尾,一条可以分为好几行,不区分大小写

注释方式是

单行 – 内容 注意–后面有一个空格

多行 /* */

SQL语句

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库结构和对象(数据库,表,字段)
DML Data Manipulation Language 数据操作语言,用来对数据库中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中的记录
DCL Data Control Language 数据控制语言,用来创建或撤销用户账户,控制数据库的访问权限

数据库设计DDL

DDL数据库设计
创建数据库

database也可以改为schema


create database 数据库名字;
-- create schemas 数据库名字

如果创建的数据库已经有了会报错。加一个判断语句if not exists


create database if not exists 数据库名字;
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查询数据库

show databases
-- show schemas
切换数据库

use 数据库名字;

查看当前正在使用的数据库是哪个数据库


select database();
删除数据库

drop database 数据库名

如果该数据库已经没有了在删除会报错,此时使用判断语句if exists


drop database if exists 数据库名
DDL表操作
约束关键字
字段 描述 约束
非空约束 该字段值不能为null not null
唯一约束 保证字段的所有有效数据都是唯一的,不能重复 unique
主键约束 主键是一个或数个的唯一标识,要求非空且唯一,主键自增auto_increment primary key
默认约束 保存数据时,如果未指定该字段值,则采用默认值 default
外键约束 让两张表的数据建立逻辑连接,保证数据的一致性和完整性 foreign key
创建表

create table 表名(
 字段1 字段1类型 [约束] [comment '字段1注释' ],
 字段2 字段2类型 [约束] [comment '字段2注释' ],
 ......
 字段n 字段n类型 [约束] [comment '字段n注释' ]
) [ comment '表注释' ] ;
[]代表可写可不写

create table tb_user(
    id int primary key comment '用户id',
    username varchar(20) not null unique comment '用户账号', -- 约束可以多个存在
    name varchar(5) not null comment '名字',
    age int comment '年龄',
    gender char(1) default '男' comment '性别'
)comment '用户表';

查询表

  • 查看当前数据库所有表格:show tables;
  • 查看表结构:desc 表名;
  • 查看建表语句:show create table 表名;

修改表

  • 添加字段:alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
  • 修改字段类型:alter table 表名 modify 字段名 新类型(长度);
  • 修改字段名和字段类型:alter table 表名 change 原字段名 新字段名 类型(长度) [comment 注释] [约束];
  • 删除字段:alter table 表名 drop column 字段名;
  • 重命名表:rename table 旧名 to 新名;

以上操作最好以可视化工具的方式修改,不使用sql语句

Mysql数据类型

数值类型
分类 类型 大小 (byte) 有符号 (SIGNED) 范围 无符号 (UNSIGNED) 范围 描述
数值类型 tinyint 1 (-128, 127) (0, 255) 小整数值
smallint 2 (-32768, 32767) (0, 65535) 大整数值
mediumint 3 (-8388608, 8388607) (0, 16777215) 大整数值
int 4 (-2147483648, 2147483647) (0, 4294967295) 大整数值
bigint 8 (-2^63, 2^63-1) (0, 2^64-1) 极大整数值
float 4 (-3.402823466 E+38, 3.402823466351 E+38) 0 和 (1.175494351 E-38, 3.402823466 E+38) 单精度浮点数值
double 8 (-1.7976931348623157 E+308, 1.7976931348623157 E+308) 0 和 (2.2250738585072014 E-308, 1.7976931348623157 E+308) 双精度浮点数值
decimal 小数值 (精度更高)
关键字unsigned。控制是否有符号
-- 创建一个无字符的极小整数值
gender  tinyint unsigned  not null,

float(5,2)5表示整个数字长度,2 表示小数位个数
double(5,2)5表示整个数字长度,2 表示小数位个数
decimal(5,2)5表示整个数字长度,2 表示小数位个数
字符串类型
分类 类型 大小 描述
字符串类型 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 极大文本数据

char(10): 最多只能存10个字符,不足10个字符,占用10个字符空间  AB  性能高 浪费空间
varchar(10): 最多只能存10个字符,不足10个字符, 按照实际长度存储   ABC 性能低 节省空间
日期类型
分类 类型 大小(byte) 范围 格式 描述
日期类型 date 3 1000-01-01 至 9999-12-31 YYYY-MM-DD 日期值
time 3 -838:59:59 至 838:59:59 HH:MM:SS 时间值或持续时间
year 1 1901 至 2155 YYYY 年份值
datetime 8 1000-01-01 00:00:00 至 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
timestamp 4 1970-01-01 00:00:01 至 2038-01-19 03:14:07 YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

数据库操作DML

insert语法
  • 插入字段映射规范插入: insert into 表名 (字段1, 字段2) values (值1, 值2);
  • 全部字段映射规范插入: insert into 表名 values (值1, 值2, ...);
  • 批量映射插入(指定字段): insert into 表名 (字段1, 字段2) values (值1, 值2), (值1, 值2);
  • 批量映射插入(全部字段): insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);

insert 
<think>嗯,用户让我介绍如何制作一个关于数据库的思维导图,内容需要包括基本概念、数据管理技术的发展阶段、数据库的体系结构、数据模型和关系运算。首先,我得确认每个部分的具体内容,确保没有遗漏重要的知识点。 首先,数据库的基本概念。这部分应该包括数据、数据库数据库管理系统(DBMS)和数据库系统的定义。可能还需要提到数据独立性,比如逻辑和物理独立性,这些都是基本概念里的关键点。用户可能需要明确这些术语的区别,比如数据库数据库管理系统有什么不同。 接下来是数据管理技术的发展阶段。通常分为人工管理、文件系统和数据库系统三个阶段。每个阶段的特点需要简要说明,比如人工管理阶段数据无法共享,文件系统阶段有冗余和依赖,数据库系统阶段强调结构化、共享和低冗余。可能用户需要知道每个阶段的优缺点,以及为什么数据库系统成为主流。 然后是数据库的体系结构。三级模式结构:外模式、概念模式和内模式,加上二级映像(外模式/概念模式映像和概念模式/内模式映像)。这部分可能对初学者来说有点抽象,需要解释每个模式的作用以及映像的功能,比如保证数据独立性。 数据模型部分,需要包括概念模型(如E-R图)、逻辑模型(层次、网状、关系、面向对象)和物理模型。特别是关系模型,作为重点,需要详细说明其组成部分:数据结构、数据操作和完整性约束。用户可能对不同的数据模型的应用场景感兴趣,比如层次模型和网状模型的区别,以及为什么关系模型现在更常用。 关系运算包括传统的集合运算(并、差、交、笛卡尔积)和专门的关系运算(选择、投影、连接、除)。需要明确每种运算的符号和用途,比如选择是筛选行,投影是选择列,连接是结合两个表。用户可能需要例子来理解这些运算的实际应用,比如如何用选择运算找到特定条件的数据。 在制作思维导图时,结构要清晰,主分支对应每个大标题,子分支详细展开每个知识点。可能需要用颜色或图标区分不同的部分,帮助记忆。同时,要注意术语的准确性,比如DBMS的功能包括数据定义、操作、控制等,这些不能混淆。 用户可能的深层需求是准备考试或复习数据库课程,所以需要全面且重点突出的导图。可能还需要注意各部分的联系,比如数据模型如何影响数据库的体系结构,或者关系运算如何应用于SQL查询中。确保思维导图能够帮助用户建立知识之间的联系,而不仅仅是孤立的知识点。 最后,检查是否有遗漏的部分,比如数据库系统的特点,如ACID特性,或者事务管理,这些可能属于基本概念或体系结构的一部分。但根据用户的要求,可能不需要深入到事务管理,所以需要严格按照用户列出的内容来组织,避免冗余。</think>以下是为您整理的数据库核心知识点思维导图框架及内容详解,按层级结构可视觉化呈现: 一、**数据库基本概念** $$Data \triangleleft \rightarrow DBMS \rightarrow Database\ System$$ 1. 数据:描述事物的符号记录(数字、文本、图形等) 2. 数据库(DB):长期存储在计算机内有组织的共享数据集合 3. DBMS:管理数据库的系统软件(如MySQL、Oracle) 4. 数据库系统 = 数据库 + DBMS + 应用系统 + 用户 二、**数据管理技术发展阶段** ```mermaid 流程图结构示意(实际建议用思维导图软件绘制): 人工管理 → 文件系统 → 数据库系统 ``` 1. 人工管理(1950s前):无专用软件,数据与程序绑定 2. 文件系统(1950s-60s):数据文件独立存储,但冗余度高 3. 数据库系统(1970s后):统一管理,三级结构两级独立性 三、**数据库体系结构(三级模式)** $$外模式 \xleftarrow[映射]{逻辑独立性} 模式 \xrightarrow[映射]{物理独立性} 内模式$$ 1. 外模式(用户视图):局部数据的逻辑结构 2. 模式(逻辑模式):全体数据的全局逻辑结构 3. 内模式(存储模式):数据物理存储方式 四、**数据模型** 1. **概念模型** - E-R图:实体、属性、联系(1:1, 1:n, m:n) $$Entity1 \longleftrightarrow Relationship \longleftrightarrow Entity2$$ 2. **逻辑模型** - 层次模型(树结构) - 网状模型(图结构) - **关系模型**(二维表,核心组成部分): - 数据结构:关系(表)、元组(行)、属性(列) - 数据操作:关系代数/SQL - 完整性约束:实体/参照/用户定义完整性 3. **物理模型**:数据存储细节(索引、压缩等) 五、**关系运算** ```plaintext 关系代数 ├─ 传统集合运算:∪并 ∩交 -差 ×笛卡尔积 └─ 专门运算: ├─ σ选择(筛选行): σ_{条件}(R) ├─ π投影(选择列): π_{属性}(R) ├─ ⋈连接(θ连接/自然连接) └─ ÷除运算 ``` **制作建议:** 1. 使用XMind/MindMaster等工具创建中心主题 2. 按上述五个主分支展开 3. 关键术语用不同颜色标注 4. 公式用LaTeX插件呈现(或直接标注说明) 5. 典型示例用注释框附加(如关系运算举例) **知识关联提示**: - 数据模型决定DBMS类型(如关系型数据库采用关系模型) - 三级模式通过映射实现物理/逻辑数据独立性 - 关系运算是SQL语言的理论基础 需要具体示例或某个分支的深度扩展,请随时告知!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值