Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में टेबल के परिणाम को अस्थायी टेबल में कैसे प्रदर्शित करें?

MySQL में CREATE TEMPORARY TABLE ... SELECT: क्वेरी परिणाम से अस्थायी टेबल बनाना

किसी SELECT क्वेरी के परिणाम से सीधे एक अस्थायी टेबल बनाने के लिए CREATE TEMPORARY TABLE ... AS SELECT (या CREATE TEMPORARY TABLE ... SELECT) वाक्यविन्यास का उपयोग करें।

उदाहरण के साथ पूर्ण कार्यान्वयन

स्रोत टेबल बनाना

mysql> CREATE TABLE DemoTable1 (Id INT, Name VARCHAR(100));

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable1 VALUES(100, 'John'), (110, 'Chris'), (120, 'Robert'), (130, 'David');

स्रोत टेबल देखना

mysql> SELECT * FROM DemoTable1;

आउटपुट:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | John   |
| 110  | Chris  |
| 120  | Robert |
| 130  | David  |
+------+--------+
4 rows in set (0.00 sec)

अस्थायी टेबल बनाना

mysql> CREATE TEMPORARY TABLE DemoTable2 SELECT * FROM DemoTable1;

परिणाम: Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0

अस्थायी टेबल देखना

mysql> SELECT * FROM DemoTable2;

आउटपुट:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | John   |
| 110  | Chris  |
| 120  | Robert |
| 130  | David  |
+------+--------+
4 rows in set (0.00 sec)

अस्थायी टेबल की विशेषताएं:

  • सत्र-विशिष्ट: केवल वर्तमान कनेक्शन के लिए दृश्यमान
  • स्वचालित सफाई: कनेक्शन बंद होने पर स्वतः ड्रॉप हो जाती है
  • नाम संघर्ष नहीं: अलग सत्र समान नाम की अस्थायी टेबल बना सकते हैं
  • कोई लॉक संघर्ष नहीं: अन्य सत्र प्रभावित नहीं होते

वाक्यविन्यास विविधताएं

-- 1. AS SELECT (मानक SQL)
CREATE TEMPORARY TABLE temp_table AS SELECT * FROM source_table;

-- 2. SELECT बिना AS (MySQL विशिष्ट)
CREATE TEMPORARY TABLE temp_table SELECT * FROM source_table;

-- 3. कॉलम परिभाषा के साथ (नियंत्रण के लिए)
CREATE TEMPORARY TABLE temp_table (
    Id INT PRIMARY KEY,
    Name VARCHAR(100)
) SELECT Id, Name FROM source_table;

उपयोग के मामले

  • जटिल क्वेरी के मध्यवर्ती परिणाम स्टोर करना
  • बड़े परिणाम सेट को चरणों में प्रोसेस करना
  • एकाधिक क्वेरी में समान सबसेट पुनः उपयोग करना
  • ट्रांजैक्शन-सुरक्षित मध्यवर्ती भंडारण

सीमाएं

  • विदेशी कुंजी कंस्ट्रेंट समर्थित नहीं
  • पार्टीशनिंग समर्थित नहीं
  • रेप्लिकेशन में विशेष व्यवहार (binlog फॉर्मेट पर निर्भर)
  • SHOW TABLES में डिफ़ॉल्ट रूप से नहीं दिखती (SHOW TEMPORARY TABLES उपयोग करें)

CTE (Common Table Expressions) विकल्प (MySQL 8.0+)

WITH temp_result AS (
    SELECT * FROM DemoTable1 WHERE Id > 105
)
SELECT * FROM temp_result;

CTE केवल क्वेरी अवधि के लिए मौजूद होता है, टेबल ऑब्जेक्ट नहीं बनाता।

  1. Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें? Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें?

    Java-MySQL कनेक्शन कोड में एक कॉलम इन्सर्ट करने के लिए INSERT INTO स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.54 sec) MySQL टेबल में केवल एक कॉलम इन्सर्ट करने का जावा कोड यहाँ है। उदाहरण

  1. Java में JDBC ResultSet से MySQL टेबल मान प्रदर्शित करें Java में JDBC ResultSet से MySQL टेबल मान प्रदर्शित करें

    टेबल और डेटा insert into demo87 values(John,21), (David,23), (Bob,22); Java कोड: ResultSet से HashMap में डेटा import java.sql.*; import java.util.*; import com.mysql.jdbc.Statement; public class TableValuesDemo { public static void main(String[] args) { Connection con = null;

  1. MySQL - Hibernate के साथ टेबल बनाना MySQL - Hibernate के साथ टेबल बनाना

    टेबल बनाने के लिए, आपको application.properties में नीचे दी गई लाइन डालनी होगी: spring.jpa.hibernate.ddl-auto=update यहां, Hibernate स्वचालित रूप से demo88 टेबल बनाएगा। application.properties कोड इस प्रकार है: spring.datasource.platform=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQL