数据库_DuckDB—使用阶段和使用方式

01.图像界面操作数据库

duckdb 没有服务器端,它是用文件来存储数据,
 所以我们只需要安装个图形化的管理软件 DBeaver 就可以直接使用

 在线安装Connection 驱动  

 离线安装 Connection 驱动  
  Maven库
   <!-- https://mvnrepository.com/artifact/org.duckdb/duckdb_jdbc -->
  <dependency>
      <groupId>org.duckdb</groupId>
      <artifactId>duckdb_jdbc</artifactId>
      <version>0.8.0</version>
  </dependency>
   驱动下载地址
   点击“新建数据库连接”,选择duckdb后,弹出连接duckdb窗口。 “编辑驱动设置”,弹出编辑驱动窗口,点击“库”菜单,切换到库界面
    org.duckdb.DuckDBDriver
    下载地址 https://repo1.maven.org/maven2/org/duckdb/duckdb_jdbc/

Dbeaver的 Duckdb驱动jar包说明

duckdb版本-驱动版本和duckdb版本保持一致
https://mvnrepository.com/artifact/org.duckdb/duckdb_jdbc
下载地址
   https://repo1.maven.org/maven2/org/duckdb/duckdb_jdbc/
 选择版本
 javadoc.jar.asc      javadoc.jar
 
java包--公开自己 Jar 包,
   类文件(.class) test-java-1.0-SNAPSHOT.jar           使用 maven 打包生成即可
   文档包(API)    test-java-1.0-SNAPSHOT-javadoc.jar   使用 maven-javadoc-plugin  插件生成javadoc.jar
   资源包(code)    test-java-1.0-SNAPSHOT-sources.jar  使用 maven-source-plugin   插件生成sources.ja 
其他文件:
   打包文件配置-.pom
   加密文件xx.jar.asc  ,使用  maven-gpg-plugin  jar包对应的签名文件(.asc)会自动生成
   文件经过网络传输等原因对源项目包造成损坏时方便排查,一般做法是在maven工程打包时自动 自动生成MD5和SHA-1校验文件
功能:
   过这个数字签名来验证jar包是否确实是官方发布的包--打包过程中加入GPG签名步骤
   验证签名的JAR文件的基本命令是: jarsigner -verify jar-file    

02.https://shell.duckdb.org/

 .examples 
 SELECT count(*) FROM 'https://shell.duckdb.org/data/tpch/0_01/parquet/lineitem.parquet';

03.Command line

 cmd -> powershell
Windows 有两个命令行 shell:命令 shell 和 PowerShell
 
#这个是 in-memory database 
cd D:\Test\duckdb_cli 
进入:  .\duckdb.exe
退出:  .quit

 cd D:\Test\duckdb_cli 
 .\duckdb.exe  D:\Test\duckdb_cli\my_database.duckdb

04.Python-- pip install duckdb==0.8.0

 批量自动执行--边缘计算

05.AI工具与duckdb

让AI和机器沟通,人和AI沟通,了解需求,从SQL出发,关注让AI做什么,怎么使用SQL或者其他交给AI
梳理和沟通需求、协调资源和人员、决策方向、管理等AI无法完成的工作。

基本概念

 数据库 表  表结构  
 
 增删改查
      修改数据库或表
 用户 权限 
 
 元数据
    CALL duckdb_functions();

概念词阶段:

阶段01.
   Database, Catalog and Schema  Tables and Views  Rows Columns
   Attach/Detach   
   Data Types: General-Purpose Data Types Nested / Composite Types
   Expressions:
   Functions:
   Configuration: set  SELECT * FROM duckdb_settings();
   Extensions:
    CHECKPOINT   the write-ahead log (WAL)   SEQUENCE
    a schema in the catalog: The default schema is main.	   
   
    SQL Macro 支持两种宏类型,Scalar 和 Table 类型。
     宏的作用在于让SQL获得进一步的概括和抽象能力,允许开发者将复杂的处理逻辑通过宏进行定义,然后在后续程序处理中可以反复引用这一定义。
	 
	PG中引入vacuum机制来清理旧数据和旧的事务。VACUUM会消耗I/O资源
	    vacuum主要分vacuum full和lazy vacuum 

    增 CREATE TABLE COPY  INSERT INTO VALUES   
	删 DELETE  as DROP TABLE
	改 UPDATE  ALTER TABL  RENAME set  
	查 select DISTINCT  from where  group  by   ORDER BY  HAVING 
阶段02:
	  Joins Between Tables: LEFT OUTER JOIN   ON
	  Aggregate Functions: max
	  PIVOT ON and USING UNPIVOT
	  WINDOW  QUALIFY 
	持久化IO: Copy From  Copy To  EXPORT DATABASE
	SUMMARIZE SELECT * FROM tbl;
	 点命令-Special commands to sqlite3 (dot-commands)
	    “点命令以点号(.)开头,不需要分号(;)来结尾
		   .databases               List names and files of attached databases
		   .cd DIRECTORY            Change the working directory to DIRECTORY
		   .open ?OPTIONS? ?FILE?   Close existing database and reopen FILE
阶段03:自定义函数以及执行计划
      EXPLAIN  
	     EXPLAIN SELECT * FROM tbl;
	     EXPLAIN ANALYZE SELECT * FROM tbl;
阶段04.二次开发
       DuckDB requires CMake, Python3 and a C++11 compliant compiler
阶段05.开发
    C++

打开或创建数据库

01.
  ./duckdb
02.To open or create a persistent database, simply include a path as a command line argument like 
   ./duckdb path/to/my_database.duckdb
   
03.切换数据库
   a new database connection can be made by using the .open command
  .open ?OPTIONS? ?FILE?   Close existing database and reopen FILE   
  .quit                    Exit this program
  
  (中途保存 	) ????
  切换数据库--只是关闭一个连接并打开另一个连接
查看版本   
 CALL pragma_version(); 
 .show()

查询当前数据库、当前用户

select current_database();
select current_user;

列举数据库,相当于mysql的show databases

 -- List all databases, usually one
  PRAGMA database_list;

列举表,相当于mysql的show tables

 show tables;

相当于 help

 元数据:select * from  duckdb_schemas();
 数据类型: select * from duckdb_types();
 当前数据库的一些数据
    about the current database. These functions reside in the main schema and their names are prefixed with duckdb_.
 ## select * from duckdb_databases();
     duckdb_tables()  duckdb_columns();  duckdb_indexes()
    		 select * from duckdb_constraints()
            select * from duckdb_views(); 
			select * from duckdb_functions();
			SELECT * FROM duckdb_settings()

参考

https://duckdb.org/docs/sql/duckdb_table_functions#duckdb_columns
https://github.com/duckdb/duckdb/tree/master	
duckdb从入门到精通:安装篇 https://zhuanlan.zhihu.com/p/626828071
DuckDB 整体介绍 https://zhuanlan.zhihu.com/p/626311150
posted @ 2023-05-31 18:04  辰令  阅读(2570)  评论(0编辑  收藏  举报