데이터베이스 MySQL을 위한 node.js의 기본 작업 방법은 무엇입니까?

WBOY
풀어 주다: 2023-06-03 14:33:54
앞으로
906명이 탐색했습니다.

데이터베이스 MySQL의 기본 작업(추가, 삭제, 수정, 확인)

전체 블로그의 통합 테이블 구조는 다음과 같습니다.
사용자 테이블에는 ID 사용자 이름 비밀번호 상태라는 4개의 필드가 있으며, 4개의 필드는 4개의 열을 나타냅니다. 자동 증가 열, 상태의 기본값은 0, 선택적 값 0, 1
id 자동 증가, 사용자 이름은 zs, ls, wu 비밀번호: 123456 abcdef 123abc 상태는 0, 1, 1

#查询整张表的所有数据
select * from users

#查询指定列的所有数据
select username,password from users

#指定某列添加数据
insert into users(username,password) values('萧寂','1234')

#指定某列修改数据
update users set username="你好a",password="1234567",status=1 where id=2

#根据id删除行
delete from users where id=4

#查询status为1的所有用户
SELECT *FROM users WHERE status=1

#查询id 大于2的所有用户
SELECT *FROM users WHERE id>2

#查询username不等于admin的所有用户
SELECT *FROM users WHERE username<>&#39;admin&#39;

#使用AND来显示所有status为0,并且id 小于3的用户:
SELECT * FROM users WHERE status=0 AND id<3

#使用OR来显示所有status为1,或者username为zs的用户
SELECT* FROM users WHERE status=1 OR username=&#39;zs&#39;

#对users表中的数据,按照status字段进行升序排序
SELECT * FROM users ORDER BY status;(升序排序在status后加上ASC效果等同)
select * from users order by status asc

#根据id降序排序,降序排序使用desc关键字
select * from users order by id desc

#多重排序 对users 表中的数据,先按照status字段进行降序排序,再按照username的字母顺序,进行升序排序
SELECT * FROM users ORDER BY status DESC,username asc

#查询id为1的数据返回的总条数
select count(*) from users where id=1

#将列名称从COUNT(*)修改为total
SELECT COUNT(*) AS total FROM users WHERE id=1

#给username列添加uname别名,给password列添加upwd别名
select username as uname,password as upwd from users
로그인 후 복사

node.js 프로젝트 추가, 삭제, 수정 및 체크인

먼저 명령을 실행하여 package.json 패키지를 초기화하세요

npm init -y  (文件名为英文,不能有空格、特殊字符或中文,否则报错)
로그인 후 복사

mysql 모듈은 npm에서 호스팅되는 타사 모듈입니다. Node.js 프로젝트에서 MySQL 데이터베이스를 연결하고 운영할 수 있는 기능을 제공합니다.
프로젝트에서 사용하려면 먼저 다음 명령을 실행하여 mysql을 프로젝트의 종속성 패키지로 설치해야 합니다.

npm install mysql   或者  npm i mysql
로그인 후 복사

위 작업이 완료된 후 MySQL 모듈 구성을 시작하세요

구성 MySQL 모듈

mysql 모듈을 사용하여 MySQL 운영 데이터베이스를 설치하기 전에 먼저 mysql 모듈을 구성해야 합니다. 주요 구성 단계는 다음과 같습니다.

//导入MySQL模块
const mysql = require("mysql")
//建立与MySQL数据库的连接
const db = mysql.createPool({
    host: "127.0.0.1", //数据库的IP地址
    user: "root",  //登录数据库的账号
    password: "admin",  //登录数据库的密码
    database: "xiaoji"  //指定要操作哪个数据库
})
로그인 후 복사

모듈이 정상적으로 작동하는지 테스트합니다(실행 실행) 명령 노드 파일 이름 또는 nodemon 파일 이름)

db.query() 함수를 호출하고 실행할 SQL 문을 지정합니다. 실행 결과는 콜백 함수를 통해 가져옵니다

db.query("select 1", function (err, results) {
    //模块报错返回错误信息
    if (err) return console.log(err.message);
    //运行成功
    console.log(results);
})
로그인 후 복사

성공한 테스트의 반환 결과는 다음과 같습니다. [ RowDataPacket { ‘1’: 1 } ]

쿼리 테이블의 SQL 코드(테이블 이름 및 구조 참조) 첫 번째 줄)

查询数据user表中所有的用户数据
const sqlStr = "select * from users"
db.query(sqlStr, function (err, results) {
    //查询失败
    if (err) return console.log(err.message);
    //查询成功
    //注意如果执行的是select查询语句,则执行的结果是数组
    console.log(results);
})
로그인 후 복사

데이터를 추가하는 SQL문(2가지 메소드)

//插入数据
//向users表中新增数据,其中username为Spider-Man,password为pcc321
//要插入到users表中的数据对象
const user = { username: "Spider-Man", password: "pcc321" }
//待执行的SQL语句,其中的?表示占位符
const sqlStr = "insert into student(student,card) values(?,?)"
//使用数组的形式,依次为?占位符具体的值(result.affectedRows为影响的行数)
db.query(sqlStr, [user.username, user.password], function (err, results) {
    if (err) return console.log(err.message);
    if (results.affectedRows == 1) {
        console.log("插入成功");
    }
})
//向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据:
//要插入到users表中的数据对象
const user = { username: "Spider2-Man", password: "pcc321" }
//待执行的SQL语句,其中的?表示占位符
const sqlStr = "insert into users set ?"
db.query(sqlStr, user, function (err, results) {
    if (err) return console.log(err.message);
    if (results.affectedRows == 1) {
        console.log("插入成功");
    }
})
로그인 후 복사

데이터를 수정하는 SQL문(2가지) 방법)

//修改表中的数据
//向users表中更新的数据,其中username为Spider-Man,password为pcc321,id为5
const user = { id: 7, username: "xiao1jiao", password: "111222" }
//待执行的sql语句,其中的?表示占位符
const sqlStr = "update users set username=?,password=? where id=?"
//使用数组的形式,依次为?占位符具体的值(result.affectedRows为影响的行数)
db.query(sqlStr, [user.username, user.password, user.id], function (err, results) {
    if (err) return console.log(err.message);
    if (results.affectedRows == 1) {
        console.log("修改", user.id, "列成功");
    }
})
//修改表数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速修改表数据
//向users表中更新的数据,其中username为aaaa,password为1111,id为5
const user = { id: 5, username: "aaaa", password: "1111" }
//待执行的sql语句,其中的?表示占位符
const sqlStr = "update users set ? where id=?"
//使用数组的形式,依次为?占位符具体的值(result.affectedRows为影响的行数)
db.query(sqlStr, [user, user.id], function (err, results) {
if (err) return console.log(err.message);
if (results.affectedRows == 1) {
    console.log("修改", user.id, "列成功");
}
})
로그인 후 복사

데이터 삭제를 위한 SQL 문

//在删除数据时,推荐根据id这样的唯一标识,来删除对应的数据。示例如下:
const sqlStr = "delete from users where id=?"
//调用db.query(O)执行SQL语句的同时,为占位符指定具体的值
//注意:如果SQL语句中有多个占位符,则必须使用数组为每个占位符指定具体的值
//如果SQL语句中只有一个占位符,则可以省略数组
db.query(sqlStr, 5, function (err, results) {
    if (err) return console.log(err.message);
    //注意:执行 delete语句之后,结果也是一个对象,也会包含 affectedRows属性
    if (results.affectedRows == 1) {
        console.log("删除成功");
    }
})
로그인 후 복사

삭제 상황 표시

//标记删除
//使用DELETE语句,会把真正的把数据从表中删除掉。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作。
//所谓的标记删除,就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除。
//当用户执行了删除的动作时,我们并没有执行DELETE语句把数据删除掉,而是执行了UPDATE语句,将这条数据对应的status字段标记为删除即可。
//标记删除:使用 UPDATE语句替代 DELETE语句;只更新数据的状态,并没有真正删除
const sqlStr = "update users set status=? where id=?"
db.query(sqlStr, [0, 7], function (err, results) {
    if (err) return console.log(err.message);
    if (results.affectedRows == 1) {
        console.log("标记删除成功");
    }
})
로그인 후 복사

참고: 글에 설명된 자리 표시자 표시 방법은 호환성이 더 좋습니다. 저자는 한 번 테스트를 수행하고 기본 SQL 문을 사용하여 필드를 연결하고 직접 실행했습니다. 결과적으로 서식 있는 텍스트 데이터를 처리할 때 오류가 보고되었습니다. 문자 이스케이프가 필요합니다. ? 자리 표시자를 사용하면 이런 일이 발생하지 않습니다.

위 내용은 데이터베이스 MySQL을 위한 node.js의 기본 작업 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!