Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कई-से-अनेक संबंध उदाहरण

उदाहरण परिदृश्य:एक विश्वविद्यालय में छात्र और पाठ्यक्रम। एक दिया गया छात्र कई पाठ्यक्रमों में हो सकता है, और स्वाभाविक रूप से एक पाठ्यक्रम में आमतौर पर कई छात्र होंगे।

उदाहरण तालिका, सरल डिज़ाइन:

CREATE TABLE `Student` (
    `StudentID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `FirstName` VARCHAR(25),
    `LastName` VARCHAR(25) NOT NULL,
    PRIMARY KEY (`StudentID`)
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci

CREATE TABLE `Course` (
    `CourseID` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    `Code` VARCHAR(10) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL,
    `Name` VARCHAR(100) NOT NULL,
    PRIMARY KEY (`CourseID`)
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci

CREATE TABLE `CourseMembership` (
    `Student` INT UNSIGNED NOT NULL,
    `Course` SMALLINT UNSIGNED NOT NULL,
    PRIMARY KEY (`Student`, `Course`),
    CONSTRAINT `Constr_CourseMembership_Student_fk`
        FOREIGN KEY `Student_fk` (`Student`) REFERENCES `Student` (`StudentID`)
        ON DELETE CASCADE ON UPDATE CASCADE,
    CONSTRAINT `Constr_CourseMembership_Course_fk`
        FOREIGN KEY `Course_fk` (`Course`) REFERENCES `Course` (`CourseID`)
        ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=INNODB CHARACTER SET ascii COLLATE ascii_general_ci

पाठ्यक्रम के लिए पंजीकृत सभी छात्रों को खोजें:

SELECT
    `Student`.*
FROM
    `Student`
    JOIN `CourseMembership` ON `Student`.`StudentID` = `CourseMembership`.`Student`
WHERE
    `CourseMembership`.`Course` = 1234

किसी दिए गए छात्र द्वारा लिए गए सभी पाठ्यक्रम खोजें:

SELECT
    `Course`.*
FROM
    `Course`
    JOIN `CourseMembership` ON `Course`.`CourseID` = `CourseMembership`.`Course`
WHERE
    `CourseMembership`.`Student` = 5678


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सॉकेट '/var/lib/mysql/mysql.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता (2)

  2. क्लाउड फायरस्टोर डेटाबेस में डेटा जोड़ना

  3. एकाधिक MYSQL क्वेरी निष्पादित करने के लिए PHP का उपयोग करना

  4. व्यवहार द्वारा समूह जब चयन खंड में कोई समग्र कार्य मौजूद नहीं है

  5. Neo4j - साइफर का उपयोग करके एक बाधा छोड़ें