—— 化学有一次考试上90就改名

视频链接: https://njupt-sast.feishu.cn/minutes/obcn9p3b7e3ihx7251whk41x?from=from_copylink

Ⅰ、认识和安装MySql

一、什么是数据库

概念:是一种安装在操作系统之上的数据仓库。

作用:储存管理数据

二、数据库分类

1.关系型数据库:SQL

  • MySQL、Oracle、Sql Server、DB2、SQLlite
  • 通过表和表之间,行和列之间的关系进行数据的存储
  • 通过外键关联来建立表与表之间的关系

2.非关系型数据库

  • Redis、MongoDB
  • 指数据以 对象 的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

三、数据库管理系统(DBMS)

  • 数据库的管理 软件 ,科学有效的管理、维护和获取我们的数据
  • MySQL 就是数据库管理系统

四、安装MySql数据库:详见MySql安装保姆级教程.md

Ⅱ、数据库操作

一、基本命令(如果是命令行要以管理员身份运行)

所有语句都要以分号结尾

show databases; –查看当前所有的数据库
use 数据库名; –打开指定的数据库
show tables; –查看所有的表
describe/desc 表名; –显示表的信息
create database 数据库名; –创建一个数据库
drop database 数据库名; –删除数据库
exit –退出连接
– –单行注释

–单行注释

/*…*/ –多行注释

二、数据库列类型

数值

数据类型 描述 大小
tinyint 十分小的数据 1bit
smallint 较小数据 2bit
mediumint 中等大小的数据 3bit
int 标准整数 4bit
bigint 较大数据 8bit
float 浮点 4bit
double 浮点 8bit
decimal 字符串形式浮点

字符串

数据类型 描述 大小
char 固定大小字符串 0-255
varchar 可变字符串 0-65535
tinytext 微型文本 2^8-1
text 文本串 2^16-1

时间日期

数据类型 描述 格式
data 日期格式 YYYY-MM-DD
time 时间格式 HH: mm: ss
datatime 最常用时间格式 YYYY-MM-DD HH: mm: ss
timestamp 时间戳,1970.1.1到现在的毫秒数
year 年份表示

null

空值,无法用于计算

三、字段属性

  1. 主键 主键是一个列或者多个列的组合(主键可以有多个),其值能唯一地标识表中的每一行。也就是说,我们在设计表时,需要有一个东西能够让每一行唯一确定,所以主键是强制要被设定的。并且,设定主键之后,主键是不能为null值的。另外如果我们有两个相同的主键,会报错误。 一般在开发中,我们基本会将id设置为主键,之后给一个自动递增防止重复。
  2. 默认值默认值直观易懂,就是每个字段在初始化时如果没有赋值,那么就会给予一个设定的默认值。
  3. 自增默认每次增加一条数据记录时都会在原有的基础上+1,也可以自己设置自增的步进。
  4. 无符号相当于unsigned,声明这一列的数据不能是负数。
  5. 填充零字面意思,不够的位数使用0来填充,比如你使用了一个长度为3的int类型的字段。前面的空位会用0自动填充。

四、数据操作语言(DML)

总括:增删改查

基本语法和简单举例

1.insert(增)

– 普通用法
INSERT INTO student(name) VALUES (‘zsr’);

– 插入多条数据
INSERT INTO student(name,pwd,sex) VALUES (‘zsr’,’200024’,’男’),(‘gcc’,’000421’,’女’);

– 省略字段
INSERT INTO student VALUES (5,’Bareth’,’123456’,’男’,’2000-02-04’,’武汉’,‘1412@qq.com‘,1);

语法:

INSERT INTO 表名([字段1,字段2..])VALUES(‘值1’,’值2’..),[(‘值1’,’值2’..)..];

注意:

  1. 字段和字段之间使用英文逗号隔开
  2. 字段是可以省略的,但是值必须完整且一一对应
  3. 可以同时插入多条数据,VALUES后面的值需要使用逗号隔开

2.delete(删)

– 删除数据(避免这样写,会全部删除)
DELETE FROM student;

– 删除指定数据
DELETE FROM student WHERE id=1;

语法:

DELETE FROM 表名 [WHERE 条件]

3.update(改)

– 修改学员名字,指定条件
UPDATE student SET name=’zsr204’ WHERE id=1;

– 不指定条件的情况,会改动所有表
UPDATE student SET name=’zsr204’;

– 修改多个属性
UPDATE student SET name=’zsr’,address=’湖北’ WHERE id=1;

– 通过多个条件定位数据
UPDATE student SET name=’zsr204’ WHERE name=’zsr’ AND pwd=’200024’;

语法:

UPDATE 表名 SET 字段1=值1,[字段2=值2…] WHERE 条件[];

4.select(查)

这里介绍常见的两种查询即条件查询和模糊查询,对于分组查询、子查询和连接查询可以自己用到的时候再去学习。

条件查询(关键词where)

例:SELECT * FROM student WHERE name = ‘cxy’ AND age = 18;

用人话来说:从student数据库中找名字为cxy且年龄为18的数据

SELECT * FROM data WHERE number BETWEEN 1 AND 100 ;

用人话来说:从data数据库中找数字位于1-100闭区间的数据

SELECT * FROM data WHERE number IN(‘1’, ‘3’);

用人话来说:从data数据库中找数字为1或3的数据

模糊查询(关键字like)

举例:SELECT * FROM student WHERE name LIKE ‘乐%’;

用人话来说:从student数据库找名字以乐开头的数据

SELECT * FROM student WHERE name LIKE ‘_ nice’;

用人话来说:从student数据库找名字是任意 一个 字符+nice的数据

更多更详细的MySql学习可以戳这里

Ⅲ、Mybatis

有啥用?简单一句话:更方便地建立pojo实体类(java实体对象)和数据库的数据对应以及更灵活地进行数据库操作

springboot整合MyBaties

image-20231216220154267

image-20231216220210835

如果是已经创建的springboot项目可以手动添加依赖( 以下版本仅供参考,最好使用和自己springboot匹配的版本依赖)

**dependency** \>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 \< **groupId** \>com.mysql\</ **groupId** \>
\< **artifactId** \>mysql-connector-j\</ **artifactId** \>
\< **scope** \>runtime\</ **scope** \>
\</ **dependency** \>
_\<!-- mysql __依赖导入__ --\>_
\< **dependency** \>
\< **groupId** \>org.mybatis.spring.boot\</ **groupId** \>
\< **artifactId** \>mybatis-spring-boot-starter\</ **artifactId** \>
\< **version** \>3.0.2\</ **version** \>
\</ **dependency** \>
_\<!-- mybatis __依赖导入__ --\>_
\< **dependency** \>
\< **groupId** \>com.alibaba\</ **groupId** \>
\< **artifactId** \>druid\</ **artifactId** \>
\< **version** \>1.1.16\</ **version** \>
\</ **dependency** \>
_\<!--druid __数据连接池依赖导入__ --\>_
\< **dependency** \>
\< **groupId** \>junit\</ **groupId** \>
\< **artifactId** \>junit\</ **artifactId** \>
\< **scope** \>test\</ **scope** \>
\</ **dependency** \>
_\<!-- __测试类依赖导入__ --\>_
\< **dependency** \>
\< **groupId** \>org.projectlombok\</ **groupId** \>
\< **artifactId** \>lombok\</ **artifactId** \>
\< **version** \>1.18.28\</ **version** \>
\</ **dependency** \>
_\<!--lombok __依赖导入(一键生成标准__ javabean __)__ --\>_

image-20231216220343701

image-20231216220353454

image-20231216220400496