MySQL2'yi Deno ile Kullanma
MySQL en popüler veritabanıdır ve 2022 Stack Overflow Geliştirici Anketinde Facebook, Twitter, YouTube ve Netflix gibi kullanıcıları bulunmaktadır.
Deno ile bir MySQL veritabanını mysql2
node paketini kullanarak ve npm:mysql2
ile içe aktararak manipüle edebilir ve sorgulayabilirsiniz. Bu,
Promise sarmalayıcısını kullanmamıza ve üst düzey await avantajlarından yararlanmamıza olanak tanır.
import mysql from "npm:mysql2@^2.3.3/promise";
MySQL'e Bağlanma
MySQL sunucumuza createConnection()
yöntemini kullanarak bağlanabiliriz.
Host'a (test ediyorsanız
localhost`, muhtemelen üretimde bulut veritabanı uç noktası) ve kullanıcı ve şifreye ihtiyacınız var:
const connection = await mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
});
Bağlantı oluşturma sırasında isteğe bağlı olarak bir veritabanı da belirtebilirsiniz. Burada mysql2
kullanarak veritabanını anında oluşturacağız.
Veritabanını Oluşturma ve Doldurma
Bağlantınız çalışmaya başladığında, veritabanları ve tablolar oluşturmak, ayrıca başlangıç verilerini eklemek için connection.query()
ile SQL komutlarını kullanabilirsiniz.
Öncelikle kullanmak için veritabanını oluşturmak ve seçmek istiyoruz:
await connection.query("CREATE DATABASE denos");
await connection.query("use denos");
Sonrasında tabloyu oluşturmak istiyoruz:
await connection.query(
"CREATE TABLE `dinosaurs` ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) NOT NULL, `description` varchar(255) )",
);
Not: Tablo oluşturulduktan sonra verileri doldurabiliriz.
await connection.query(
"INSERT INTO `dinosaurs` (id, name, description) VALUES (1, 'Aardonyx', 'Sauropodların evriminde erken bir aşama.'), (2, 'Abelisaurus', 'Abel'in kertenkele'si tek bir kafatasından yeniden yapılandırılmıştır.'), (3, 'Deno', 'Şimdiye kadar yaşamış en hızlı dinozor.')",
);
Artık sorgulamaya başlamak için tüm veriler hazır.
MySQL Sorgulama
Aynı connection.query()
yöntemini sorgularımızı yazmak için kullanabiliriz. Öncelikle dinosaurs
tablosundaki tüm verileri almaya çalışıyoruz:
const results = await connection.query("SELECT * FROM `dinosaurs`");
console.log(results);
Bu sorgunun sonucu veritabanımızdaki tüm verilerdir:
[
[
{
id: 1,
name: "Aardonyx",
description: "Sauropodların evriminde erken bir aşama."
},
{
id: 2,
name: "Abelisaurus",
description: `Abel'in kertenkele'si tek bir kafatasından yeniden yapılandırılmıştır.`
},
{ id: 3, name: "Deno", description: "Şimdiye kadar yaşamış en hızlı dinozor." }
],
Eğer veritabanından sadece tek bir elementi almak istiyorsak, sorgumuzu değiştirebiliriz:
const [results, fields] = await connection.query(
"SELECT * FROM `dinosaurs` WHERE `name` = 'Deno'",
);
console.log(results);
Bu, bize tek bir satır sonucunu verir:
[{ id: 3, name: "Deno", description: "Şimdiye kadar yaşamış en hızlı dinozor." }];
Son olarak, bağlantıyı kapatabiliriz:
await connection.end();
mysql2
hakkında daha fazla bilgi için belgelerine göz atabilirsiniz
buradan.