🔥 本文由 程序喵正在路上 原创,CSDN首发!
💖 系列专栏:JavaWeb开发
🌠 首发时间:2024年3月4日
🦋 欢迎关注🖱点赞👍收藏🌟留言🐾
数据库概述
什么是数据库?
-
数据库:DataBase(DB),是存储和管理数据的仓库
-
数据库管理系统:DataBase Management System (DBMS),操纵和管理数据库的大型软件
-
SQL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准
数据库产品
MySQL概述
安装
MySQL官方提供了两种不同的版本:
下载
官网下载地址:https://dev.mysql.com/downloads/mysql/
选择 MySQL 版本和操作系统,然后找到 zip 压缩包下载即可
我这里选择下载的是 8.0.36 版本
选择开始下载
解压
下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到 MySQL 8.0.36 的软件本体了(就是一个文件夹)
配置
添加环境变量
在电脑中找到 此电脑,右键 此电脑 → \rightarrow → 属性 → \rightarrow → 高级系统设置 → \rightarrow → 环境变量
新建系统变量 MYSQL_HOME:
在系统变量中找到 Path,添加 %MYSQL_HOME%\bin 进去:
验证是否添加成功,以管理员身份打开命令行窗口,输入 mysql 后回车,得到如下图所示的提示,即为配置成功:
初始化MySQL
以管理员身份,运行命令行窗口,输入下面的指令:
mysqld --initialize-insecure
稍微等待一会,如果出现没有出现报错信息,则证明 data 目录初始化没有问题,此时再查看 MySQL 目录下已经有 data 目录生成。
注册MySQL服务
以管理员身份,运行命令行窗口,输入下面的指令:
mysqld -install
现在你的计算机上已经安装好了 MySQL 服务了。
启动MySQL服务
在黑框里敲入 net start mysql
,回车
net start mysql // 启动mysql服务
net stop mysql // 停止mysql服务
修改默认账户密码
在黑框里敲入 mysqladmin -u root password 1234
,这里的 1234
就是指默认管理员 (即root账户) 的密码,可以自行修改成你喜欢的。
mysqladmin -u root password 1234
登录MySQL
右键开始菜单,选择 命令提示符
,打开黑框。
在黑框中输入 mysql -uroot -p1234
,回车,出现下图且左下角为 mysql>
,则登录成功。
mysql -uroot -p1234
退出mysql:
exit
quit
登陆参数:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
卸载MySQL
如果你想卸载 MySQL,也很简单。
点击开始菜单,输入 cmd,选择 “命令提示符”,选择右侧的 “以管理员身份运行”。
-
敲入
net stop mysql
,回车。 -
再敲入
mysqld -remove mysql
,回车。 -
最后删除MySQL目录及相关的环境变量。
-
卸载完成。
MySQL-企业开发使用方式
mysql -u用户名 -p密码 [ -h数据库服务器IP地址 -P端口号 ]
数据模型
关系型数据库(RDBMS): 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
特点:
- 使用表存储数据,格式统一,便于维护
- 使用 SQL 语言操作,标准统一,使用方便,可用于复杂查询
前面,我们在自己的电脑上安装了 MySQL 数据库,所以现在我们的计算机可以看作是一台 MySQL 数据库服务器,通过客户端我们就可以访问这台服务器:
MySQL 数据库中的数据以文件的形式存放在 MySQL 安装目录下的 data 文件夹中:
当我们新创建一个数据库,data 下就会多一个文件夹:
SQL简介
SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。
通用语法
- SQL 语句可以单行或多行书写,以分号结尾
- SQL 语句可以使用空格/缩进来增强语句的可读性
- MySQL 数据库的 SQL 语句不区分大小写
- 注释:
- 单行注释:
-- 注释内容
或# 注释内容
(MySQL特有) - 多行注释:
/* 注释内容 */
- 单行注释:
SQL分类
SQL语句通常被分为四大类:
数据库设计-DDL
DDL 英文全称是 Data Definition Language,数据定义语言,用来定义数据库对象(数据库、表)。
数据库
DDL(数据库操作)
注意:上述语法中的 database
,也可以替换成 schema
。如:create schema db01;
图形化界面
用命令行窗口来操作数据库不是很方便,因此我们下面来介绍一款图形化界面 DataGrip
DataGrip
-
介绍:DataGrip 是 JetBrains 旗下的一款数据库管理工具,是管理和开发 MySQL、Oracle、PostgreSQL 的理想解决方案。
-
IDEA 中已经集成了 DataGrip,所以我们可以不用再安装 DataGrip
如何使用IDEA中集成的DataGrip
-
创建一个空项目,我们可以在右上角看到有一个 Database 的标志
-
创建数据库连接
点击加号 → \rightarrow → Data Source → \rightarrow → MySQL:
点击下面的 Download 下载数据库连接驱动:
填写用户名 root 和安装 MySQL 时设置的密码,点击 Test Connection 测试一下是否能够连接:
可以连接:
点击 OK,这样就创建了一个数据库:
-
认识界面
点击
1 of 5
,选择 All schemas 可以显示处所有的数据库,而 console 页面则是控制台界面,我们将在这里操作数据库:编写代码,选中要执行的语句,然后点击左上角绿色的三角符号即可以执行,执行结果会显示在下方:
在 console 的右上角可以选择当前使用的数据库:
如果你不小心关掉了 console 界面,可以右键 localhost 按照下列步骤找回:
表
创建
语法格式
create table 表名(
字段1 字段类型 [ 约束 ] [ comment 字段1注释 ],
......
字段n 字段类型 [ 约束 ] [ comment 字段n注释 ]
) [ comment 表注释 ];
约束
-
概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
-
目的:保证数据库中数据的正确性、有效性和完整性
创建示例
创建如下表:
代码:
-- 创建:基本语法(约束)
create table tb_user (
id int primary key auto_increment comment 'ID, 唯一标识',
username varchar(20) not null unique comment '用户名',
name varchar(10) not null comment '姓名',
age int comment '年龄',
gender char(1) default '男' comment '性别'
) comment '用户表';
执行结果:
数据类型
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
-
数值类型
注意:无符号的要在类型后面加上
unsigned
-
字符串类型
-
日期时间类型
-
图中标红的为常用类型
案例
根据页面原型给出的需求创建表 (设计合理的数据类型、长度、约束)
假设页面给出的一个员工表的需求如下:
添加员工时,会给员工设置一个默认的密码 123456,添加完成后,员工就可以通过该密码登录该后台管理系统了
下面我们演示一下如何用图形界面来创建这个表
在要创建表的数据库右键选择 New,再选择 Table,来到这个界面:
修改一下表名,点击 Columns 下的加号即可增加表格的栏目,一般我们都要先写一个 id 字段:
然后点击加号即可添加下一字段:
依此类推,最后点击 execute 创建表格即可:
注意,一般我们还会添加一个创建时间和修改时间,而且都是非空的
- create_time:记录的是当前这条数据插入的时间。 update_time:记录当前这条数据最后更新的时间。
查询
- 查询当前数据库所有表:
show tables;
- 查询表结构:
desc 表名;
- 查询建表语句:
show create table 表名;
修改
- 添加字段:
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
- 修改字段类型:
alter table 表名 modify 字段名 新数据类型(长度);
- 修改字段名和字段类型:
alter table 表名 change 旧字段名 新字段名 类型 (长度) [comment 注释] [约束];
- 删除字段:
alter table 表名 drop column 字段名;
- 修改表名:
rename table 表名 to 新表名;
这些操作我们在图形化界面中可以直接进行,所以这些语句了解一下即可
删除
- 删除表:
drop table [ if exists ] 表名;
数据库操作-DML
DML,英文全称是 Data Manipulation Language (数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
添加数据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, ...);
示例:
-
为 tb_emp 表的 username, name, gender 字段 插入值
insert into tb_emp(username,name,gender,create_time,update_time) values ('wuji','张无忌',1,now(),now());
-
为 tb_emp 表的所有字段插入值
insert into tb_emp values (null,'zhiruo','123','周芷若',2,'1.jpg',1,'2020-01-01',now(),now());
-
批量为 tb_emp 表的 username,name,gender 字段插入值
insert into tb_emp(username,name,gender,create_time,update_time) values ('weiyixiao','韦一笑',1,now(),now()), ('xiexun','谢逊',1,now(),now());
注意事项
- 插入数据时,指定的字段顺序需要与值的顺序是一一对应的
- 字符串和日期型数据应该包含在引号中
- 插入的数据大小,应该在字段的规定范围内
修改数据update
- 修改数据:
update 表名 set 字段名1 = 值1 , 字段名2 = 值2 , .... [ where 条件 ] ;
示例:
-
将 tb_emp 表的 ID 为 1 的员工姓名 name 字段更新为 ‘张三’
update tb_emp set name = '张三', update_time = now() where id = 1;
-
将 tb_emp 表的所有员工的入职日期更新为 ‘2020-01-01’
update tb_emp set entrydate = '2020-01-01', update_time = now();
注意事项
- 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
删除数据delete
- 删除数据:
delete from 表名 [ where 条件 ];
示例:
-
删除 tb_emp 表中 ID 为 1 的员工
delete from tb_emp where id = 1;
-
删除 tb_emp 表中的所有员工
delete from tb_emp;
注意事项
- DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
- DELETE 语句不能删除某一个字段的值 (如果要操作,可以使用UPDATE,将该字段的值置为NULL)