数据库开发与报表转制: DBA工具使用指南

版权申诉
0 下载量 53 浏览量 更新于2024-10-19 收藏 7.41MB RAR 举报
资源摘要信息:"在数据库管理中,DBA(Database Administrator)是负责维护、管理和优化数据库系统的角色。本资源主要介绍DBA在进行数据库开发时的职责、开发流程以及基础操作,特别强调了对基础命令代码的使用,这包括数据库中的数据的增删改查(CRUD)操作。此外,该资源还涉及DBA从日常数据库维护工作转向报表开发的技能转换。" 知识点详解: 一、数据库开发基本步骤 1. 需求分析:DBA与业务分析师合作,理解业务需求,确定数据库设计的目标和约束。 2. 概念设计:设计数据库的高阶概念模型,通常使用ER模型(实体-关系模型)来表示。 3. 逻辑设计:将概念模型转换为数据库系统能理解的逻辑结构,如关系模型。 4. 物理设计:根据逻辑设计和数据库的性能要求,确定数据存储的物理组织形式。 5. 实现:根据物理设计创建数据库模式,并将数据导入数据库中。 6. 测试:验证数据库的功能是否满足设计目标,并确保数据的准确性和完整性。 7. 维护:在数据库上线后进行持续的监控、调整和优化,以及版本更新。 二、数据库基本操作 1. 数据定义语言(DDL):使用DDL命令来创建、修改和删除数据库结构,如表、视图、索引等。 - CREATE:创建新的数据库对象。 - ALTER:修改已存在的数据库对象结构。 - DROP:删除数据库对象。 2. 数据操纵语言(DML):利用DML命令来增加、删除、修改和查询数据库中的数据。 - INSERT:向表中添加新的数据记录。 - UPDATE:更新表中已存在的数据记录。 - DELETE:从表中删除数据记录。 - SELECT:查询表中的数据记录。 3. 数据控制语言(DCL):通过DCL命令来控制数据访问权限和事务。 - GRANT:赋予用户或角色特定权限。 - REVOKE:撤销已赋予的权限。 - COMMIT:提交事务,使DML操作永久生效。 - ROLLBACK:回滚事务,撤销未提交的DML操作。 三、数据库命令代码示例 以下是使用SQL语言在关系型数据库中执行常见操作的命令示例: 增(CREATE): ```sql CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName VARCHAR(50), LastName VARCHAR(50), Email VARCHAR(100) ); ``` 删(DELETE): ```sql DELETE FROM Employees WHERE EmployeeID = 1; ``` 改(UPDATE): ```sql UPDATE Employees SET Email = 'new.***' WHERE EmployeeID = 1; ``` 查(SELECT): ```sql SELECT FirstName, LastName FROM Employees WHERE DepartmentID = 10; ``` 四、报表开发知识转换 1. 技能要求:DBA在转向报表开发时需要了解商业智能(BI)工具的使用,如Tableau、Power BI等。 2. 数据提取:掌握从数据库中提取数据的技能,可能涉及编写更复杂的SQL查询。 3. 数据整理:了解如何处理和组织数据,为报表的生成做准备。 4. 报表设计:学习如何设计直观、易懂的报表和仪表板。 5. 数据分析:应用统计学和数据分析方法,以便在报表中展示数据趋势和洞察。 6. 自动化和调度:学会设置报表的自动化生成和调度,以便定期更新和分发。 五、采购系统 在给定的资源中,“采购系统”可能指代一个具体的数据库应用场景或项目。在这样的系统中,DBA需要负责设计和维护采购数据的存储结构,确保数据的准确性和及时更新,并可能需要设计相关的报表来监控采购流程和成本分析等。 通过这些知识点的掌握,DBA不仅能够有效地进行数据库开发,还能在需要时转向更高级的报表开发工作,从而在企业中扮演更为重要的角色。
2023-06-08 上传

帮我修复一下这个bugJDBC Connection [org.postgresql.jdbc.PgConnection@49f1bf43] will not be managed by Spring ==> Preparing: select z.,y.PDTCLASS_CLASS FROM ( SELECT * FROM (SELECT r.PDT_PLANEX_PDTID,r.PDT_PLANEX_TYPE ,r.SUM_NUM,e.SUM_NUM2,e.COUNT_NUM FROM (SELECT SUM(t.PDT_PLANEX_NUM) as SUM_NUM,t.PDT_PLANEX_PDTID,t.PDT_PLANEX_TYPE FROM c_pdt_plan_ex t WHERE t.PDT_PLANEX_DELETED = 0 and t.DATA_FROM = ? and to_timestamp(?, 'yyyy-MM-dd HH:mm:ss.SSS') >= t.PDT_PLANEX_BEGIN and t.PDT_PLANEX_END >= to_timestamp(?, 'yyyy-MM-dd HH:mm:ss.SSS') GROUP BY t.PDT_PLANEX_PDTID,t.PDT_PLANEX_TYPE )r LEFT JOIN (SELECT SUM(o.WEISHT_NET_WGHT) SUM_NUM2,COUNT(1) COUNT_NUM,o.PDTINF_PDT,o.PDTINF_CLASS,o.PDT_PLANEX_PDTID,o.PDT_PLANEX_TYPE FROM(SELECT * FROM(SELECT * FROM (SELECT q., p.* FROM ( SELECT t.PDT_PLANEX_ID, t.PDT_PLANEX_NUM, t.PDT_PLANEX_PDTID, t.PDT_PLANEX_TYPE, t.PDT_PLANEX_BEGIN, t.PDT_PLANEX_END, t.PDT_PLANEX_COID FROM c_pdt_plan_ex t WHERE t.PDT_PLANEX_DELETED = 0 and t.DATA_FROM = ? and to_timestamp(?, 'yyyy-MM-dd HH:mm:ss.SSS') >= t.PDT_PLANEX_BEGIN and t.PDT_PLANEX_END >= to_timestamp(?, 'yyyy-MM-dd HH:mm:ss.SSS') GROUP BY t.PDT_PLANEX_PDTID, t.PDT_PLANEX_COID, t.PDT_PLANEX_TYPE, t.PDT_PLANEX_BEGIN, t.PDT_PLANEX_END, t.PDT_PLANEX_COID ) q LEFT JOIN (SELECT PDTINF_PDT, PDTINF_ID , PDTINF_CLASS FROM c_products_info WHERE PDTINF_DELETED=0 and DATA_FROM = ? )p on q.PDT_PLANEX_PDTID=p.PDTINF_ID)k LEFT JOIN (select g.CPY_CO,g.CPY_ID from c_companys g where CPY_DELETED=0 and DATA_FROM = ? ) c ON k.PDT_PLANEX_COID=c.CPY_ID)k inner JOIN (select j.WEISHT_NET_WGHT,j.WEISHT_PRODUCT,j.WEISHT_CO,j.WEISHT_EMPTY_TM,j.WEISHT_FULL_TM from c_weight_sheets j where WEISHT_DELETED = 0 and DATA_FROM = ? )r ON k.PDTINF_PDT=r.WEISHT_PRODUCT and k.CPY_CO=r.WEISHT_CO AND k.PDT_PLANEX_BEGIN <= r.WEISHT_FULL_TM AND k.PDT_PLANEX_END >= r.WEISHT_FULL_TM ORDER BY k.PDTINF_PDT )o GROUP BY o.PDT_PLANEX_PDTID)e ON e.PDT_PLANEX_PDTID=r.PDT_PLANEX_PDTID AND e.PDT_PLANEX_TYPE=r.PDT_PLANEX_TYPE)w left join (SELECT PDTINF_PDT, PDTINF_ID , PDTINF_CLASS FROM c_products_info WHERE PDTINF_DELETED=0 and DATA_FROM = ? )p on w.PDT_PLANEX_PDTID=p.PDTINF_ID) z left join (select PDTCLASS_CLASS,PDTCLASS_ID from c_pdt_class where PDTCLASS_DELETED=0) y on z.PDTINF_CLASS=y.PDTCLASS_ID ==> Parameters: e9f6ed8e091611ec842700163e092c06(String), 2023-10-08 23:59:59(String), 2020-10-08 23:59:59(String), e9f6ed8e091611ec842700163e092c06(String), 2023-10-08 23:59:59(String), 2020-10-08 23:59:59(String), e9f6ed8e091611ec842700163e092c06(String), e9f6ed8e091611ec842700163e092c06(String), e9f6ed8e091611ec842700163e092c06(String), e9f6ed8e091611ec842700163e092c06(String) Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@57f98196] [2023-06-01 21:16:02] [ERROR] -- Servlet.service() for servlet [dispatcherServlet] in context with path [/szIntranetweb] threw exception [Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: org.postgresql.util.PSQLException: 错误: 字段 "t.pdt_planex_id" 必须出现在 GROUP BY 子句中或者在聚合函数中使用

2023-06-02 上传