📜  MySQL 速查表 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:44:30.895000             🧑  作者: Mango

MySQL 速查表 - TypeScript

本速查表主要介绍在使用 TypeScript 开发时,如何使用 MySQL 数据库进行数据交互。涉及到的内容包括连接 MySQL 数据库、查询、插入、修改和删除等常用操作。

安装依赖

在使用 TypeScript 进行 MySQL 开发前,需要安装 mysql 模块和 @types/mysql 模块。

npm install mysql
npm install @types/mysql --save-dev
连接 MySQL 数据库

在 TypeScript 文件中使用 mysql 模块连接 MySQL 数据库的代码如下:

import mysql from 'mysql';

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'test'
});

connection.connect((err) => {
  if (err) {
    console.error('Error connecting to MySQL database', err);
    return;
  }

  console.log('Successfully connected to MySQL database');
});

其中,createConnection 函数用于创建 MySQL 数据库连接,参数包括 hostuserpassworddatabase,即连接的主机、用户名、密码和数据库名。connect 函数用于连接到 MySQL 数据库。如果连接失败,会打印出错误信息。

查询数据

查询 MySQL 数据库的方式有两种:回调函数和 Promise

使用回调函数查询 MySQL 数据库的代码如下:

connection.query('SELECT * FROM users', (err, results) => {
  if (err) {
    console.error('Error querying MySQL database', err);
    return;
  }

  console.log('MySQL query results:', results);
});

其中,query 函数用于执行查询语句。第一个参数是要执行的 SQL 语句,第二个参数是一个回调函数,其中第一个参数为可能出现的错误,第二个参数为查询结果。

使用 Promise 查询 MySQL 数据库的代码如下:

const query = (sql: string): Promise<any> => {
  return new Promise((resolve, reject) => {
    connection.query(sql, (err, results) => {
      if (err) {
        reject(err);
      } else {
        resolve(results);
      }
    });
  });
};

query('SELECT * FROM users')
  .then((results) => {
    console.log('MySQL query results:', results);
  })
  .catch((err) => {
    console.error('Error querying MySQL database', err);
  });

其中,query 函数返回一个 Promise 对象,使用 resolvereject 分别返回查询结果和错误信息。使用 then 处理查询结果,使用 catch 处理错误信息。

插入数据

插入数据的方式同样有两种:回调函数和 Promise

使用回调函数插入数据的代码如下:

connection.query('INSERT INTO users (name, age) VALUES (?, ?)', ['Alice', 18], (err, results) => {
  if (err) {
    console.error('Error inserting data into MySQL database', err);
    return;
  }

  console.log('Successfully inserted data into MySQL database');
});

其中,? 表示参数占位符,后面的数组依次对应这些占位符。

使用 Promise 插入数据的代码如下:

const insert = (sql: string, values: any[]): Promise<any> => {
  return new Promise((resolve, reject) => {
    connection.query(sql, values, (err, results) => {
      if (err) {
        reject(err);
      } else {
        resolve(results);
      }
    });
  });
};

insert('INSERT INTO users (name, age) VALUES (?, ?)', ['Alice', 18])
  .then(() => {
    console.log('Successfully inserted data into MySQL database');
  })
  .catch((err) => {
    console.error('Error inserting data into MySQL database', err);
  });
修改数据

修改数据同样有两种方式:回调函数和 Promise

使用回调函数修改数据的代码如下:

connection.query('UPDATE users SET age = ? WHERE name = ?', [20, 'Alice'], (err, results) => {
  if (err) {
    console.error('Error updating data in MySQL database', err);
    return;
  }

  console.log('Successfully updated data in MySQL database');
});

其中,UPDATE 语句用于修改数据。第一个参数表示要修改的数据表,第二个参数表示要修改的字段和新值,第三个参数表示修改的条件。

使用 Promise 修改数据的代码如下:

const update = (sql: string, values: any[]): Promise<any> => {
  return new Promise((resolve, reject) => {
    connection.query(sql, values, (err, results) => {
      if (err) {
        reject(err);
      } else {
        resolve(results);
      }
    });
  });
};

update('UPDATE users SET age = ? WHERE name = ?', [20, 'Alice'])
  .then(() => {
    console.log('Successfully updated data in MySQL database');
  })
  .catch((err) => {
    console.error('Error updating data in MySQL database', err);
  });
删除数据

删除数据同样有两种方式:回调函数和 Promise

使用回调函数删除数据的代码如下:

connection.query('DELETE FROM users WHERE age > ?', [18], (err, results) => {
  if (err) {
    console.error('Error deleting data from MySQL database', err);
    return;
  }

  console.log('Successfully deleted data from MySQL database');
});

其中,DELETE 语句用于删除数据。第一个参数表示要删除的数据表,第二个参数表示删除的条件。

使用 Promise 删除数据的代码如下:

const del = (sql: string, values: any[]): Promise<any> => {
  return new Promise((resolve, reject) => {
    connection.query(sql, values, (err, results) => {
      if (err) {
        reject(err);
      } else {
        resolve(results);
      }
    });
  });
};

del('DELETE FROM users WHERE age > ?', [18])
  .then(() => {
    console.log('Successfully deleted data from MySQL database');
  })
  .catch((err) => {
    console.error('Error deleting data from MySQL database', err);
  });
});

以上就是在使用 TypeScript 开发时,如何使用 MySQL 数据库进行数据交互的速查表。