javaweb06-Mysql数据库

Mysql

一、概述#

1.1 数据模型#

关系型数据库RDBMS,由多张二维表组成的数据库

1.2 SQL#

  • DDL:数据定义语言
  • DML:数据操作语言
  • DQL:数据查询语言
  • DCL:数据控制语言,创建用户,控制数据库访问权限

二、sql语句#

2.1 DDL#

2.1.1 查询:#

  • show databases;
  • select database();

2.1.2 创建:#

  • create database;

2.1.3 删除:#

  • drop database;

2.1.4 约束:#

  • 非空约束:not null
  • 唯一约束:unique
  • 主键约束:非空且唯一,primary key,(auto_increment自增)
  • 默认约束:default
  • 外键约束:foreign key

2.1.5 数据类型#

  • 数值类型:int、decimal
  • 字符串类型:char(定长字符串)、varchar(变长字符串)
  • 日期时间类型:date、 datetime

2.2 DML#

2.2.1 添加数据:insert#

insert into table_name (字段名) values (字段值列表)

2.2.2 修改数据:update#

update table_name set 字段名 = 字段值 [where 条件]

2.2.3 删除数据:delete#

delete from table_name [where 条件]

2.3 DQL#

查询数据库中的记录

2.3.1 分组查询#

  • 聚合函数:将一列数据作为一个整体,进行纵向计算

  • select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

  • 执行顺序:where > 聚合函数 > having

2.3.2 排序查询#

order by

asc:升序(默认)

desc:降序

2.3.3 分页查询#

limit (起始索引,每页展示记录数)

起始索引 = (页码 - 1)* 每页展示记录数

三、多表设计#

3.1 一对多#

解决多表之间数据不一致性#

外键约束

3.2 一对一#

任意一方加入外键,关联另一表中的主键,并且添加unique约束

3.3 多对多#

建立第三张表,包含两张表的主键

四、多表查询#

4.1 概述#

从多张表中查询数据:笛卡尔积

分类:

  • 连接查询
    • 内连接
    • 外连接
  • 子查询(嵌套查询)

4.2 内连接#

隐式内连接:逗号分隔,where条件

显示内连接:join……on条件

起别名

弊:无关联的数据查询不到

4.3 外连接#

左外连接:显示左表的全部数据

右外连接:显示右表的全部数据

4.4 子查询#

4.4.1 标量子查询#

子查询返回的结果是单个的值,单行单列。

常用操作符:= <> > < >= <=

4.4.2 列子查询#

子查询返回的是一列数据

常用操作符:in,not in

4.4.3 行子查询#

合并多个条件

4.4.4 表子查询#

将子查询返回的结果,作为一张临时表,进行连接查询等操作

五、事务#

5.1 概述#

事务是一组操作的集合,这些操作要么同时成功,要么同时失败。

  • 开启事务:start transaction;
  • 提交事务:commit;
  • 回滚事务:rollback;

5.2 四大特性#

  • 原子性:
  • 一致性:
  • 隔离性:
  • 持久性:

六、索引#

6.1 介绍#

数据结构,提高执行效率

  • 优:提高查询效率、排序效率
  • 缺:降低增删改的效率

6.2 结构#

B+Tree结构

多路平衡搜索树,降低树的深度

6.3 语法#

  • 创建:create index 索引名 on 表名;
  • 查询:show index from 表名;
  • 删除:drop index 索引名 on 表名;

注:

  1. 添加主键时会自动创建主键索引
  2. 添加unique约束会自动创建唯一索引
posted @   forest-pan  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示
CONTENTS