【JavaWeb】MySQL上篇

🔥 本文由 程序喵正在路上 原创,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,选择 “命令提示符”,选择右侧的 “以管理员身份运行”。

  1. 敲入 net stop mysql,回车。

  2. 再敲入mysqld -remove mysql,回车。

  3. 最后删除MySQL目录及相关的环境变量。

  4. 卸载完成。

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 的理想解决方案。

    在这里插入图片描述

  • 官网: https://www.jetbrains.com/zh-cn/datagrip/

  • IDEA 中已经集成了 DataGrip,所以我们可以不用再安装 DataGrip

如何使用IDEA中集成的DataGrip

  1. 创建一个空项目,我们可以在右上角看到有一个 Database 的标志

    在这里插入图片描述

  2. 创建数据库连接

    点击加号 → \rightarrow Data Source → \rightarrow MySQL:

    在这里插入图片描述

    点击下面的 Download 下载数据库连接驱动:

    在这里插入图片描述

    填写用户名 root 和安装 MySQL 时设置的密码,点击 Test Connection 测试一下是否能够连接:

    在这里插入图片描述

    可以连接:

    在这里插入图片描述

    点击 OK,这样就创建了一个数据库:

    在这里插入图片描述

  3. 认识界面

    点击 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, ...);

示例:

  1. 为 tb_emp 表的 username, name, gender 字段 插入值

    insert into tb_emp(username,name,gender,create_time,update_time) 
    	values ('wuji','张无忌',1,now(),now());
    
  2. 为 tb_emp 表的所有字段插入值

    insert into tb_emp 
    	values (null,'zhiruo','123','周芷若',2,'1.jpg',1,'2020-01-01',now(),now());
    
  3. 批量为 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 条件 ] ;

示例:

  1. 将 tb_emp 表的 ID 为 1 的员工姓名 name 字段更新为 ‘张三’

    update tb_emp set name = '张三', update_time = now() where id = 1;
    
  2. 将 tb_emp 表的所有员工的入职日期更新为 ‘2020-01-01’

    update tb_emp set entrydate = '2020-01-01', update_time = now();
    

注意事项

  • 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据

删除数据delete

  • 删除数据:delete from 表名 [ where 条件 ];

示例:

  1. 删除 tb_emp 表中 ID 为 1 的员工

    delete from tb_emp where id = 1;
    
  2. 删除 tb_emp 表中的所有员工

    delete from tb_emp;
    

注意事项

  • DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据
  • DELETE 语句不能删除某一个字段的值 (如果要操作,可以使用UPDATE,将该字段的值置为NULL)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序喵正在路上

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值