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
.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