【Java Web】006 -- MySQL(DDL & DML)

目录

前言

1、什么是数据库?

2、目前主流的关系型数据库有哪些?

3、课程安排

一、MySQL概述

1、安装 & 配置

①、安装

②、配置

③、MySQL-企业开发使用方式

2、MySQL的数据模型

①、关系型数据库

②、数据模型

3、SQL简介

①、SQL通用语法

②、SQL分类

③、小结

二、数据库设计 -- DDL

1、数据库的常见操作

①、项目开发流程

②、查询数据库

③、创建数据库

④、使用数据库

⑤、删除数据库

2、图形化工具

①、DataGrip

②、IDEA中DataGrip的使用

3、表操作

①、创建表结构

②、约束

③、主键自增

④、数据类型

⑤、案例(根据产品原型/需求创建表(设计合理的数据类型、长度、约束) )

⑥、设计表流程

⑦、查询表操作

⑧、修改表结构(alter)

⑨、删除表操作(drop)

⑩、小结

三、数据库操作 -- DML

1、添加(insert)

2、修改(update)

3、删除(delete)

4、小结


前言

1、什么是数据库?

数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库

数据是存储在数据库中的,那我们要如何来操作数据库以及数据库中所存放的数据呢?

那这里呢,会涉及到一个软件:数据库管理系统(DataBase Management System,简称DBMS)

- DBMS是操作和管理数据库的大型软件。将来我们只需要操作这个软件,就可以通过这个软件来操纵和管理数据库了。

此时又出现一个问题:DBMS这个软件怎么知道要操作的是哪个数据库、哪个数据呢?是对数据做修改还是查询呢?

- 需要给DBMS软件发送一条指令,告诉这个软件我们要执行的是什么样的操作,要对哪个数据进行操作。而这个指令就是SQL语句

2、目前主流的关系型数据库有哪些?

目前主流的关系型数据库:(SQL语句是操作关系型数据库的统一标准)

3、课程安排

一、MySQL概述

1、安装 & 配置

①、安装

官网下载地址: MySQL :: Download MySQL Community Server (Archived Versions)

②、配置

MySQL服务器启动完毕后,然后再使用如下指令,来连接MySQL服务器:

mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -P端口号]

-h  参数不加,默认连接的是本地 127.0.0.1 的MySQL服务器

-P  参数不加,默认连接的端口号是 3306

③、MySQL-企业开发使用方式

在真实的企业开发中,MySQL数据库服务器是不会在我们本地安装的,是在公司的服务器上安装的,而服务器还需要放置在专门的IDC机房中的,IDC机房呢,就需要保证恒温、恒湿、恒压,而且还要保证网络、电源的可靠性(备用电源及网络)

那我们要想使用服务器上的这台MySQL服务器,就需要在我们的电脑上去远程连接这台MySQL。 而服务器上安装的MySQL数据库呢,并不是你一个人在访问,我们项目组的其他开发人员也是需要访问这台MySQL的:

我们在学习阶段,如果想提前体验一下企业中数据库的使用方式,可以借助于VMware虚拟机来实现。我们可以在我们的电脑上安装一个VMware,然后在Vmware虚拟机上在安装一个服务器操作系统Linux,然后再在Linux服务器上安装各种企业级软件:

通过MySQL的客户端命令行,如何来连接服务器上部署的MySQL :

mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -P端口号]

2、MySQL的数据模型

①、关系型数据库

所谓二维表,指的是由行和列组成的表,我们之前提到的MySQL、Oracle、DB2、SQLServer这些都是属于关系型数据库,里面都是基于二维表存储数据的。

结论基于二维表存储数据的数据库就称为关系型数据库,不是基于二维表存储数据的数据库,就是非关系型数据库(比如大家后面要学习的Redis,就属于非关系型数据库)。

②、数据模型

MySQL是关系型数据库,是基于二维表进行数据存储的,具体的结构图下:

在Mysql数据库服务器当中存储数据,你需要

1. 先去创建数据库(可以创建多个数据库,之间是相互独立的)

2. 在数据库下再去创建数据表(一个数据库下可以创建多张表)

3. 再将数据存放在数据表中(一张表可以存储多行数据)

3、SQL简介

SQL:结构化查询语言。一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。

①、SQL通用语法

②、SQL分类

③、小结

二、数据库设计 -- DDL

数据库的设计就是来定义数据库,定义表结构以及表中的字段

我们在进行数据库设计,需要使用到刚才所介绍SQL分类中的DDL语句。

DDL英文全称是Data Definition Language(数据定义语言),用来定义数据库对象(数据库、表)。

DDL中数据库的常见操作:查询、创建、使用、删除

1、数据库的常见操作

①、项目开发流程

在上述的流程当中,针对于数据库来说,主要包括三个阶段:

1. 数据库设计阶段

   - 参照页面原型以及需求文档设计数据库表结构

2. 数据库操作阶段

   - 根据业务功能的实现,编写SQL语句对数据表中的数据进行增删改查操作

3. 数据库优化阶段

   - 通过数据库的优化来提高数据库的访问性能。优化手段:索引、SQL优化、分库分表等

②、查询数据库

示例:

查询当前正在使用的数据库:

③、创建数据库

注意:在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。

④、使用数据库

示例:

⑤、删除数据库

示例:

2、图形化工具

在命令行当中来敲这些SQL语句很不方便,主要的原因有以下 3 点:

1. 没有任何代码提示。(全靠记忆,容易敲错字母造成执行报错)

2. 操作繁琐,影响开发效率。(所有的功能操作都是通过SQL语句来完成的)

3. 编写过的SQL代码无法保存。

①、DataGrip

在项目开发当中,通常为了提高开发效率,都会借助于现成的图形化管理工具来操作数据库:

DataGrip这款工具可以不用安装,因为Jetbrains公司已经将DataGrip这款工具的功能已经集成到了 IDEA当中,所以我们就可以使用IDEA来作为一款图形化界面工具来操作Mysql数据库

官网: DataGrip:由 JetBrains 开发的数据库和 SQL 跨平台 IDE

②、IDEA中DataGrip的使用

连接数据库

Ⅰ、打开IDEA自带的Database

Ⅱ、配置MySQL

Ⅲ、输入相关信息

Ⅳ、下载MySQL连接驱动

Ⅴ、测试数据库连接

Ⅵ、保存配置

操作数据库

创建数据库:

查看所有数据库:

查找之前写过的SQL语句文件:

3、表操作

关于表结构的操作也是包含四个部分:创建表、查询表、修改表、删除表

①、创建表结构

示例:

效果展示:

②、约束

想要限制字段所存储的数据,就需要用到数据库中的约束

概念:所谓约束就是作用在表中字段上的规则,用于限制存储在表中的数据。

作用:就是来保证数据库当中数据的正确性、有效性和完整性。(后面的学习会验证这些)

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束

示例:

效果展示:(非空约束)

正确数据:

③、主键自增

id字段下存储的值,如果由我们自己来维护会比较麻烦(必须保证值的唯一性)。MySQL数据库为了解决这个问题,给我们提供了一个关键字:auto_increment(自动增长),用在主键定义后(primary key)

④、数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型字符串类型日期时间类型

数值类型:

示例: (尽可能的在业务允许的情况下,选择占用磁盘小的数据类型,这样就能节省磁盘空间)

    年龄字段 ---不会出现负数, 而且人的年龄不会太大

age tinyint unsigned

分数 ---总分100分, 最多出现一位小数

score double(4,1)

字符串类型

注意点char varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。

示例

    用户名 username ---长度不定, 最长不会超过50

username varchar(50)

手机号 phone ---固定长度为11

phone char(11)

日期时间类型

示例:

生日字段  birthday ---生日只需要年月日 

birthday date

创建时间 createtime --- 需要精确到时分秒

createtime  datetime

⑤、案例(根据产品原型/需求创建表(设计合理的数据类型、长度、约束) )

原型描述:

示例

create table emp (

  id int unsigned primary key auto_increment comment 'ID',

  username varchar(20) not null unique comment '用户名',

  password varchar(32) default '123456' comment '密码',

  name varchar(10) not null comment '姓名',

  gender tinyint unsigned not null comment '性别, 说明: 1 男, 2 女',

  image varchar(300) comment '图像',

  job tinyint unsigned comment '职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管',

  entrydate date comment '入职时间',

  create_time datetime not null comment '创建时间',

  update_time datetime not null comment '修改时间'

) comment '员工表';

效果展示:

GUI操作:

⑥、设计表流程

设计一张表,基本的流程如下

1. 阅读页面原型及需求文档

2. 基于页面原则和需求文档,确定原型字段(类型、长度限制、约束)

3. 再增加表设计所需要的业务基础字段(id主键、插入时间、修改时间)

⑦、查询表操作

⑧、修改表结构(alter)

示例

⑨、删除表操作(drop)

⑩、小结

三、数据库操作 -- DML

DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

1、添加(insert)

Insert操作的注意事项

1. 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。

2. 字符串和日期型数据应该包含在引号中。

3. 插入的数据大小,应该在字段的规定范围内。

案例1:向tb_emp表的username、name、gender字段插入数据

案例2:向tb_emp表的所有字段插入数据

案例3:批量向tb_emp表的username、name、gender字段插入数据

2、修改(update)

案例1:将tb_emp表中id为1的员工,姓名name字段更新为'张三'

案例2:将tb_emp表的所有员工入职日期更新为'2010-01-01'

注意事项:

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

2. 在修改数据时,一般需要同时修改公共字段update_time,将其修改为当前操作时间。

3、删除(delete)

案例1:删除tb_emp表中id为1的员工

案例2:删除tb_emp表中所有员工

4、小结

猜你喜欢

转载自blog.csdn.net/qq_41071754/article/details/129914467