01.图像界面操作数据库

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

在线安装Connection 驱动

离线安装 Connection 驱动
Maven库


org.duckdb
duckdb_jdbc
0.8.0

驱动下载地址
点击“新建数据库连接”,选择duckdb后,弹出连接duckdb窗口。 “编辑驱动设置”,弹出编辑驱动窗口,点击“库”菜单,切换到库界面
移除其他版本--delete
点选对应的jar--框下侧的 Find class 中选择对应Driver class--要出现 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 on 2023-05-31 18:04  辰令  阅读(5314)  评论(0)    收藏  举报