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 и выполните его, как показано ниже. Он удаляет запись ученика по имени Рам и отображает все оставшееся в таблице после операции удаления следующим образом.