Rumah > pangkalan data > tutorial mysql > Apakah kaedah operasi asas node.js untuk pangkalan data MySQL?

Apakah kaedah operasi asas node.js untuk pangkalan data MySQL?

WBOY
Lepaskan: 2023-06-03 14:33:54
ke hadapan
974 orang telah melayarinya

Operasi asas pangkalan data MySQL (tambah, padam, ubah suai, semak)

Struktur jadual bersatu seluruh blog ialah:
Jadual pengguna mempunyai empat medan id status kata laluan nama pengguna, dan empat medan mewakili empat lajur, antaranya id Ia adalah lajur kenaikan automatik Nilai lalai status ialah 0. Nilai pilihan ialah 0. 1
id ditambah secara automatik Nama pengguna ialah zs, ls dan wu. Kata laluan ialah: 123456 abcdef 123abc Statusnya ialah 0, 1, 1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

#查询整张表的所有数据

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

Salin selepas log masuk

Tambah, padam, ubah suai dan semak dalam projek node.js

Pertama. laksanakan arahan untuk memulakan pakej package.json

1

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

Salin selepas log masuk

modul mysql diuruskan Modul pihak ketiga pada npm. Ia menyediakan keupayaan untuk menyambung dan mengendalikan pangkalan data MySQL dalam projek Node.js.
Jika anda ingin menggunakannya dalam projek anda, anda perlu menjalankan arahan berikut terlebih dahulu untuk memasang mysql sebagai pakej pergantungan projek:

1

npm install mysql   或者  npm i mysql

Salin selepas log masuk

Selepas operasi di atas selesai, mulakan mengkonfigurasi modul MySQL

Mengkonfigurasi modul MySQL

Sebelum menggunakan modul mysql untuk mengendalikan pangkalan data MySQL, anda mesti terlebih dahulu melakukan konfigurasi yang diperlukan pada modul mysql adalah seperti berikut:

1

2

3

4

5

6

7

8

9

//导入MySQL模块

const mysql = require("mysql")

//建立与MySQL数据库的连接

const db = mysql.createPool({

    host: "127.0.0.1", //数据库的IP地址

    user: "root"//登录数据库的账号

    password: "admin"//登录数据库的密码

    database: "xiaoji"  //指定要操作哪个数据库

})

Salin selepas log masuk

Uji sama ada modul boleh Sama ada sambungan berfungsi seperti biasa (laksanakan nama fail nod arahan run atau nama fail nodemon)

Panggil db.query() fungsi, nyatakan pernyataan SQL untuk dilaksanakan dan dapatkan hasil pelaksanaan melalui fungsi panggil balik

1

2

3

4

5

6

db.query("select 1", function (err, results) {

    //模块报错返回错误信息

    if (err) return console.log(err.message);

    //运行成功

    console.log(results);

})

Salin selepas log masuk

Hasil pulangan ujian yang berjaya ialah: [ RowDataPacket { ‘1’: 1 } ]

Kod SQL untuk menanyakan jadual (lihat baris pertama untuk nama dan struktur jadual)

1

2

3

4

5

6

7

8

9

查询数据user表中所有的用户数据

const sqlStr = "select * from users"

db.query(sqlStr, function (err, results) {

    //查询失败

    if (err) return console.log(err.message);

    //查询成功

    //注意如果执行的是select查询语句,则执行的结果是数组

    console.log(results);

})

Salin selepas log masuk

Pernyataan SQL untuk menambah data (dua kaedah)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//插入数据

//向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("插入成功");

    }

})

Salin selepas log masuk

Pernyataan SQL untuk mengubah suai data (dua kaedah)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//修改表中的数据

//向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, "列成功");

}

})

Salin selepas log masuk

Pernyataan SQL untuk memadam data

1

2

3

4

5

6

7

8

9

10

11

12

//在删除数据时,推荐根据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("删除成功");

    }

})

Salin selepas log masuk

Tandai situasi pemadaman

1

2

3

4

5

6

7

8

9

10

11

12

//标记删除

//使用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("标记删除成功");

    }

})

Salin selepas log masuk

Nota: Kaedah penandaan pemegang tempat yang disebut dalam artikel mempunyai kesesuaian yang lebih baik. Ini tidak akan berlaku apabila menggunakan pemegang tempat.

Atas ialah kandungan terperinci Apakah kaedah operasi asas node.js untuk pangkalan data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan