📜  在 Julia 中使用数据库

📅  最后修改于: 2021-11-25 04:39:05             🧑  作者: Mango

在 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 查询作为参数来执行对提供的数据库的查询。

朱莉娅

# 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'")

输出:

数据库内容: