MySQL进阶(回望MySQL)——从数据资产谈起 & MySQL的DOS命令、常用数据类型、SQL语句的分类 & SQL函数

博客从数据资产谈起,阐述数据库重要性与概念,介绍市场流行数据库厂商。重点讲解MySQL数据库,涵盖常用DOS命令、数据类型、百万数据性能调优等,还介绍了SQL分类(DML、DQL)及常用函数,如字符串、日期、数学等函数。

在这里插入图片描述

前言

SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言,它用于定义、操作和管理数据库中的数据。SQL是一种通用的语言,可以用于多种关系型数据库管理系统(RDBMS),如MySQL、Oracle、SQL Server等。

MySQL是一种开源的关系型数据库管理系统,它使用SQL作为其查询语言。MySQL是最流行的开源数据库之一,它具有高性能、可靠性和可扩展性。MySQL支持多用户、多线程和多表操作,可以在各种操作系统上运行。

因此,SQL是一种语言,而MySQL是一种关系型数据库管理系统,它使用SQL作为其查询语言。SQL可以用于其他关系型数据库管理系统,而MySQL是其中的一种。

本篇博客从数据资源谈起,阐述了数据库的重要性、相关概念等,然后介绍了MySQL数据库的DOS命令,数据类型,数据调优以及SQL分类,最后列举了SQL常用的函数,包括字符串、日期、数学、流程、聚合、分组等语句。

在这里插入图片描述

引出


1.从数据资源谈起,阐述了数据库的重要性、相关概念等;
2.介绍了MySQL数据库的DOS命令,数据类型,数据调优以及SQL分类;
3.列举了SQL常用的函数,包括字符串、日期、数学、流程、聚合、分组等语句;

从数据资产谈起

在这里插入图片描述

资产的概念

在这里插入图片描述

数据资产

我们讲数据资产,它是当今企业BSC最重要的核心要素,一个企业有三大核心要素:一是利润,二是人才,三十产品。然而每个企业每天经营同时,“资产不断的在流失“,比如人员的流失,比如人员离职后给公司留下的”财富“等。所以数据资产是当前最关注的核心点。 除了我们软件行业,很多行业都在慢慢的往数字化方向转型,目的是提高企业的竞争力,通过技术来提升市场的活跃度。

在这里插入图片描述

为什么学数据库?

在这里插入图片描述

数据库的基本概念

MySQL代表数据管理系统。

数据库就代表某个仓库

数据库里面存的就是表

数据库管理软件里面存放了很多数据库,数据库是通过本地文件来存储的。然后数据库里面是存储的表。

在这里插入图片描述

市场比较流行的数据库厂商

MySQL是免费开源的。

Oracle是一个全球非常厉害的数据厂商,Oracle

  • 收费的: 一年几百万美元,不能买断
    • 所有的金融系统全部都是Oracle
    • 赠送你一个MySql

微软体系下的:SQLServer

  • 买操作系统送的

开源的:PGSQL

在这里插入图片描述

MySQL数据库

MySQL常用DOS命令大全

一般而言,我们常用命令主要是在Linux系统下进行编写。作为windows系统一般会使用可视化工具进行数据库的操作。

在这里插入图片描述

MySQL常用的数据类型

java mysql 说明
String char (不可变) 、varchar (可变)、text (长文本,65535个字) 字符串
int tinyint、smallint、mediumint、 int、bigint 数值
flaot,double float(单精度)、double(双精度)、decimal 浮点
Date YEAR、TIME、DATE (日期)、DATETIME (日期和时间)、TIMESTAMP (日期和时间值) 日期
File、Stream BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB 二进制

在这里插入图片描述

百万数据性能调优

SHOW VARIABLES LIKE ‘autocommit’;

SHOW VARIABLES LIKE ‘autocommit’; 是一个MySQL查询语句,用于查看当前数据库连接的自动提交模式。

自动提交模式是指在执行每个SQL语句后是否自动提交事务。当自动提交模式开启时,每个SQL语句都会被立即提交,即使没有显式地使用COMMIT语句。当自动提交模式关闭时,需要显式地使用COMMIT语句来提交事务。

执行SHOW VARIABLES LIKE ‘autocommit’;查询语句后,会返回当前数据库连接的自动提交模式的值。如果返回值为ON,表示自动提交模式开启;如果返回值为OFF,表示自动提交模式关闭。

这个查询语句可以帮助你了解当前数据库连接的自动提交模式,以便在需要的时候进行相应的调整和处理。

在这里插入图片描述

package com.tianju;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * 用于模拟高吞吐量情况下添加数据
 * @ClassName: InsertBatchTest
 * @Description: TODO
 * @author Wen.J  434679924@qq.com
 * @date 2022-07-01 11:09:39
 */

public class InsertBatchTest {
   
   
    // 耗时:127732
    // 耗时:98122
    // 耗时:4334
    
    public static void main(String[] args) {
   
   
        test3();
    }
    
    // 原始写法
    public static void test1() {
   
   
        Connection conn = null;
        PreparedStatement cmd = null;
        try {
   
   
            int count = 50000; // 循环10000次
            conn = JDBCUtil.getConnection();
            String sql = "insert into goods values (? , ?)";
            cmd = conn.prepareStatement(sql);
            long start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
   
   
                cmd.setObject(1, (i+1));
                cmd.setObject(2, "商品" + (i+1));
                // cmd SQL预编译优化: insert into goods values (1 , '商品1')
                // 每循环一次都会去访问数据库。。。 访问1万次。。。
                // 提交事务了5万次
                cmd.executeUpdate();
            }
            long end = System.currentTimeMillis();
            System.out.println("耗时:" + (end - start));
        } catch (Exception e) {
   
   
            e.printStackTrace();
        } finally {
   
   
            JDBCUtil.close(conn, cmd);
        }
    }
    
    
    // 通过批量添加
    public static void test2() {
   
   
        Connection conn = null;
        PreparedStatement cmd = null;
        try {
   
   
            int count = 50000; // 循环10000次
            conn = JDBCUtil.getConnection();
            String sql = "insert into goods values (? , ?)";
            cmd = conn.prepareStatement(sql);
            long start = System.currentTimeMillis();
            for (int i = 0; i < count; i++) {
   
   
                cmd.setObject(1, (i+1));
                cmd.setObject(2, "商品" + (i+1));
                cmd.addBatch(); // 积攒SQL - >还没有访问数据库 - > 循环完毕后,将要积攒1万条SQL语句
                if (i % 1000 == 0) {
   
    // 每500提交一次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Arya's Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值