MatrixOne从入门到实战04——MatrixOne的连接和建表

别再傻傻分不清了!STM32定时器里Prescaler和ClockDivision到底有啥区别? 本文深入解析STM32定时器中Prescaler和ClockDivision的区别与应用场景。Prescaler作为定时器的'心跳调节器',决定计数频率;而ClockDivision则是输入捕获的'抗噪滤镜',有效抑制高频噪声。通过实战案例和示波器实测数据,帮助开发者避免常见配置误区,提升嵌入式系统稳定性。 阅读详情

MatrixOne从入门到实战——MatrixOne的连接和建表

本章主要讲述如何使用不同方式连接MatrixOne以及进行表的创建。

连接MatrixOne

使用MySQL Client连接

使用MySQL Client连接mo服务时,我们需要在能够和MO服务通信的机器上准备一个mysql client。

安装MySQL Client
  • 卸载mariadb

    # 查询有无相关依赖
    rpm -qa |grep mariadb
    # 卸载相关依赖
    rpm -e xxx
    
  • 安装mysql-client

    # 下载以下rpm包
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.35-1.el7.x86_64.rpm
    
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.35-1.el7.x86_64.rpm
    
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.35-1.el7.x86_64.rpm
    # 安装rpm
    rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
    
    rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
    
使用mysql-client
 mysql -h 192.168.110.170 -P6001 -uroot -p
  • 连接成功后

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1001
    Server version: 0.5.0 MatrixOne
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> 
    

使用JDBC驱动

Java代码
  • 下载JDBC 连接器

  • 下载安装JDK

  • 具备一款代码编辑工具(IntelliJ IDEA,Eclipse)

  • 准备测试数据

    • MatrixOne 建表

      CREATE DATABASE test;
      USE  test;
      CREATE TABLE `user` (`id` int(11) ,`user_name` varchar(255) ,`sex` varchar(255));
      insert into user(id,user_name,sex) values('1', 'weder', 'man'), ('2', 'tom', 'man'), ('3', 'wederTom', 'man');
      select * from user;
      +------+-----------+------+
      | id   | user_name | sex  |
      +------+-----------+------+
      |    1 | weder     | man  |
      |    2 | tom       | man  |
      |    3 | wederTom  | man  |
      +------+-----------+------+          
      
    • 在IDEA中创建工程

      1. 启动IDEA之后,选择左上角的File > New > Project创建一个新的项目工程

      2. 在弹出的对话框中选择Maven > Next > 在Name中输入项目名称 >点击Finish

      3. 项目创建完成后,编辑项目中的pom.xml文件,增加以下内容:

            <dependencies>
                <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.47</version>
                </dependency>
            </dependencies>
        
      4. 然后点击页面右上角的maven的刷新按钮,加载依赖

      5. 此时选择src > main > java目录,鼠标右键点击选择 New > Java Class > 选择Class 并输入类名为:MoDemo

  • 编辑代码

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class MoDemo {
    
        //test为数据库名称
        // MySQL 8.0 以下版本选择
    //    static final String JdbcDriver = "com.mysql.jdbc.Driver";
    //    static final String Url = "jdbc:mysql://192.168.110.173:6001/test";
    
        // MySQL 8.0 以上版本选择
        static final String JdbcDriver = "com.mysql.jdbc.Driver";
        static final String Url =
                "jdbc:mysql://192.168.110.173:6001/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    
        //输入连接数据库的用户名与密码
        static final String User = "root";//输入你的数据库用户名
        static final String PassWord = "111";//输入你的数据库连接密码
    
        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            try {
                // 注册 JDBC 驱动
                Class.forName(JdbcDriver);
    
                // 打开链接
                System.out.println("连接数据库...");
                conn = (Connection) DriverManager.getConnection(Url, User, PassWord);
    
                // 执行查询
                System.out.println("输入sql语句后并执行...");
                stmt =  conn.createStatement();
                String sql;
                sql = "select * from user";// 这里填写需要的sql语句
                //执行sql语句
                ResultSet rs = stmt.executeQuery(sql);
    
                // 展开结果集数据库
                while (rs.next()) {
                    // 通过字段检索
                    int id = rs.getInt("id");//获取id值
                    String name = rs.getString("user_name");//获取user_name值
                    String sex = rs.getString("sex");//获取sex值
    
                    // 输出数据
                    System.out.println("id: " + id);
                    System.out.println("名字: " + name);
                    System.out.println("性别: " + sex);
                }
                // 完成后关闭
                rs.close();
                stmt.close();
                conn.close();
            } catch (SQLException se) {
                // 处理 JDBC 错误
                se.printStackTrace();
            } catch (Exception e) {
                // 处理 Class.forName 错误
                e.printStackTrace();
            } finally {
                // 关闭资源
                try {
                    if (stmt != null) {
                        stmt.close();
                    }
                } catch (SQLException se2) {
                }
                try {
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException se) {
                    se.printStackTrace();
                }
            }
            System.out.println("\n执行成功!");
        }
    }
    
  • 执行结果

    连接数据库...
    输入sql语句后并执行...
    id: 1
    名字: weder
    性别: man
    id: 2
    名字: tom
    性别: man
    id: 3
    名字: wederTom
    性别: man
    
    执行成功!
    
python代码
  • 环境要求

    • Python – one of the following:

    安装PIP

    python3 -m pip install PyMySQL
    
  • 准备测试数据

    CREATE DATABASE test;
    USE  test;
    CREATE TABLE `user` (`id` int(11) ,`user_name` varchar(255) ,`sex` varchar(255));
    insert into user(id,user_name,sex) values('1', 'weder', 'man'), ('2', 'tom', 'man'), ('3', 'wederTom', 'man');
    select * from user;
    +------+-----------+------+
    | id   | user_name | sex  |
    +------+-----------+------+
    |    1 | weder     | man  |
    |    2 | tom       | man  |
    |    3 | wederTom  | man  |
    +------+-----------+------+   
    
  • 具备一款代码编辑工具 (pycharm) 或者直接在Linux 上编辑python文件

  • 编辑代码

    import pymysql.cursors
    
    # Connect to the database
    connection = pymysql.connect(host='127.0.0.1',
                                 user='dump',
                                 password='111',
                                 database='test',
                                 cursorclass=pymysql.cursors.DictCursor)
    
    with connection:
        with connection.cursor() as cursor:
            # Create a new record
            sql = "INSERT INTO user (id,user_name,sex) VALUES (%s, %s, %s)"
            cursor.execute(sql, ('4', 'Jerry', 'man'))
    
        # connection is not autocommit by default. So you must commit to save
        # your changes.
        connection.commit()
    
        with connection.cursor() as cursor:
            # Read a single record
            sql = "SELECT id,user_name,sex FROM user WHERE id=%s"
            cursor.execute(sql, ('4',))
            result = cursor.fetchone()
            print(result)
    
  • 执行结果

    {'id': 4, 'user_name': 'Jerry', 'sex': 'man'}
    

建表

目前MatrixOne没有特殊的建表语法,建表时,只需要按照下列语法进行即可

CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
    name1 type1,
    name2 type2,
    ...
)
  • 示例

    创建普通表

    CREATE TABLE test(a int, b varchar(10));
    

    清空普通表

    目前还不支持truncate语法
    

    删除普通表

    drop table test;
    

    创建带有主键的表**(注意:MatrixOne 表名和列名不区分大小写,大写的表名和列名都会转为小写)**

    CREATE TABLE Persons (
        ID int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Age int,
        PRIMARY KEY (ID)
    );
    

    查看表:

    MySQL [ssb]> desc persons;
    +-----------+---------+------+------+---------+---------+
    | Field     | Type    | Null | Key  | Default | Comment |
    +-----------+---------+------+------+---------+---------+
    | id        | INT     | NO   | PRI  | NULL    |         |
    | lastname  | VARCHAR | NO   |      | NULL    |         |
    | firstname | VARCHAR | YES  |      | NULL    |         |
    | age       | INT     | YES  |      | NULL    |         |
    +-----------+---------+------+------+---------+---------+
    4 rows in set (0.00 sec)
    

    主键表目前支持多个字段作为主键,如下面的建表语句:

    MySQL [ssb]> CREATE TABLE Students (
             ID int NOT NULL,
             LastName varchar(255) NOT NULL,
             FirstName varchar(255),
             Age int,
             PRIMARY KEY (ID,LastName)
         );
    Query OK, 0 rows affected (0.01 sec)
    

    查看表:

    +-----------------------------+---------+------+------+---------+---------+
    | Field                       | Type    | Null | Key  | Default | Comment |
    +-----------------------------+---------+------+------+---------+---------+
    | id                          | INT     | NO   |      | NULL    |         |
    | lastname                    | VARCHAR | NO   |      | NULL    |         |
    | firstname                   | VARCHAR | YES  |      | NULL    |         |
    | age                         | INT     | YES  |      | NULL    |         |
    | __mo_cpkey_002id008lastname | VARCHAR | NO   | PRI  | NULL    |         |
    +-----------------------------+---------+------+------+---------+---------+
    5 rows in set (0.03 sec)
    

    这里会发现有一个隐藏字段是id和lastname结合的一个varchar 类型的字段,用来当做主键。

【华为OD机试真题】45、 分糖果 | 机试真题+思路参考+代码解析(C++、Java、Py、JS) ### 🎃题目描述 >小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 >  当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 >  小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。 阅读详情

相关推荐

【全开源】教育培训微信小程序源码(FastAdmin+ThinkPHP+Unipp)

教育培训微信小程序源码以其便捷性、互动性、安全性等优势,成为了教育培训行业的新宠。随着移动互联网技术的不断发展,教育培训微信小程序源码将继续引领未来学习趋势,为学员提供更加优质、高效的学习体验。同时,教育培训机构也应积极拥抱小程序技术,利用源码打造具有自身特色的学习平台,提升品牌影响力和市场竞争力。

2401_84414018的博客 2102

干货分享 | MatrixOne系统架构

随着数字化转型的深入,数据价值也愈发凸显,数据技术出现了融合的趋势,基于客户的真实痛点,矩阵起源推出了超融合MatrixOne HSTAP数据库。MatrixOne 使数据数据库同时具备 TP、AP和Streaming三种能力,帮助客户彻底打破数据孤岛问题,成为企业智能化核心的数据基础设施。今天的分享将解析新一代超融合异构云原生数据库 MatrixOne 刚刚发布的0.5版本和后续版本的架构设计。

MatrixOrigin的博客 898

从零部署思澈科技SiFli-Solution:避坑指南与实战排错

本文详细介绍了从零部署思澈科技SiFli-Solution开发环境的完整流程与实战排错指南。重点解析了Keil uVision5版本选择、Butterfli工具路径配置等关键步骤,并针对Keil路径报错、函数冲突等高频问题提供了具体解决方案,帮助开发者高效避坑,快速搭建稳定的嵌入式开发环境。

devops8pract的博客 530

超融合数据库MatrixOne

MatrixOne旨在通过云原生化和存储、计算、事务分离的架构,构建一个强大的HSTAP(Hybrid Streaming Transactional and Analytical Processing)超融合数据引擎。它支持OLTP(在线事务处理)、OLAP(在线分析处理)、流计算等多种业务负载,并兼容公有云、私有云、边缘云等多种部署环境,实现异构基础设施的全面兼容。

xuweilin的博客 840

PostgreSQL隐式类型转换全解析:告别operator does not exist

强类型数据库是现代数据系统的基石,它在带来严谨性的同时,也常常让开发者在类型不匹配报错前束手无策。当一条SQL因bigint与text比较而抛出operator does not exist时,根源往往在于对数据库隐式转换规则的误解。PostgreSQL通过pg_cast系统表将转换划分为隐式、赋值与显式三个级别,并依据操作符解析逻辑决定是否自动提升类型。理解这些机制,不仅能快速定位JOIN、UNION、函数调用等场景下的类型错误,还能帮助开发者合理使用EXPLAIN VERBOSE、pg_typeof等工

weixin_29587015的博客 306

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

部署篇 | MatrixOne与MySQL全面对比

MatrixOne Cloud 是一个全托管云原生数据平台,它提供了 HSTAP 数据库 MatrixOne 的云上服务,极大简化了 MatrixOne 的部署和运维成本。并且,MatrixOne Cloud 所提供的 Serverless 实例支持计算资源的自动弹性伸缩以及按 SQL 用量计费,让我们不需再关注数据库部署运维的复杂性,而可以仅关注业务应用或SQL本身。章节,MatrixOne中的CN节点是无状态的,在K8s中可以根据负载进行任意的弹性扩缩,保证集群持续保持较低的SQL执行耗时。

MatrixOrigin的博客 1266

Cadence Allegro实战:如何精准导入结构DXF文件避免安装偏差(附图层配置技巧)

本文详细讲解了在Cadence Allegro中精准导入结构DXF文件以避免安装偏差的实战技巧。核心在于导入前的单位校准、创建专用图层结构,以及基于坐标基准点的精确对齐方法。文章还分享了将DXF图形转化为正式板框和禁布区、高效管理图层以及向结构工程师导出DXF的完整流程,帮助PCB工程师确保设计与机械结构完美契合。

1a2s3d4f5g的博客 510

MatrixOne v2.0.0 release note

MatrixOne 本次迭代对系统在生成式AI应用支持、容灾和稳定性方面做了大幅度提升,重点功能包括:支持对外部存储上的数据访问以及对非结构化数据的访问能力,提供了全文检索能力,提升了向量检索的性能、支持快照备份和基于时间点的数据恢复(PiTR)、CDC 和基于日志复制的主备集群容灾能力,并进一步提升了对 MySQL 的兼容性。当数据发生变更时,表级别发布订阅可以将特定表的数据变更实时同步到订阅者,而不暴露其他表的信息,这相较数据库级别的发布订阅,提供了更高的灵活性和控制。开发必须兼顾多租户模型的需求。

MatrixOrigin的博客 649

Unity游戏开发:从零开始适配Nintendo Switch的完整指南

本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。

vodka的博客 1070

组态王的日历时间控件脚本

日期时间控件中的脚本中在小于10的月份和天数前必须要加上0,这是由首字符对比机制规定的,首字母相同,就不再不做对比了,比如1和11,是一样的。首字母不同,再比较下一位。 float Ayear1; float Amonth1; float Aday1; string temp1; Ayear1=sd.Year; Amonth1=sd.Month; Aday1=sd.Day; temp1=StrFromInt( Ayear1, 10 ); if(Amonth1<10) temp1=temp1+"-0"+

逍遥子的博客 5718

matrixone集群搭建、启停、高可用扩缩容和连接数据库

matrixone数据库安装部署、高可用扩缩容

qyq88888的专栏 3189

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

千元好礼等你来拿 MatrixOne最强体验官

为了让您体验到MatrixOne的易用性和友好性,MatrixOrigin社区发起了"最强体验官"活动,邀请大家一起深度体验MatrixOne数据库,参与数据库迁移、Python UDF 开发等多样任务,一起创造无限可能。在给定的活动周期内快速学习 MatrixOne 或 MO Cloud,并完成从选题数据库产品迁移到MO Cloud的操作(不少于5张表、数据量不少于100W),完成迁移后按照模版整理体验报告等待评审。TAP,多租户,流式计算,极致扩展性,高性价比等特性。

MatrixOrigin的博客 479

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MatrixOne完整指南:从MySQL迁移到HTAP超融合架构的10个步骤

🚀 **MatrixOne** 是业界首个将Git风格版本控制引入数据库的AI原生HTAP超融合数据库。如果您正在使用MySQL并希望升级到更强大的数据库系统,本指南将带您完成从MySQL迁移到MatrixOne的完整流程。MatrixOne不仅100%兼容MySQL 8.0,还提供了HTAP超融合架构、向量检索、Git-for-Data等先进功能,让您的数据基础设施迈入AI时代。 ## 📊

gitblog_01137的博客 1107

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MatrixOne v10.6.x安装简述

MatrixOne v10.6.x安装简述1 Install Oracle 9i/JDK 2 安装Matrix Core Server3. 安装Web服务器:Tomcat/Weblogic4. 安装eMatrix RMI5. 安...

ctu91844的博客 579

BPF入门:通过Hello World踏上内核编程之旅

BPF 在 Linux 内核中,被实现为一个非常精简的虚拟机,具有几乎性能无损的执行效率。我们可以用类似 C 语言的语法,编写代码,编译成可以在 BPF 虚拟机中运行的汇编代码,实现其强大的逻辑处理能力。

m0_65038841的博客 1475

初识 BPF:从 Hello World 开始的内核编程之旅

BPF 在 Linux 内核中,被实现为一个非常精简的虚拟机,具有几乎性能无损的执行效率。我们可以用类似 C 语言的语法,编写代码,编译成可以在 BPF 虚拟机中运行的汇编代码,实现其强大的逻辑处理能力。

m0_67544708的博客 1129

CentOS 7 升级 5.4 内核

CentOS 7 使用的内核版本为较为陈旧的 Kernel 3.10.0,为了让小伙伴们更加稳定的使用 MatrixOne,经过测试小哥哥多轮回归测试验证,社区为大家整理了 CentOS 7 内核升级至 5.0+ 的简易方案。随着 CentOS 7 的支持周期接近尾声,社区不少小伙伴都在讨论用以替换的 Linux 操作系统,经过问卷调查,我们发现小伙伴们的操作系统大都仍为 CentOS 7,并且由于种种原因无法在短期内进行更新替换。通常情况下,我们较推荐使用长期维护版的内核。1内核 rpm 包获取。

MatrixOrigin的博客 1820

踏入BPF的世界:以“Hello World”开启内核编程探索之旅

得益于其独特的架构设计,用户可以降低多达 70% 的硬件和运维成本,增加 3-5 倍的开发效率,同时更加灵活的响应市场需求变化和更加高效的抓住创新机会。MatrixOne 秉持开源开放、生态共建的理念,核心代码全部开源,全面兼容 MySQL 协议,并与合作伙伴打造了多个端到端解决方案,大幅降低用户的迁移和使用成本,也帮助用户避免了供应商锁定风险。组建我们的开发环境。本文我们为了方便,选择最简单的,用于调试和测试用的接口:BPF_PROG_TEST_RUN,也叫 BPF_PROG_RUN,

2301_77700816的博客 945

BPF开发: 从Hello World开始

BPF在Linux内核中,被实现为一个非常精简的虚拟机,具有几乎性能无损的执行效率。我们可以用类似C语言的语法,编写代码,编译成可以在BPF虚拟机中运行的汇编代码,实现其强大的逻辑处理能力。

MatrixOrigin的博客 1413

探索BPF:从Hello World开始的内核编程之旅

BPF 在 Linux 内核中,被实现为一个非常精简的虚拟机,具有几乎性能无损的执行效率。我们可以用类似 C 语言的语法,编写代码,编译成可以在 BPF 虚拟机中运行的汇编代码,实现其强大的逻辑处理能力。

m0_72864708的博客 919

BPF技术:赋予Linux内核动态编程能力的革命性创新

BPF 在 Linux 内核中,被实现为一个非常精简的虚拟机,具有几乎性能无损的执行效率。我们可以用类似 C 语言的语法,编写代码,编译成可以在 BPF 虚拟机中运行的汇编代码,实现其强大的逻辑处理能力。

m0_66404702的博客 1161
上一篇: MatrixOne从入门到实践03——部署MatrixOne
下一篇: MatrixOne从入门到实践05——数据类型介绍
MatrixOrigin
博客等级 码龄5年 708粉丝 230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值