Учебники

CoffeeScript — SQLite

SQLite — это облегченный механизм реляционных баз данных на основе схем. Это популярный выбор в качестве встроенного программного обеспечения базы данных для локального хранения в веб-браузерах.

В отличие от многих других систем управления базами данных, SQLite не является ядром клиент-серверной базы данных. Для получения дополнительной информации прочитайте наш учебник по SQLite

В этой главе вы узнаете, как взаимодействовать с базой данных SQLite с помощью CoffeeScript.

Монтаж

База данных SQLite3 может быть интегрирована с CoffeeScript с помощью модуля node-sqlite3 . Этот модуль работает с Node.js v0.10.x, v0.12.x, v4.x и v5.x. Этот модуль обслуживает различные функции для взаимодействия с SQLite3 с использованием CoffeeScript, в дополнение к этому он также предоставляет интерфейс прямого запроса и привязки параметров и API сериализации запросов.

Вы можете установить модуль node-sqlite3, используя npm, как показано ниже.

npm install sqlite3

Чтобы использовать модуль sqlite3, сначала необходимо создать объект подключения, представляющий базу данных, и этот объект поможет вам в выполнении всех операторов SQL.

Подключение к базе данных

Чтобы подключиться к базе данных SQLite, сначала создайте ее пакет, вызвав функцию require () модуля node-sqlite3 и передав ему строку sqlite3 в качестве параметра. Затем подключитесь к базе данных, передав имя базы данных в конструкцию sqlite3.Database () .

Следующий код CoffeeScript показывает, как подключиться к существующей базе данных. Если база данных не существует, она будет создана с заданным именем test.db , открыта и, наконец, будет возвращен объект базы данных.

#Creating sqlite3 package
sqlite3 = require('sqlite3')

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Database opened successfully."

Мы также можем предоставить : memory: для создания анонимной базы данных в памяти и пустую строку для создания анонимной дисковой базы данных вместо test.db. Сохраните приведенный выше код в файле с именем create_db.coffee и выполните его, как показано ниже. Если база данных успешно создана, она выдаст следующее сообщение:

c:\> coffee create_db.coffee
Successfully connected

Создание таблицы

Вы можете создать таблицу в базе данных SQLite через CoffeeScript с помощью функции run () . Передайте запрос для создания таблицы этой функции в формате String.

Следующая программа CoffeeScript будет использоваться для создания таблицы в базе данных ранее test.db

#Creating sqlite3 package
sqlite3 = require('sqlite3')

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  db.run 'CREATE TABLE STUDENT (name TEXT, age INTEGER, city TEXT)'
  console.log "Table created successfully"  
  return
db.close()

Функция serialize () устанавливает базу данных в сериализованный режим. В этом режиме, когда встречается обратный вызов, он будет вызван немедленно. Запросы в этом обратном вызове выполняются последовательно. Вскоре функция вернется. База данных снова будет переведена в обычный режим. После завершения транзакции нам нужно закрыть соединение с помощью функции close () .

Сохраните приведенный выше код в файле с именем create_table.coffee и выполните его, как показано ниже. Это создаст таблицу с именем STUDENT в базе данных test.db, отображающую следующие сообщения.

C:\> coffee create_table.coffee
Successfully connected
Table created successfully

Вставка / Создание данных

Вы можете вставить данные в базу данных SQLite через код CoffeeScript, выполнив оператор вставки. Для этого мы можем использовать функцию prepare (), которая подготавливает операторы SQL.

Он также принимает запрос с переменными связывания ( ? ), Значения к этим переменным могут быть присоединены с помощью функции run () . Вы можете вставить несколько записей, используя подготовленный оператор, и после вставки всех записей вам необходимо завершить подготовленный оператор с помощью функции finalize () .

Следующая программа CoffeeScript показывает, как вставить записи в таблицу с именем STUDENT, созданную в предыдущем примере.

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  stmt = db.prepare('INSERT INTO STUDENT VALUES (?,?,?)')
  stmt.run 'Ram',24,'Hyderabad'
  stmt.run 'Robert',25,'Mumbai'
  stmt.run 'Rahim',26,'Bangalore'
  stmt.finalize()
  console.log "Data inserted successfully"
  return
db.close()

Сохраните приведенный выше код в файле с именем insert_data.coffee и выполните его, как показано ниже. Это заполнит таблицу с именем STUDENT, отображающую следующие сообщения.

C:\> coffee insert_data.coffee
Successfully connected
Data inserted successfully

Чтение / получение данных

Вы можете получить данные из таблицы SQLite с помощью функции each () . Эта функция принимает дополнительную функцию обратного вызова, которая будет вызываться в каждой строке.

Следующая программа CoffeeScript показывает, как мы можем извлекать и отображать записи из таблицы с именем STUDENT, созданной в предыдущем примере

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  console.log "The contents of the table STUDENT are ::"
  db.each 'SELECT rowid AS id, name,age,city FROM STUDENT', (err, row) ->
    console.log row.id + ': ' +row.name+', '+ row.age+', '+ row.city
    return
  return
db.close()

Сохраните приведенный выше код в файле с именем retrive_data.coffee и выполните его, как показано ниже. Это извлекает все записи в таблице с именем STUDENT и отображается на консоли следующим образом.

C:\> coffee retrive_data.coffee
Successfully connected
The contents of the table STUDENT are ::
1: Ram, 24, Hyderabad
2: Robert, 25, Mumbai
3: Rahim, 26, Bangalore

Обновление данных

Следующий код CoffeeScript показывает, как мы можем использовать оператор UPDATE для обновления любой записи, а затем извлекать и отображать обновленные записи в таблице с именем STUDENT.

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  #Updating data
  stmt = db.prepare('UPDATE STUDENT SET city = ? where name = ?')
  stmt.run 'Delhi','Ram'
  console.log "Table updated"
  stmt.finalize()

  #Retrieving data after update operation
  console.log "The contents of the table STUDENT after update operation are ::"
  db.each 'SELECT rowid AS id, name, city FROM STUDENT', (err, row) ->
    console.log row.id + ': ' +row.name+', '+ row.city
    return
  return
db.close()

Сохраните приведенный выше код в файле с именем update_data.coffee и выполните его, как показано ниже. Это обновляет город студента по имени Рам и отображает все записи в таблице после операции обновления следующим образом.

C:\> coffee update_data.coffee
Successfully connected
Table updated
The contents of the table STUDENT after update operation are ::
1: Ram, Delhi
2: Robert, Mumbai
3: Rahim, Bangalore

Удаление данных

Следующий код CoffeeScript показывает, как мы можем использовать инструкцию DELETE, чтобы удалить любую запись, а затем извлечь и отобразить оставшиеся записи из таблицы с именем STUDENT.

#Creating sqlite3 package
sqlite3 = require('sqlite3').verbose()

#Creating a Database instance
db = new (sqlite3.Database)('test.db')
console.log "Successfully connected"

db.serialize ->
  #Deleting data
  stmt = db.prepare('DELETE FROM STUDENT WHERE name = ?')
  stmt.run 'Ram'
  console.log "Record deleted"
  stmt.finalize()

  #Retrieving data after delete operation
  console.log "The contents of the table STUDENT after delete operation are ::"
  db.each 'SELECT rowid AS id, name, city FROM STUDENT', (err, row) ->
    console.log row.id + ': ' +row.name+', '+ row.city
    return
  return
db.close()

Сохраните приведенный выше код в файле с именем delete_data.coffee и выполните его, как показано ниже. Он удаляет запись ученика по имени Рам и отображает все оставшееся в таблице после операции удаления следующим образом.