国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison base de données tutoriel mysql Mysql pour développeur Mongoose.

Mysql pour développeur Mongoose.

Dec 24, 2024 pm 03:41 PM

Mysql  for Mongoose developer.

Introduction

  • Je m'en fiche.
  • MySQL est un système de gestion de bases de données relationnelles (SGBDR). Il s'agit d'un système de base de données open source, multi-utilisateurs et multithread qui permet de stocker et de gérer des données structurées dans des tables. Il utilise le Structured Query Language (SQL) pour gérer et manipuler les données.

Principales fonctionnalités de MySQL?:

  • Open Source
  • Multiplateforme
  • Base de données relationnelle?: MySQL est basé sur un modèle de base de données relationnelle, qui stocke les données dans des tables (également appelées relations).
  • Haute performance?: il est optimisé pour la vitesse et peut gérer efficacement une grande quantité de données.
  • ACID Compliant?: MySQL prend en charge les propriétés ACID (Atomicity, Consistency, Isolation, Durability), garantissant que les transactions de base de données sont traitées de manière fiable.
    • Atomicité garantit qu'une transaction est traitée comme une unité unique et indivisible. Soit toutes les opérations d'une transaction sont terminées avec succès, soit aucune d'entre elles n'est appliquée. Autrement dit, une transaction est atomique : c'est du ? tout ou rien ?.
    • La cohérence garantit qu'une transaction fait passer la base de données d'un état valide à un autre état valide. Après une transaction, toutes les données doivent être dans un état cohérent, adhérant à toutes les règles, contraintes et relations définies.
    • L'isolement garantit que les transactions sont exécutées indépendamment les unes des autres, même si elles se produisent simultanément. Chaque transaction doit être exécutée comme s'il s'agissait de la seule transaction en cours de traitement, évitant ainsi l'interférence d'autres transactions.
    • La durabilité garantit qu'une fois qu'une transaction est validée, elle est permanente, même en cas de pannes du système comme des pannes de courant ou des crashs. Les modifications apportées par la transaction sont enregistrées sur le disque et survivront à tout échec ultérieur.
  • Accès multi-utilisateur?: MySQL permet à plusieurs utilisateurs d'accéder simultanément à la base de données sans affecter les performances.

Mots-clés SQL

CRéER

  1. CRéER UNE BASE DE DONNéES
    • La commande CREATE DATABASE permet de créer une nouvelle base de données. Dans Mongoose, vous n'avez pas besoin de créer explicitement une base de données ; il est automatiquement créé lorsque vous vous connectez à la base de données.
// DB is created if it doesn't exist
mongoose.connect('mongodb://localhost/my_database');
CREATE DATABASE my_database;
  1. UTILISER LA BASE DE DONNéES
    • Le USE DB_NAME est utilisé pour sélectionner la base de données à utiliser. Dans Mongoose, ceci est géré par la cha?ne de connexion.
mongoose.connect('mongodb://localhost/my_database');
USE my_database;
  1. CRéER UNE TABLE
    • La commande CREATE TABLE permet de créer une nouvelle table dans la base de données. Dans Mongoose, cela revient à créer une nouvelle collection.
// DB is created if it doesn't exist
mongoose.connect('mongodb://localhost/my_database');
CREATE DATABASE my_database;
  1. CRéER UN INDEX
    • La commande CREATE INDEX est utilisée pour créer un index sur une table afin d'améliorer les performances des requêtes. Dans MongoDB, c'est la même chose.
mongoose.connect('mongodb://localhost/my_database');
USE my_database;

DéCRIRE

  • Utilisé en SQL pour visualiser la structure d'une table (ses colonnes, types de données, contraintes, etc.). Exemple Mongoose?: Dans MongoDB, il n'y a pas d'équivalent direct à DESCRIBE. Cependant, vous pouvez inspecter un schéma par programmation.
mongoose.model('User', UserSchema);
CREATE TABLE Users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);

INSéRER

  • La commande INSERT INTO est utilisée pour insérer de nouvelles lignes dans un tableau. En mangouste, vous insérez un nouveau document dans une collection/(Modèle).
UserSchema.index({ email: 1 }); // Unnamed Index
UserSchema.index({ email: 1 }, { name: 'idx_email' }); // Named Index
-- Syntax: CREATE INDEX index_name ON table_name (column_name);
CREATE INDEX idx_email ON Users (email); -- Named Index
CREATE INDEX ON Users (email); -- Unnamed Index

SéLECTIONNER

  • L'instruction SELECT en SQL est utilisée pour récupérer des données d'une base de données. Dans Mongoose, cela équivaut à utiliser la méthode .find() pour interroger une collection.
console.log(UserSchema.paths);
// Outputs details about the schema fields and types
DESCRIBE Users;

MISE à JOUR

  • L'instruction UPDATE est utilisée pour modifier les enregistrements existants dans une table. Dans Mangouste, vous utilisez find et update ou .update()
// In mongoose its equivalent to .save() or .create();
const newUser = new User({ name: 'John Doe', email: 'john@example.com' });
newUser.save()
INSERT INTO Users (name, email)
VALUES ('John Doe', 'john@example.com');

SUPPRIMER

  • L'instruction DELETE est utilisée pour supprimer les enregistrements existants dans une table. Dans Mangouste, nous utiliserions deleteOne, deleteMany ou find et delete.
const users = await User.find(); // Fetches all users
const { name, email } = await User.findById(1); // Fetches user with id = 1
SELECT * FROM Users; -- all users
SELECT name, email FROM Users WHERE id = 1; -- user of id 1

MODIFIER

  • L'instruction ALTER TABLE en SQL est utilisée pour modifier la structure d'une table existante (ajouter une colonne, supprimer une colonne et modifier une colonne). Dans Mongoose, l'opération équivalente consisterait à modifier le schéma pour inclure le nouveau champ, puis à gérer les mises à jour des documents existants si nécessaire.
// update all user of name kb
const query = { name: "kb" };
User.update(query, { name: "thekbbohara" })
-- update all user of name kb
UPDATE Users
SET name = "thekbbohara", email = "thekbbohara@gmail.com"
WHERE name = "kb";

REJOINDRE

  • Une clause JOIN est utilisée pour combiner des lignes de deux tables ou plus, en fonction d'une colonne liée entre elles. Dans MongoDB, les jointures ne sont pas supportées nativement comme dans les bases de données relationnelles. Au lieu de cela, vous utilisez généralement des pipelines d'agrégation comme $lookup pour des fonctionnalités similaires.
User.deleteOne({ _id: 1 })
// All users whose name is notKb will be deleted.
User.deleteMany({ name: "notKb" })

JOINTURE INTERNE

  • Le mot-clé INNER JOIN sélectionne les enregistrements qui ont des valeurs correspondantes dans les deux tables.
DELETE FROM Users WHERE id = 1;
DELETE FROM Users WHERE name = "notKb"
-- All users whose name is notKb will be deleted.

REJOINDRE à GAUCHE

  • Le mot-clé LEFT JOIN renvoie tous les enregistrements de la table de gauche (table1) et les enregistrements correspondants (le cas échéant) de la table de droite (table2).
// Update the UserSchema to add the 'age' field
const UserSchema = new mongoose.Schema({
    name: String,
    email: String,
    age: Number, // New field
});

REJOINDRE à DROITE

  • Le mot-clé RIGHT JOIN renvoie tous les enregistrements de la table de droite (table2) et les enregistrements correspondants (le cas échéant) de la table de gauche (table1).
-- Adds an 'age' column to the Users table
ALTER TABLE Users ADD age INT;

-- Delete 'Email' column from Users table
ALTER TABLE Users DROP COLUMN email;

-- Makes 'id' column unsigned and auto-incrementing
ALTER TABLE Users MODIFY COLUMN id INT UNSIGNED AUTO_INCREMENT;

JOINTION CROISéE

  • Le mot-clé CROSS JOIN renvoie tous les enregistrements des deux tables (table1 et table2).
// DB is created if it doesn't exist
mongoose.connect('mongodb://localhost/my_database');

TYPES DE DONNéES

Dans MySQL, il existe trois types de données principaux?: cha?ne, numérique et date et heure. Mais dans MongoDB, il existe une variété de types de données, mais ils diffèrent de ceux de MySQL. MongoDB utilise BSON (Binary JSON) pour stocker les données, qui prend en charge un riche ensemble de types de données. Voici une comparaison des types de données courants dans MySQL et MongoDB?:

Types de données de cha?ne

MySQL MongoDB (BSON) Notes
CHAR, VARCHAR String Both store textual data. MongoDB's String is analogous to VARCHAR.
TEXT, TINYTEXT, etc. String No separate TEXT type in MongoDB; all textual data is stored as String.

Types de données numériques

MySQL MongoDB (BSON) Notes
INT, SMALLINT, etc. NumberInt Represents 32-bit integers.
BIGINT NumberLong Represents 64-bit integers.
FLOAT, DOUBLE NumberDouble Represents floating-point numbers.
DECIMAL, NUMERIC String or custom MongoDB doesn't have an exact equivalent; use String for precision.

Types de données de date et d'heure

MySQL MongoDB (BSON) Notes
DATE Date Both store date-only values.
DATETIME, TIMESTAMP Date MongoDB stores both date and time as a Date object.
TIME String or custom MongoDB does not have a direct TIME type; store as String if needed.
YEAR String or Int Represented using String or NumberInt.

Types de données booléens

MySQL MongoDB (BSON) Notes
BOOLEAN, TINYINT(1) Boolean Both store true/false values.

Types de données binaires

MySQL MongoDB (BSON) Notes
BLOB, TINYBLOB, etc. BinData MongoDB's BinData is used for storing binary data like files.

Types de données JSON/tableau

MySQL MongoDB (BSON) Notes
JSON Object MongoDB natively stores JSON-like documents as Object.
N/A Array MongoDB has a native Array type for storing lists of values.

Autres types de données

MySQL MongoDB (BSON) Notes
ENUM String or custom Use a String field with validation for enumerated values.
SET Array Use an Array to represent sets of values.
N/A ObjectId Unique identifier type in MongoDB, typically used as a primary key.
N/A Decimal128 Used for high-precision decimal numbers in MongoDB.

CLé PRIMAIRE

  • Garantit que chaque ligne d'un tableau possède un identifiant unique.
// DB is created if it doesn't exist
mongoose.connect('mongodb://localhost/my_database');
CREATE DATABASE my_database;

CLé éTRANGèRE

  • Garantit que les valeurs d'une colonne correspondent aux valeurs d'un autre tableau.
mongoose.connect('mongodb://localhost/my_database');
USE my_database;

Intégrité des données et contraintes

  1. NON NULL?: Garantit qu'une colonne ne peut pas avoir de valeurs NULL.
mongoose.model('User', UserSchema);
CREATE TABLE Users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE
);
  1. UNIQUE?: Garantit que toutes les valeurs d’une colonne sont uniques.
UserSchema.index({ email: 1 }); // Unnamed Index
UserSchema.index({ email: 1 }, { name: 'idx_email' }); // Named Index
-- Syntax: CREATE INDEX index_name ON table_name (column_name);
CREATE INDEX idx_email ON Users (email); -- Named Index
CREATE INDEX ON Users (email); -- Unnamed Index
  1. PAR DéFAUT?: Attribue une valeur par défaut à une colonne si aucune valeur n'est fournie.
console.log(UserSchema.paths);
// Outputs details about the schema fields and types
DESCRIBE Users;
  1. VéRIFIER (MySQL 8.0 )?: Garantit que les valeurs d'une colonne satisfont à une condition donnée.
// In mongoose its equivalent to .save() or .create();
const newUser = new User({ name: 'John Doe', email: 'john@example.com' });
newUser.save()
INSERT INTO Users (name, email)
VALUES ('John Doe', 'john@example.com');
  1. AUTO_INCREMENT?: Génère automatiquement une valeur unique pour une colonne, souvent utilisée pour les clés primaires.
const users = await User.find(); // Fetches all users
const { name, email } = await User.findById(1); // Fetches user with id = 1
SELECT * FROM Users; -- all users
SELECT name, email FROM Users WHERE id = 1; -- user of id 1

C'est tout. Vous êtes prêt à partir, n'hésitez pas à laisser vos commentaires et vous pouvez me contacter ici?: thekbbohara

OH, au fait, comment pouvons-nous configurer Mysql.
Je recommande d'utiliser docker?:

// update all user of name kb
const query = { name: "kb" };
User.update(query, { name: "thekbbohara" })
-- update all user of name kb
UPDATE Users
SET name = "thekbbohara", email = "thekbbohara@gmail.com"
WHERE name = "kb";

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que GTID (Global Transaction Identifier) ??et quels sont ses avantages? Qu'est-ce que GTID (Global Transaction Identifier) ??et quels sont ses avantages? Jun 19, 2025 am 01:03 AM

GTID (Global Transaction Identifier) ??résout la complexité de la réplication et du basculement dans les bases de données MySQL en attribuant une identité unique à chaque transaction. 1. Il simplifie la gestion de la réplication, gère automatiquement les fichiers journaux et les emplacements, permettant aux serveurs esclaves de demander des transactions en fonction du dernier GTID exécuté. 2. Assurer la cohérence entre les serveurs, assurer que chaque transaction n'est appliquée qu'une seule fois sur chaque serveur et éviter l'incohérence des données. 3. Améliorer l'efficacité du dépannage. GTID comprend le serveur UUID et le numéro de série, ce qui est pratique pour le suivi du flux de transactions et localiser avec précision les problèmes. Ces trois avantages de base rendent la réplication MySQL plus robuste et plus facile à gérer, améliorant considérablement la fiabilité du système et l'intégrité des données.

Qu'est-ce qu'un processus typique pour le basculement MySQL Master? Qu'est-ce qu'un processus typique pour le basculement MySQL Master? Jun 19, 2025 am 01:06 AM

Le basculement de la bibliothèque principale MySQL comprend principalement quatre étapes. 1. Détection des défauts: Vérifiez régulièrement le processus principal de la bibliothèque, l'état de la connexion et la requête simple pour déterminer s'il s'agit de temps d'arrêt, de configurer un mécanisme de réessayer pour éviter une erreur de jugement et peut utiliser des outils tels que MHA, Orchestrator ou Keepalived pour aider à la détection; 2. Sélectionnez la nouvelle bibliothèque principale: sélectionnez la bibliothèque d'esclaves la plus appropriée pour les remplacer en fonction de la progression de la synchronisation des données (seconds_behind_master), de l'intégrité des données du binlog, du retard du réseau et des conditions de charge, et effectuez une compensation de données ou une intervention manuelle si nécessaire; 3. Commutation topologie: pointez les autres bibliothèques d'esclaves à la nouvelle bibliothèque ma?tre, exécutez Resetmaster ou activez GTID, mettez à jour le VIP, DNS ou la configuration proxy pour

Comment se connecter à une base de données MySQL à l'aide de la ligne de commande? Comment se connecter à une base de données MySQL à l'aide de la ligne de commande? Jun 19, 2025 am 01:05 AM

Les étapes pour se connecter à la base de données MySQL sont les suivantes: 1. Utilisez le format de commande de base MySQL-U Username-P-H Host Adresse pour connecter, entrez le nom d'utilisateur et le mot de passe pour se connecter; 2. Si vous devez entrer directement la base de données spécifiée, vous pouvez ajouter le nom de la base de données après la commande, telle que MySQL-UROot-PmyProject; 3. Si le port n'est pas le 3306 par défaut, vous devez ajouter le paramètre -p pour spécifier le numéro de port, tel que MySQL-Uroot-P-H192.168.1.100-P3307; De plus, si vous rencontrez une erreur de mot de passe, vous pouvez la réintégrer. Si la connexion échoue, vérifiez le réseau, le pare-feu ou les paramètres d'autorisation. Si le client est manquant, vous pouvez installer MySQL-Client sur Linux via le gestionnaire de packages. Ma?tre ces commandes

Pourquoi les index améliorent-ils la vitesse de requête MySQL? Pourquoi les index améliorent-ils la vitesse de requête MySQL? Jun 19, 2025 am 01:05 AM

IndexesinmysqlimprovequeryspeedByenablefasterDatareTevieval.1.ETHEYRODEDATACALNED, permettant à la manière dont la propriété est en particulier d'importance.

Pourquoi InNODB est-il le moteur de stockage recommandé maintenant? Pourquoi InNODB est-il le moteur de stockage recommandé maintenant? Jun 17, 2025 am 09:18 AM

INNODB est le moteur de stockage par défaut de MySQL car il surpasse les autres moteurs tels que Myisam en termes de fiabilité, de performances de concurrence et de récupération de crash. 1. Il prend en charge le traitement des transactions, suit les principes acides, assure l'intégrité des données et convient aux scénarios de données clés tels que les enregistrements financiers ou les comptes d'utilisateurs; 2. Il adopte les verrous au niveau des lignes au lieu des verrous au niveau du tableau pour améliorer les performances et le débit dans des environnements d'écriture élevés élevés; 3. Il a un mécanisme de récupération de collision et une fonction de réparation automatique, et prend en charge les contraintes de clé étrangère pour garantir la cohérence des données et l'intégrité de référence, et empêcher les enregistrements isolés et les incohérences de données.

Quels sont les niveaux d'isolement des transactions dans MySQL, et quelle est la valeur par défaut? Quels sont les niveaux d'isolement des transactions dans MySQL, et quelle est la valeur par défaut? Jun 23, 2025 pm 03:05 PM

Le niveau d'isolement des transactions par défaut de MySQL est RepeatableRead, qui empêche les lectures sales et les lectures non répétibles via MVCC et les serrures d'écart, et évite la lecture fant?me dans la plupart des cas; other major levels include read uncommitted (ReadUncommitted), allowing dirty reads but the fastest performance, 1. Read Committed (ReadCommitted) ensures that the submitted data is read but may encounter non-repeatable reads and phantom readings, 2. RepeatableRead default level ensures that multiple reads within the transaction are consistent, 3. Serialization (Serializable) the highest level, prevents other transactions from modifying data through locks, ensuring data intégrité mais sacrifier les performances;

Quelles sont les propriétés acides d'une transaction MySQL? Quelles sont les propriétés acides d'une transaction MySQL? Jun 20, 2025 am 01:06 AM

Les transactions MySQL suivent les caractéristiques acides pour assurer la fiabilité et la cohérence des transactions de base de données. Premièrement, l'atomicité garantit que les transactions sont exécutées comme un ensemble indivisible, soit tous réussissent ou que tous ne reculent pas. Par exemple, les retraits et les dép?ts doivent être achevés ou ne se produisent pas en même temps dans l'opération de transfert; Deuxièmement, la cohérence garantit que les transactions transitionnent la base de données d'un état valide à un autre et maintient la logique de données correcte via des mécanismes tels que les contraintes et les déclencheurs; Troisièmement, l'isolement contr?le la visibilité des transactions multiples lors de l'exécution simultanée, empêche la lecture sale, la lecture non répétée et la lecture fantastique. MySQL prend en charge ReadUnCommit et ReadCommi.

Comment ajouter le répertoire du bac MySQL au chemin du système Comment ajouter le répertoire du bac MySQL au chemin du système Jul 01, 2025 am 01:39 AM

Pour ajouter le répertoire bac de MySQL au chemin du système, il doit être configuré en fonction des différents systèmes d'exploitation. 1. Système Windows: Trouvez le dossier bin dans le répertoire d'installation MySQL (le chemin par défaut est généralement C: \ ProgramFiles \ MySQL \ MySQLServerx.x \ bin), cliquez avec le bouton droit "Cet ordinateur" → "Propriétés" → "Paramètres du système avancé" Invite et entrez MySQL - Vérification de Version; 2.Macos et Linux Systèmes: les utilisateurs bash modifient ~ / .bashrc ou ~ / .bash_

See all articles