Таблицы mysql в javascript

Node.js MySQL

To be able to experiment with the code examples, you should have MySQL installed on your computer.

You can download a free MySQL database at https://www.mysql.com/downloads/.

Install MySQL Driver

Once you have MySQL up and running on your computer, you can access it by using Node.js.

To access a MySQL database with Node.js, you need a MySQL driver. This tutorial will use the «mysql» module, downloaded from NPM.

To download and install the «mysql» module, open the Command Terminal and execute the following:

Now you have downloaded and installed a mysql database driver.

Node.js can use this module to manipulate the MySQL database:

Create Connection

Start by creating a connection to the database.

Use the username and password from your MySQL database.

var con = mysql.createConnection( host: «localhost»,
user: «yourusername«,
password: «yourpassword»
>);

con.connect(function(err) if (err) throw err;
console.log(«Connected!»);
>);

Save the code above in a file called «demo_db_connection.js» and run the file:

Which will give you this result:

Now you can start querying the database using SQL statements.

Query a Database

Use SQL statements to read from (or write to) a MySQL database. This is also called «to query» the database.

The connection object created in the example above, has a method for querying the database:

con.connect(function(err) <
if (err) throw err;
console.log(«Connected!»);
con.query(sql, function (err, result) <
if (err) throw err;
console.log(«Result: » + result);
>);
>);

The query method takes an sql statements as a parameter and returns the result.

Learn how to read, write, delete, and update a database in the next chapters.

Read more about SQL statements in our SQL Tutorial.

Источник

Таблицы mysql в javascript

Все операции с данными опираются на команды языка SQL, про которые подробно можно прочитать в соответствующем руководстве. Тем не менее рассмотрим вкратце базовые операции с бд.

Создание базы данных

Создадим базу данных на сервере MySQL через Node.js:

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", password: "123456" >); connection.query("CREATE DATABASE usersdb2", function(err, results) < if(err) console.log(err); else console.log("База данных создана"); >); connection.end();

В данном случае посредство команды CREATE DATABASE создается база данных usersdb2.

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

Теперь добавим в выше созданную базу данныз usersdb2 таблицу:

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = `create table if not exists users( id int primary key auto_increment, name varchar(255) not null, age int not null )`; connection.query(sql, function(err, results) < if(err) console.log(err); else console.log("Таблица создана"); >); connection.end();

Для создания таблицы применяется команда CREATE TABLE , которая создается таблицу users с тремя столбцами — id, name и age.

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

Для добавления применяется SQL-команда INSERT . Добавим данные в ранее созданную таблицу users:

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = `INSERT INTO users(name, age) VALUES('Sam', 31)`; connection.query(sql, function(err, results) < if(err) console.log(err); console.log(results); >); connection.end();

В данном случае в таблицу добавляется одна строка, где столбец name имеет значение «Sam», столбец age — значение 31. С помощью параметра results в функции обратного вызова мы можем получить результаты операции. Например, в моем случае консольный вызов будет следующим:

C:\node\mysqlapp> node app.js ResultSetHeader

В данном случае мы видим, что возвращается объект, где можно выделить ряд свойств. Прежде всего, это affectedRows — количество затронутых операцией строк (в данном случае количество добавленных строк) и insertId — идентификатор (значение поля id) добавленной записи. Соответственно, если бы нам потребовалось получить id добавленной строки, то мы могли бы написать так:

connection.query(sql, function(err, results) < if(err) console.log(err); console.log(results.insertId); >);

Добавление множества значений

Добавим сразу несколько значений:

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const users = [ ["Bob", 22], ["Alice", 25], ["Kate", 28] ]; const sql = `INSERT INTO users(name, age) VALUES ?`; connection.query(sql, [users], function(err, results) < if(err) console.log(err); console.log(results); >); connection.end();

При добавлении множества объектов в sql-запросе после VALUES указывается один вопросительный знак.

И при успешном добавлении свойство results.affectedRows укажет, то добавлено три строки:

C:\node\mysqlapp> node app.js ResultSetHeader

Однако в этом случае следует учитывать, что мы не сможем получить id всех добавленных строк.

Получение данных

Для получения данных применяется sql-команда SELECT . Например, получим все данные из таблицы users:

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = `SELECT * FROM users`; connection.query(sql, function(err, results) < if(err) console.log(err); console.log(results); >); connection.end();

Объект results в функции обратного вызова будет представлять массив полученных из БД данных:

C:\node\mysqlapp> node app.js [ TextRow < id: 1, name: 'Sam', age: 31 >, TextRow < id: 2, name: 'Tom', age: 29 >, TextRow < id: 3, name: 'Bob', age: 22 >, TextRow < id: 4, name: 'Alice', age: 25 >, TextRow < id: 5, name: 'Kate', age: 28 >, TextRow < id: 6, name: 'Tim', age: 22 >, TextRow < id: 7, name: 'Tom', age: 25 >]

Соответственно после получения мы сможем работать с этими данными как с обычным массивом объектов. Например, выведем только имя для каждого пользователя из базы данных:

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = "SELECT * FROM users"; connection.query(sql, function(err, results) < if(err) console.log(err); const users = results; for(let i=0; i < users.length; i++)< console.log(users[i].name); >>); connection.end();
C:\node\mysqlapp> node app.js Sam Tom Bob Alice Kate Tim Tom

Фильтрация данных

Выполним фильтрацию данных с применением выражения WHERE :

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = `SELECT * FROM users WHERE name=? AND age=?`; const filter = ["Tom", 29]; connection.query(sql, filter, function(err, results) < if(err) console.log(err); console.log(results); >); connection.end();

Здесь запрос фактически будет выглядеть как SELECT * FROM users WHERE name=»Tom» AND age=29 , и в прицнипе мы могли бы напрямую ввести данные в запрос. Однако чтобы избежать sql-инъекций при передаче в запрос данных извне рекомендуется использовать параметризацию.

Обновление

Для обновления данных применяется sql-команда UPDATE :

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = `UPDATE users SET age=? WHERE name=?`; const data = [34, "Tom"]; connection.query(sql, data, function(err, results) < if(err) console.log(err); console.log(results); >); connection.end();

C:\node\mysqlapp> node app.js ResultSetHeader

С помощью свойства affectedRows объекта results мы можем проверить, сколько строк было обновлено.

Удаление

Для удаления применяется sql-команда DELETE :

const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb2", password: "123456" >); const sql = "DELETE FROM users WHERE name=?"; const data = ["Sam"]; // удаляем пользователей с именем Sam connection.query(sql, data, function(err, results) < if(err) console.log(err); console.log(results); >); connection.end();

C:\node\mysqlapp> node app.js ResultSetHeader

Источник

Node.js MySQL Create Table

To create a table in MySQL, use the «CREATE TABLE» statement.

Make sure you define the name of the database when you create the connection:

Example

Create a table named «customers»:

var con = mysql.createConnection( host: «localhost»,
user: «yourusername«,
password: «yourpassword«,
database: «mydb»
>);

con.connect(function(err) if (err) throw err;
console.log(«Connected!»);
var sql = «CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))»;
con.query(sql, function (err, result) if (err) throw err;
console.log(«Table created»);
>);
>);

Save the code above in a file called «demo_create_table.js» and run the file:

Which will give you this result:

Primary Key

When creating a table, you should also create a column with a unique key for each record.

This can be done by defining a column as «INT AUTO_INCREMENT PRIMARY KEY» which will insert a unique number for each record. Starting at 1, and increased by one for each record.

Example

Create primary key when creating the table:

var con = mysql.createConnection( host: «localhost»,
user: «yourusername«,
password: «yourpassword«,
database: «mydb»
>);

con.connect(function(err) if (err) throw err;
console.log(«Connected!»);
var sql = «CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))»;
con.query(sql, function (err, result) if (err) throw err;
console.log(«Table created»);
>);
>);

If the table already exists, use the ALTER TABLE keyword:

Example

Create primary key on an existing table:

var con = mysql.createConnection( host: «localhost»,
user: «yourusername«,
password: «yourpassword«,
database: «mydb»
>);

con.connect(function(err) if (err) throw err;
console.log(«Connected!»);
var sql = «ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY«;
con.query(sql, function (err, result) if (err) throw err;
console.log(«Table altered»);
>);
>);

Источник

Creating Tables in MySQL from Node.js

Summary: in this tutorial, you will learn how to create a new table in MySQL database from a node.js application.

To create a table from node.js, you use these steps:

  1. Connect to the MySQL database server.
  2. Call the query() method on the connection object to execute a CREATE TABLE statement.
  3. Close the database connection.

The following example (query.js) shows you how to connect to the todoapp database and execute a CREATE TABLE statement:

let mysql = require('mysql'); let connection = mysql.createConnection(< host: 'localhost', user: 'root', password: '', database: 'todoapp' >); // connect to the MySQL server connection.connect(function(err) < if (err) < return console.error('error: ' + err.message); > let createTodos = `create table if not exists todos( id int primary key auto_increment, title varchar(255)not null, completed tinyint(1) not null default 0 )`; connection.query(createTodos, function(err, results, fields) < if (err) < console.log(err.message); > >); connection.end(function(err) < if (err) < return console.log(err.message); > >); >); Code language: JavaScript (javascript)

The query() method accepts an SQL statement and a callback. The callback function takes three arguments:

  • error: stores the detailed error if an error occurred during the execution of the statement
  • results: contains the results of the query
  • fields: contains results fields information if any
> node query.js Code language: JavaScript (javascript)

The query executed successfully without error.

Let’s check whether the todos table created in the database:

>mysql -u root -p todoapp; Enter password: ********* mysql> show tables; +-------------------+ | Tables_in_todoapp | +-------------------+ | todos | +-------------------+ 1 row in set (0.08 sec) Code language: JavaScript (javascript)

As you can see, the todos table created within the todoapp database.

In this tutorial, you have learned how to create a new table in a MySQL database.

Источник

Читайте также:  Raspberry pi programming in python
Оцените статью