
前言
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提交一次

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

被折叠的 条评论
为什么被折叠?



