福州seo网站推广wordpress 表介绍
2026/6/8 7:08:03 网站建设 项目流程
福州seo网站推广,wordpress 表介绍,青海住房和城乡建设厅网站,郑州的网络科技有限公司华为云数据库TaurusDB实践 实验一#xff1a;华为云数据库TaurusDB用户登录验证 步骤1#xff1a;使用IAM用户登录华为云官网 登录https://auth.huaweicloud.com/#xff0c;进入登录页面 使用IAM用户登录#xff0c;使用老师分发的个人账号 登录成功后#xff1a; 点…华为云数据库TaurusDB实践实验一华为云数据库TaurusDB用户登录验证步骤1使用IAM用户登录华为云官网登录https://auth.huaweicloud.com/进入登录页面使用IAM用户登录使用老师分发的个人账号登录成功后点击左上角打开服务列表然后点击数据库选择云数据库TaurusDB步骤2用数据库用户访问对应数据库注意将控制台调整为北京四点击实例管理使用分发的账号密码登录数据库我的账户是DB_USRR04所以只能访问USER04DB步骤3验证数据库用户权限创建新数据库尝试创建新数据库会报错说明我们的用户只拥有当前数据库的操作权限不能新建数据库。创建表点击创建会生成SQL脚本预览点击执行脚本可以发现我们的表创建成功了实验二华为云数据库TaurusDB场景化综合应用实验本实验以金融行业为场景设计数据库模型并使用华为云TaurusDB构建金融场景下的数据库通过对数据库中的对象表、约束、视图、索引等创建掌握基础SQL语法并通过对表中数据的增删改查模拟金融场景下的业务实现。本实验中的金融数据模型主要是为了实现实验操作而构造的若与现实场景中模型相似纯属巧合。实验环境本实验环境为华为云TaurusDB数据库。实验环境配置设备名称设备型号软件版本数据库TaurusDB 8 核 | 32 GBTaurusDB服务实验总览金融暑假模型设计金融数据模型假设A市C银行为了方便对银行数据的管理和操作引入了华为TaurusDB数据库。针对C银行的业务本实验主要将对象分为客户、银行卡、理财产品、保险、基金和资产。因此针对这些数据库对象本实验假设C银行的金融数据库存在着以下关系客户可以办理银行卡同时客户可以购买不同的银行产品如资产理财产品基金和保险。那么根据C银行的对象关系本实验给出了相应的关系模式和ER图并对其进行较为复杂的数据库操作。ER图关系模式对于C银行中的5个对象分别建立属于每个对象的属性集合具体属性描述如下 ·客户客户编号、客户名称、客户邮箱客户身份证客户手机号客户登录密码 ·银行卡银行卡号银行卡类型 ·理财产品产品名称产品编号产品描述购买金额理财年限 ·保险保险名称保险编号保险金额适用人群保险年限保障项目 ·基金基金名称基金编号基金类型基金金额风险等级基金管理者对象之间的关系 ·一个客户可以办理多张银行卡 ·一个客户可以购买多个理财产品同一类理财产品可由多个客户购买 ·一个客户可以购买多个基金同一类基金可由多个客户购买 ·一个客户可以购买多个保险同一类保险可由多个客户购买根据关系分析设计关系模型如下说明由于一个客户可以办理多张银行卡所以银行卡表引用客户表的客户编号作为外键。由于一个客户可以购买多个理财产品同一类理财产品可由多个客户购买。所以生成关系表——资产表。资产表引用客户表的商品编号作为外键引用理财产品表的产品编号作为外键并且添加商品状态、商品数量、商品收益和购买时间等属性。客户和保险、客户和基金的关系同理所以资产表同样作为生成的关系表修改资产表的理财产品编号为商品编号商品编号引用自理财产品表、保险和基金表的编号。物理模型对象及属性对应的编号为Client(c_idc_namec_mailc_id_cardc_phonec_password)bank_card(b_numberb_typeb_c_id)finances_product(p_namep_idp_descriptionp_amountp_year)insurance(i_namei_idi_amounti_personi_yeari_project)fund(f_namef_idf_typef_amountrisk_levelf_manager)property(pro_id,pro_c_idpro_pif_idpro_typepro_statuspro_quantitypro_incomepro_purchase_time)说明资产表property中由于商品编号(pro_pif_id)字段引用自理财产品表、保险和基金表的id字段为了防止三商品的id字段相互冲突添加商品类型(pro_type)字段区分三种商品。并且资产表添加资产编号(pro_id)字段作为主键。Client客户表字段名称字段类型约束说明c_idINTEGERPRIMARY KEY客户编码c_nameVARCHAR(100)NOT NULL客户名称c_mailCHAR(30)UNIQUE客户邮箱c_id_cardCHAR(20)UNIQUE NOT NULL客户身份证c_phoneCHAR(20)UNIQUE NOT NULL客户手机号c_passwordCHAR(20)NOT NULL客户登录密码bank_card银行卡表字段名称字段类型约束说明b_numberCHAR(30)PRIMARY KEY银行卡号b_typeCHAR(20)银行卡类型b_c_idINTEGERNOT NULL所属客户编号注本字段引用自client表的c_id字段。finances_product理财产品信息表字段名称字段类型约束p_nameVARCHAR(100)NOT NULL产品名称p_idINTEGERPRIMARY KEY产品编号p_descriptionVARCHAR(4000)产品描述p_amountINTEGER购买金额p_yearINTEGER理财年限insurance保险表字段名称字段类型约束说明i_nameVARCHAR(100)NOT NULL保险名称i_idINTEGERPRIMARY KEY保险编号i_amountINTEGER保险金额i_personCHAR(20)适用人群i_yearINTEGER保险年限i_projectVARCHAR(200)保障项目fund基金表字段名称字段类型约束说明f_nameVARCHAR(100)NOT NULL基金名称f_idINTEGERPRIMARY KEY基金编号f_typeCHAR(20)基金类型f_amountINTEGER基金金额risk_levelCHAR(20)NOT NULL风险等级f_managerINTEGERNOT NULL基金管理者property资本表字段名称字段类型约束pro_idINTEGERPRIMARY KEY资产编号pro_c_idVARCHAR(100)NOT NULL客户编号说明本字段引用自client表的c_id字段。pro_pif_idINTEGERNOT NULL商品编号说明本字段引用自finances_product表、insurance表和fund表三个表的id字段。pro_typeINTEGERNOT NULL商品类型说明1表示理财产品2表示保险3表示基金。pro_statusCHAR(20)商品状态pro_quantityINTEGER商品数量pro_incomeINTEGER商品收益pro_purchase_timeDATE购买时间接下来进行openGauss数据模型表操作TaurusDB数据模型表操作登录华为云及数据库我们已经参照实验一成功用IAM登录华为云且成功用所分配的数据库访问对应的数据库。表的创建根据C银行的场景描述本实验分别针对客户(client)银行卡(bank_card)理财产品(finances_product)保险(insurance)基金(fund)和资产(property)创建相应的表。具体的实验步骤如下所示步骤1客户信息表的创建步骤2银行卡信息表的创建步骤3理财产品信息表的创建步骤4保险信息表的创建步骤5基金信息表的创建步骤6资产信息表的创建通过执行上面的代码我们可以观察我们现有的表数据表的插入为了实现对表数据的相关操作本实验需要以执行SQL的方式对金融数据库的相关表插入部分数据步骤1初始化client表步骤2初始化bank_card表步骤3初始化finances_product表步骤4初始化insurance表步骤5初始化fund表步骤6初始化property表手工插入一条数据当C银行有新的信息需要加入数据库时系统需要在对应的数据表中手动插入一条新的数据。因此针对主键属性定义的场景介绍如何手动插入一条数据。步骤1在金融数据库的客户信息表中添加一个客户的信息。属性冲突的场景由于我们定义了c_id_card和c_phone唯一且非空当表中存在数据时插入会失败。步骤2在金融数据库的客户信息表添加一个客户的信息插入成功添加约束步骤1对表添加外键约束在银行信息表和资产信息表中都存在每个银行卡必须有一个持卡者、每份资产必须都有一个资产拥有者这样的对应关系。因此针对这种对应关系创建外键约束。分别给bank_card和property添加约束外键备注银行卡信息表中的b_c_id与客户信息表中的c_id一致且每个银行卡都必须有一个持卡者。在进行表删除时需要先删除bank_card表再删除client表因为两个表存在约束。资产信息表中的pro_c_id与客户信息表中的c_id一致且每一份资产都必须有一个资产拥有者。在进行表删除时需要先删除property表再删除client表因为两个表存在约束。步骤2在理财产品表、保险信息表和基金信息表中都存在金额这个属性在现实生活中金额不会存在负数。因此针对表中金额的属性增加大于0的约束条件。为finances_product表的p_amount列添加大于等于0的约束步骤3尝试手工插入一条金额小于0的记录发现插入失败我们设置的约束成功步骤4向fund表添加约束为fund表的f_amount列添加大于等于0的约束步骤5向insurance表中添加约束为insurance表的i_amount列添加大于等于0的约束查询数据在本章的金融数据库实验中主要目的是学习到更深一层的查询操作能够更深入的去了解TaurusDB数据库的复杂操作。步骤1单表查询步骤2条件查询查询资产信息中“可用”的资产数据步骤3聚合查询查询用户表有多少个用户我们最开始加入了30个后续又添加了1个现在查询到31个符合。查询银行卡信息表中储蓄卡和信用卡的个数查询保险信息表中保险金额的平均值查询保险信息表中金额的最大值和最小值所对应的险种和金额步骤4连接查询半连接查询用户编号在银行卡表中出现的用户的编号用户姓名和身份证半连接是一种特殊的连接类型在SQL中没有指定的关键字通过在WHERE后面使用IN或EXISTS子查询实现。当IN/EXISTS右侧的多行满足子查询的条件时主查询也只返回一行与EXISTS子查询匹配的行而不是复制左侧的行。反连接查询银行卡号不是‘622202130202000001*’*表示未知的用户的编号姓名和身份证。反连接是一种特殊的连接类型在SQL中没有指定的关键字通过在WHERE后面使用 NOT IN或NOT EXISTS子查询实现。返回所有不满足条件的行。这个关系的概念跟半连接相反。步骤5子查询通过子查询查询保险产品中保险金额大于平均值的保险名称和适用人群步骤6ORDER BY和GROUP BYORDER BY子句按照降序查询保险编号大于2的保险名称保额和适用人群GROUP BY子句查询各保险信息总数按照p_year分组步骤7HAVING和WITH ASHAVING子句查询保险金额统计数量等于2 的适用人群数HAVING子句依附于GROUP BY子句而存在。WITH AS子句该子句可以创建一个临时表名可以被整个SQL语句用到使用WITH AS查询基金信息表可以使SQL语句的可读性更高。存储SQL片段的表与基本表不同是一个虚表。数据库不存放对应的定义和数据这些数据仍存放在原来的基本表中。若基本表中的数据发生变化从存储SQL片段的表中查询出的数据也随之改变。视图视图是一个虚拟表是sql的查询结果其内容由查询定义。对于来自多张关联表的复杂查询就不得不使用十分复杂的SQL语句进行查询造成极差的体验感。使用视图之后可以极大的简化操作使用视图不需要关心相应表的结构、关联条件等。步骤1创建视图针对“查询用户编号在银行卡表中出现的用户的编号用户姓名和身份证” 的查询创建视图步骤2修改视图在原有查询的基础上过滤出信用卡用户步骤3删除视图将v_client视图删除删除视图不影响基表。之后我们再次进行SELECT操作失败视图已经被删除但是原表不受影响索引步骤1创建索引在普通表property上创建索引这个语句创建了一个复合索引从左边开始匹配步骤2重命名索引在普通表property上重建及重命名索引重建索引重命名索引在普通表property上重建及重命名索引步骤3删除索引删除索引idx_property_temp数据的修改和删除步骤1修改数据修改/更新银行卡信息表中b_c_id小于10和客户信息表中c_id相同的记录的b_type字段。先查看表数据进行更新之后重新查询数据情况可以发现更新成功c_id小于10的都变成了借记卡对比之前查询结果步骤2删除指定数据删除基金信息表中编号小于3的行删除前查询结果开始删除查询删除结果可以发现编号小于3的行都被删除了使用JDBC连接数据库准备连接环境步骤1Java连接TaurusDB可以使用MySQL8.0的驱动包下载Java连接MySQL的驱动包并将其导入对应的使用工具。通过下面的链接下载驱动包原文档链接失效了https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.16.zip步骤2创建测试表websites步骤3插入数据步骤4绑定弹性公网IP已经绑定下载并按照JDK用下面的链接https://gitcode.com/open-source-toolkit/3468b安装完成查看安装目录配置JDK环境变量步骤1右击“此电脑”选择“属性”点击“高级系统设置”步骤2步骤 2 点击“环境变量”新建系统变量“JAVA_HOME”输入JDK安装目录。步骤3编辑系统变量path点击PATH环境变量新建这两个值步骤4新建系统变量classpath变量输入.步骤5系统变量配置完毕查询检验是否配置成功运行cmd 输入java -versionjava和 -version之间有空格。安装和配置成功连接TaurusDB并执行Java代码步骤1使用Java程序连接数据库并进行查询先创建GaussDBMySQLDemo.java文件注意需要根据实际情况修改jdbc:postgresql://公网IP:3306/demo中公网IP信息USER root连接数据库的用户及密码PASS 12345中红色的部分import java.sql.*; public class GaussDBMySQLDemo { // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL static final String JDBC_DRIVER com.mysql.cj.jdbc.Driver; static final String DB_URL jdbc:mysql://公网IP:3306/demo?useSSLfalseallowPublicKeyRetrievaltrueserverTimezoneUTC; // 数据库的用户名与密码需要根据自己的设置 static final String USER root; static final String PASS 123456; public static void main(String[] args) { Connection conn null; Statement stmt null; try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开链接 System.out.println(连接数据库...); conn DriverManager.getConnection(DB_URL,USER,PASS); // 执行查询 System.out.println( 实例化Statement对象...); stmt conn.createStatement(); String sql; sql SELECT id, name, url FROM websites; ResultSet rs stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ // 通过字段检索 int id rs.getInt(id); String name rs.getString(name); String url rs.getString(url); // 输出数据 System.out.print(ID: id); System.out.print(, 站点名称: name); System.out.print(, 站点 URL: url); System.out.print(\n); } // 完成后关闭 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(Goodbye!); } }步骤2打开cmd对Java程序编译后执行。会出现.class文件然后再执行实验小结本实验通过ER模型加深对数据库的理解和数据库设计知识的掌握通过SQL语句的练习使得能熟练掌握SQL语法。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询