基础知识
约 762 字大约 3 分钟
2025-01-15
1.MySQL特点
2.安装MySQL
待写
3.字段类型
- 整数类型(五种): 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)
4.基本语句
# 创建数据库
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,数据库操作 |
效率 | 高 | 最高 | 低 |
安全性 | 不安全,不记录日志 | 不安全,不记录日志 | 安全,记录日志,可回滚 |
5.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:取出指定行的记录,返回结果集。