基础知识
约 835 字大约 3 分钟
2025-01-15
1.MySQL 特点
MySQL 是一种快速、可靠、可扩展且易于使用的开源关系数据库系统,旨在处理关键任务、高负载的生产应用程序。
MySQL 功能包括所有 SQL 标准命令以及事务和 ACID 合规性(代表原子性、一致性、隔离性和持久性)。
2.字段类型
- 整数类型(五种): tinyint、smallint、mediumint、int、bigint(1,2,3,4,8 字节)
- 小数类型(三种): float、double、decimal;(金额使用 decimal 存储,不能使用 float 或者 double 的原因:二进制存储,有误差)
- 字符串类型: varchar、char、blob(二进制存储)、text(字符存储)、enum
- 时间类型: date(日期)、datetime(日期时间)、timestamp(时分秒)、time(时分秒)、year(最小时间粒度是秒)
补充:MySQL 数据类型和 Java 数据类型的对应关系,其中括号内为 Java 数据类型
- 整数类型: tinyint(byte)、smallint(short)、int(int)、bigint(long)
- 小数类型: float(float)、double(double)、decimal(bigdecimal)
- 字符串类型: char、varchar(string)
- 时间类型: time(java.sql.time)、date(java.sql.date)
3.基本语句
# 创建数据库
create database 数据库名
# 创建数据表
create table 表名(
字段1名 字段1类型,
字段1名 字段1类型);# 增
insert into 表名 (column1, column2, ...) VALUES (value1, value2, ...);
# 删
delete from table_name where condition;
# 改
update table_name
set column1 = value1, column2 = value2
where condition;
# 查
select column1, column2
from table_name
where condition;补充:清空表数据的三种方法:
| truncate | drop | delete | |
|---|---|---|---|
| 作用 | 清空表数据,不支持 where | 删除表数据、结构、索引 | 删除数据 |
| 语句类型 | DDL,数据库定义 | DDL,数据库定义 | DML,数据库操作 |
| 效率 | 高 | 最高 | 低 |
| 安全性 | 不安全,不记录日志 | 不安全,不记录日志 | 安全,记录日志,可回滚 |
4.SQL 语句书写/执行顺序
书写顺序:
select <字段名> from <表名> join <表名> on <连接条件> where <筛选条件> group by <字段名> having <筛选条件> -- 根据group by选择的字段,进行条件筛选 union order by <字段名> limit <限制行数>;执行顺序:
- FORM:选择 from 后面跟的表,产生虚拟表 1。
- ON:ON 是 JOIN 的连接条件,符合连接条件的行会被记录在虚拟表 2 中。
- JOIN:如果指定了 LEFT JOIN,那么保留表中未匹配的行就会作为外部行添加到虚拟表 2 中,产生虚拟表 3。如果有多个 JOIN 链接,会重复执行步骤 1~3,直到处理完所有表。
- WHERE:对虚拟表 3 进行 WHERE 条件过滤,符合条件的记录会被插入到虚拟表 4 中。
- GROUP BY:根据 GROUP BY 子句中的列,对虚拟表 2 中的记录进行分组操作,产生虚拟表 5。
- HAVING:对虚拟表 5 进行 HAVING 过滤,符合条件的记录会被插入到虚拟表 6 中。
- SELECT:SELECT 到一步才执行,选择指定的列,插入到虚拟表 7 中。
- UNION:UNION 连接的两个 SELECT 查询语句,会重复执行步骤 1~7,产生两个虚拟表 7,UNION 会将这些记录合并到虚拟表 8 中。
- ORDER BY: 将虚拟表 8 中的记录进行排序,虚拟表 9。
- LIMIT:取出指定行的记录,返回结果集。
版权所有
版权归属:haipeng-lin