在 Julia 中使用数据库
在 Julia 中可以通过多种方式执行数据处理。 Julia 可以连接到许多数据库,其连接器直接连接到数据库独立接口 (DBI) 包,例如 MySQL、SQLite、PostgreSQL 等。这些可用于触发查询并获得所需的输出。在本文中,我们将讨论 SQLite 作为连接 Julia 的参考,使用 Julia 创建、删除、插入、更新和查询表。
将 SQLite 与 Julia 连接起来
要将 Julia 与 SQLite 连接,需要将名为 SQLite 的包导入当前会话。需要确保 SQLite 服务器正在运行。以下命令可用于执行相同操作:
using SQLite
要连接到特定数据库, SQLiteDB()函数和SQLite.DB()函数可分别用于 Julia 版本 3 和 Julia 版本 4。
对于 Julia 版本 3:
db = SQLiteDB("dbname.sqlite")
对于 Julia 版本 4:
db = SQLite.DB("dbname.sqlite")
建立成功连接后,可以分别使用 Julia 版本 3 和 Julia 版本 4 的 query()函数和 SQLite.query()函数执行查询。
对于 Julia 版本 3:
query(db, "A SQL query")
对于 Julia 版本 4:
SQLite.query(db, "A SQL query")
安装和导入 SQLite 包
可以使用函数Pkg.add() 安装 Julia 中的 SQLite 包。为了导入它,可以使用'using'关键字,后跟包名。
例子:
Julia
# Install SQLite Package
using Pkg
Pkg.add("SQLite")
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Show tables in the database
SQLite.tables(db) # Empty Database with no tables
Julia
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Create a Table(Student)
SQLite.execute(db, "CREATE TABLE IF NOT EXISTS Student(Roll_no REAL,
Name TEXT)")
# Show tables in the database
SQLite.tables(db)
Julia
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Drop Table(Student)
SQLite.execute(db, "DROP TABLE Student")
Julia
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Create a Table(Student)
SQLite.execute(db,"CREATE TABLE IF NOT EXISTS Student(Roll_no REAL,
Name TEXT)")
# Insert data into Table
SQLite.execute(db, "INSERT INTO Student VALUES('Harry', 1)")
SQLite.execute(db, "INSERT INTO Student VALUES('Peter', 2)")
SQLite.execute(db, "INSERT INTO Student VALUES('Katy', 3)")
SQLite.execute(db, "INSERT INTO Student VALUES('Mia', 4)")
Julia
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Update data present in the table(Student)
SQLite.execute(db,"UPDATE Student SET Name = 'Simon' WHERE Roll_no = 1")
Julia
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Fire queries on the given Table(Student)
SQLite.execute(db, "SELECT * from Student WHERE Name='Simon'")
输出:
使用 Julia 在 SQLite 中创建表
SQLite 中的表可以使用 Julia 中的函数execute()创建。此函数通过将数据库连接对象和要作为参数触发的“CREATE TABLE”SQL 查询来对提供的数据库执行查询。
Syntax:
SQLite.execute(db,query)
Parameter values:
db: represents the database connection object
query: represents the SQL query to be fired on the database
朱莉娅
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Create a Table(Student)
SQLite.execute(db, "CREATE TABLE IF NOT EXISTS Student(Roll_no REAL,
Name TEXT)")
# Show tables in the database
SQLite.tables(db)
输出:
使用 Julia 在 SQLite 中删除表
可以使用 Julia 中的函数execute()删除 SQLite 中的表。此函数通过将数据库连接对象和要触发的“DROP TABLE”SQL 查询作为参数来对提供的数据库执行查询。
例子:
朱莉娅
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Drop Table(Student)
SQLite.execute(db, "DROP TABLE Student")
输出:
使用 Julia 在 SQLite 中插入表
可以使用 Julia 中的函数execute() 将记录插入到 SQLite 中的表中。此函数通过将数据库连接对象和要作为参数触发的“INSERT INTO”SQL 查询来对提供的数据库执行查询。
例子:
朱莉娅
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Create a Table(Student)
SQLite.execute(db,"CREATE TABLE IF NOT EXISTS Student(Roll_no REAL,
Name TEXT)")
# Insert data into Table
SQLite.execute(db, "INSERT INTO Student VALUES('Harry', 1)")
SQLite.execute(db, "INSERT INTO Student VALUES('Peter', 2)")
SQLite.execute(db, "INSERT INTO Student VALUES('Katy', 3)")
SQLite.execute(db, "INSERT INTO Student VALUES('Mia', 4)")
输出:
数据库内容:
使用 Julia 在 SQLite 中更新表
可以使用 Julia 中的函数execute()将记录更新到 SQLite 中的表中。此函数通过将数据库连接对象和要触发的“UPDATE”SQL 查询作为参数来对提供的数据库执行查询。
例子:
朱莉娅
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Update data present in the table(Student)
SQLite.execute(db,"UPDATE Student SET Name = 'Simon' WHERE Roll_no = 1")
输出:
数据库内容:
使用 Julia 在 SQLite 中查询表
可以使用 Julia 中的函数execute() 对 SQLite 中的表进行查询。此函数通过将数据库连接对象和要触发的“SELECT”SQL 查询作为参数来对提供的数据库执行查询。
例子:
朱莉娅
# Import SQLite
using SQLite
# Connect to the database(class)
db = SQLite.DB("class")
# Fire queries on the given Table(Student)
SQLite.execute(db, "SELECT * from Student WHERE Name='Simon'")
输出:
数据库内容: