69期-Java SE-030_MySQL-001-002 数据库的基本介绍(定义、创建等)

### 数据库

传统关系型数据库:MySQL、Oracle、SQLServer

非关系型数据库NoSQL(Not Only SQL):MongoDB、Redis

Java SE 哪些组件可以保存数据?

1、变量、数组、集合,缺点:程序一旦重启,数据全部丢失,无法做到持久化保存。

2、XML 文件可以保存数据,持久化保存,缺点:存取很麻烦,需要借助于 dom4j 来解析 XML 文件,数据之间的关联关系不够灵活,存储的数据量有限。

3、IO流可以将数据保存到本地硬盘,同时可以自定义存储格式,word、excel、txt,缺点:没有结构化的框架,没有特定的体系来维护数据之间的关联关系,可操作性不高,存储的数据量有限。



DataBase(数据库)就是一个存储数据的仓库,运行在计算机上的一种服务,为了方便数据的存储和管理,它可以将数据按照特定的规律存储在磁盘中,同时可以存储海量的数据。

通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据。

- 保存数据
- 管理数据(增删改查 CRUD)

Create 增加

Read 读取

Update 修改

Delete 删除

所以数据库全面地讲应该是数据库管理系统 DBMS(DataBase Management System)



MySQL

DataGrip、Navicat 数据库可视化管理工具



数据库存储引擎:

存储引擎其实就是如果存储数据、如何为存储的数据建立索引、如何更新、如何查询等技术的实现方法。

关系型数据库中的数据是以表的形式来存储的,所以存储引擎也可以称为表类型。

MySQL 提供了很多中存储引擎,SQL 专门用来管理数据库的编程语言。

```sql
show engines;
```

Engine:存储引擎的名称

Support:MySQL 是否支持该引擎

Comment:对引擎的描述

Transactions:是否支持事务

XA:是否支持分布式事务

SavePoints:是否支持保存点,以便进行事务回滚。

MySQL 数据库默认使用 InnoDB 存储引擎,InnoDB 对事务的处理能力非常强大,是其他存储引擎所不能比拟的。

InnoDB 存储引擎支持自增,自增列的值不能为空,且必须唯一,MySQL 中规定自增列必须是主键。

InnoDB 存储引擎支持外键。

InnoDB 优势在于提供了良好的事务管理能力和崩溃修复能力,并发控制。

缺点是读写效率稍差,占用的数据空间相对较大。



如何管理数据库?

通过 SQL 语言来管理数据库的, SQL 语言也是一种编程语言,专门用来处理数据库的。

- DML(数据操作语言)操作数据库中包含的数据(insertupdatedelete- DDL(数据定义语言)创建、删除、修改数据库、数据表(createdropalter- DQL(数据查询语言)对数据库中的数据进行查询(select- DCL(数据控制语言)用来控制数据库组件的存取(事务)(commitrollback)



学习数据库,需要掌握两部分内容

1、掌握数据库的使用(Navicate、DataGrip 可视化管理工具,SQL 语句)

2、设计数据库,根据具体的项目需求,设计数据表之间的关联关系。

数据库的设计非常重要,直接决定项目的质量,数据库设计驱动程序的编写。



数据库的组成:

一个数据库由多张数据表组成,数据是保存在数据表中的。

数据表由两部分组成

- 表结构,表的设计。 列信息
- 表数据,表中保存的数据。 行信息



```java
public Class User{
    private int id;
  private String name;
  private char gender;
  private Date birthday;
}
```

```java
User user = new User();
user.setId(1);
user.setName("张三");
user.setGender('');
user.setDate("2019-01-01");

User user2 = new User();
user2.setId(2);
user2.setName("李四");
user2.setGender('');
user2.setDate("2000-01-01");
```



创建数据库—》创建数据表——〉添加数据

```sql
create database 数据库名称
```

```sql
create database mytest default character set utf8 collate utf8_general_ci;
```

default character set utf8:设置数据库的编码方式,支持中文。

collate utf8_general_ci:设置数据库的校验字符集

utf8_general_ci:不区分大小写

utf8_bin:区分大小写

B:66 a:97



```sql
create table 表名(表的结构)
```

```sql
create table user(
    id int,
    name varchar(11)
)
```



```sql
insert into 表名(字段列表) values(值)
```

```sql
insert into user(id,name) values(1,'a')
```



```sql
select * from 表名;
```

```sql
select * from user;
```

```sql
#按照id的值进行生序排列,默认值为asc
select * from user order by id asc;
```

```sql
#按照id的值进行降序排列
select * from user order by id desc;
```

 DataGrid

 DataGrid需要driver驱动:mysql-connector-java-5.1.46.jar,Navicat不需要

 

 

猜你喜欢

转载自www.cnblogs.com/HiJackykun/p/11110722.html