zoukankan      html  css  js  c++  java
  • 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不需要

     

     

  • 相关阅读:
    AIBigKaldi(二)| Kaldi的I/O机制(源码解析)
    OfficialKaldi(十四)| 从命令行角度来看Kaldi的 I / O
    GNU Make函数、变量、指令
    C/C++编码规范(google)
    [English]precede, be preceded by
    视频压缩技术、I帧、P帧、B帧
    SMB
    printf占位符
    使用 Yocto Project 构建自定义嵌入式 Linux 发行版
    gcc fpic fPIC
  • 原文地址:https://www.cnblogs.com/HiJackykun/p/11110722.html
Copyright © 2011-2022 走看看