Rumah pangkalan data tutorial mysql SQL Server 数据查询 --- 复杂查询

SQL Server 数据查询 --- 复杂查询

Jun 07, 2016 pm 05:49 PM

SQL Server 数据查询 --- 复杂查询 有需要的朋友可参考一下。

/********************************************

例1查询每个学生及其选修课程的情况

*********************************************/

 代码如下 复制代码

SELECT STUDENT.*,SC.* FROM SC,STUDENT WHERE SC.SNO = STUDENT.SNO;

/********************************************

对例1用自然连接完成

*********************************************/

 代码如下 复制代码
 SELECT STUDENT.SNAME,STUDENT.SSEX,STUDENT.SAGE,STUDENT.SDEPT,SC.*
 FROM SC,STUDENT       
 WHERE SC.SNO = STUDENT.SNO;

/*****************************************

查询每一门课程的间接先修课

*****************************************/

 

 代码如下 复制代码
SELECT SY.CNO,SX.CPNO FROM COURSE SX,COURSE SY WHERE SX.CNO = SY.CPNO

/********************************************

对例1用左外连接连接完成

*********************************************/

 代码如下 复制代码
 SELECT STUDENT.SNAME,STUDENT.SSEX,STUDENT.SAGE,STUDENT.SDEPT,SC.*
 FROM   STUDENT LEFT JOIN SC ON(SC.SNO = STUDENT.SNO);

/********************************************

查询每个学生的学号、姓名、选修的课程名及成绩 *********************************************/

 代码如下 复制代码

 SELECT STUDENT.SNO,STUDENT.SNAME,COURSE.CNAME,COURSE.CCREDIT
 FROM SC,STUDENT,COURSE   
 WHERE SC.CNO =COURSE.CNO AND SC.SNO = STUDENT.SNO;

/********************************************  

查询与刘晨在同一个系学习的学生

*********************************************/

 代码如下 复制代码

 SELECT SX.*
 FROM STUDENT SX   
 WHERE SX.SDEPT IN  (
              SELECT SY.SDEPT FROM STUDENT SY WHERE SY.SNAME='刘晨'
 );
/************   

或者如下:

 代码如下 复制代码

 SELECT SX.*
 FROM STUDENT SX, STUDENT SY      
 WHERE SX.SDEPT = SY.SDEPT AND SY.SNAME = '刘晨';  或者:

 SELECT *
 FROM STUDENT SX
 WHERE EXISTS (
          SELECT * FROM STUDENT SY WHERE SY.SDEPT = SX.SDEPT AND SY.SNAME='刘晨'
 );  **************/

 

/********************************************  

查询选修了课程名为"信息系统"的学生学号和姓名 *********************************************/

 

 代码如下 复制代码
 SELECT SNO, SNAME
 FROM STUDENT       
 WHERE SNO IN  (
         SELECT SNO FROM SC
         WHERE  CNO IN  (
                     SELECT CNO FROM COURSE
                     WHERE CNAME = '信息系统'
                    )
 );  

/********************************************  

找出每个学生超过他选修课程平均成绩的课程号

*********************************************/

 

 代码如下 复制代码

SELECT SX.SNO,SX.CNO
 FROM SC SX
 WHERE SX.GRADE  >  (
                        SELECT AVG(GRADE)
                       FROM SC SY              
                        WHERE SX.SNO = SY.SNO
);

/*****************************************************  

查询其他系中比计算机科学系某一学生年龄小的学生姓名和年龄

*******************************************************/

 代码如下 复制代码


 SELECT SNAME, SAGE
 FROM STUDENT   
 WHERE SAGE                        SELECT SAGE
                       FROM STUDENT 
                       WHERE SDEPT='CS'
                    )
       AND SDEPT'CS';

/*****************************************************  

查询其他系中比计算机科学系所有学生年龄小的学生姓名和年龄

*******************************************************/

 代码如下 复制代码

 SELECT SNAME, SAGE
 FROM STUDENT   
 WHERE SAGE                        SELECT SAGE
                      FROM STUDENT 
                       WHERE SDEPT='CS' 
                    )
       AND SDEPT'CS';

/*****************************************************  

查询所有选修了1号课程的学生姓名

*******************************************************/

 代码如下 复制代码


 SELECT SNAME
 FROM STUDENT   
 WHERE EXISTS   (
                   SELECT * FROM SC           
                   WHERE SC.SNO = STUDENT.SNO AND SC.CNO='1'          
 );

/******************************************

查询选修了全部课程的学生姓名

*******************************************/

 代码如下 复制代码

 SELECT SNAME
 FROM STUDENT
 WHERE NOT EXISTS (
                     SELECT *
                     FROM COURSE
                     WHERE NOT EXISTS   (
                                           SELECT *
                                           FROM SC
                                           WHERE STUDENT.SNO = SC.SNO AND COURSE.CNO = SC.CNO
                                        )
 );

/*****************************************************

查询至少选修了学生200215122选修的全部课程的学生号码

*****************************************************/

 代码如下 复制代码

 SELECT DISTINCT SNO
 FROM SC X    
 WHERE NOT EXISTS (
                     SELECT *
                     FROM SC Y
                    WHERE SNO='200215122' AND NOT EXISTS (
                                                            SELECT *
                                                            FROM SC Z
                                                             WHERE Z.SNO = X.SNO AND Y.CNO = Z.CNO             
                                                           )
 );

/**********************************************************

从自身表中选择一条记录,修改某个字段再回插到自身表中

这里的INSERT INTO 可以用来插入子查询 *********************************************************/

 代码如下 复制代码

 INSERT INTO COURSE(CNO,CNAME,CPNO,CCREDIT)
       SELECT '8',CNAME,CPNO,CCREDIT FROM  COURSE WHERE  CNO='2';

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara HQL dan SQL dalam rangka kerja Hibernate? Apakah perbezaan antara HQL dan SQL dalam rangka kerja Hibernate? Apr 17, 2024 pm 02:57 PM

HQL dan SQL dibandingkan dalam rangka kerja Hibernate: HQL (1. Sintaks berorientasikan objek, 2. Pertanyaan bebas pangkalan data, 3. Keselamatan jenis), manakala SQL mengendalikan pangkalan data secara langsung (1. Piawaian bebas pangkalan data, 2. Boleh laku kompleks pertanyaan dan manipulasi data).

Penggunaan operasi bahagian dalam Oracle SQL Penggunaan operasi bahagian dalam Oracle SQL Mar 10, 2024 pm 03:06 PM

"Penggunaan Operasi Bahagian dalam OracleSQL" Dalam OracleSQL, operasi bahagi ialah salah satu operasi matematik yang biasa. Semasa pertanyaan dan pemprosesan data, operasi pembahagian boleh membantu kami mengira nisbah antara medan atau memperoleh hubungan logik antara nilai tertentu. Artikel ini akan memperkenalkan penggunaan operasi pembahagian dalam OracleSQL dan memberikan contoh kod khusus. 1. Dua cara operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi boleh dilakukan dalam dua cara berbeza.

Perbandingan dan perbezaan sintaks SQL antara Oracle dan DB2 Perbandingan dan perbezaan sintaks SQL antara Oracle dan DB2 Mar 11, 2024 pm 12:09 PM

Oracle dan DB2 ialah dua sistem pengurusan pangkalan data hubungan yang biasa digunakan, setiap satunya mempunyai sintaks dan ciri SQL tersendiri. Artikel ini akan membandingkan dan membezakan antara sintaks SQL Oracle dan DB2, dan memberikan contoh kod khusus. Sambungan pangkalan data Dalam Oracle, gunakan pernyataan berikut untuk menyambung ke pangkalan data: CONNECTusername/password@database Dalam DB2, pernyataan untuk menyambung ke pangkalan data adalah seperti berikut: CONNECTTOdataba

Apakah yang dimaksudkan dengan atribut identiti dalam SQL? Apakah yang dimaksudkan dengan atribut identiti dalam SQL? Feb 19, 2024 am 11:24 AM

Apakah Identity dalam SQL? Contoh kod khusus diperlukan Dalam SQL, Identity ialah jenis data khas yang digunakan untuk menjana nombor penambahan automatik. Ia sering digunakan untuk mengenal pasti setiap baris data dalam jadual. Lajur Identiti sering digunakan bersama dengan lajur kunci utama untuk memastikan setiap rekod mempunyai pengecam unik. Artikel ini akan memperincikan cara menggunakan Identiti dan beberapa contoh kod praktikal. Cara asas untuk menggunakan Identity ialah menggunakan Identit semasa membuat jadual.

Penjelasan terperinci tentang fungsi Set tag dalam teg SQL dinamik MyBatis Penjelasan terperinci tentang fungsi Set tag dalam teg SQL dinamik MyBatis Feb 26, 2024 pm 07:48 PM

Tafsiran teg SQL dinamik MyBatis: Penjelasan terperinci tentang penggunaan teg Set MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik Ia menyediakan banyak teg SQL dinamik dan boleh membina pernyataan operasi pangkalan data secara fleksibel. Antaranya, tag Set ialah tag yang digunakan untuk menjana klausa SET dalam kenyataan UPDATE, yang sangat biasa digunakan dalam operasi kemas kini. Artikel ini akan menerangkan secara terperinci penggunaan teg Set dalam MyBatis dan menunjukkan kefungsiannya melalui contoh kod tertentu. Apakah itu Set tag Set tag digunakan dalam MyBati

Bagaimana untuk menyelesaikan ralat 5120 dalam SQL Bagaimana untuk menyelesaikan ralat 5120 dalam SQL Mar 06, 2024 pm 04:33 PM

Penyelesaian: 1. Semak sama ada pengguna log masuk mempunyai kebenaran yang mencukupi untuk mengakses atau mengendalikan pangkalan data, dan pastikan pengguna mempunyai kebenaran yang betul 2. Semak sama ada akaun perkhidmatan SQL Server mempunyai kebenaran untuk mengakses fail yang ditentukan atau folder, dan pastikan akaun Mempunyai kebenaran yang mencukupi untuk membaca dan menulis fail atau folder 3. Semak sama ada fail pangkalan data yang ditentukan telah dibuka atau dikunci oleh proses lain, cuba tutup atau lepaskan fail, dan jalankan semula pertanyaan 4 . Cuba sebagai pentadbir Jalankan Studio Pengurusan seperti dsb.

Bagaimana untuk menggunakan pernyataan SQL untuk pengagregatan data dan statistik dalam MySQL? Bagaimana untuk menggunakan pernyataan SQL untuk pengagregatan data dan statistik dalam MySQL? Dec 17, 2023 am 08:41 AM

Bagaimana untuk menggunakan pernyataan SQL untuk pengagregatan data dan statistik dalam MySQL? Pengumpulan data dan statistik merupakan langkah yang sangat penting semasa melakukan analisis dan statistik data. Sebagai sistem pengurusan pangkalan data perhubungan yang berkuasa, MySQL menyediakan pelbagai fungsi pengagregatan dan statistik, yang boleh melaksanakan pengagregatan data dan operasi statistik dengan mudah. Artikel ini akan memperkenalkan kaedah menggunakan pernyataan SQL untuk melaksanakan pengagregatan data dan statistik dalam MySQL, dan menyediakan contoh kod khusus. 1. Gunakan fungsi COUNT untuk mengira Fungsi COUNT adalah yang paling biasa digunakan

Persaingan teknologi pangkalan data: Apakah perbezaan antara Oracle dan SQL? Persaingan teknologi pangkalan data: Apakah perbezaan antara Oracle dan SQL? Mar 09, 2024 am 08:30 AM

Persaingan teknologi pangkalan data: Apakah perbezaan antara Oracle dan SQL? Dalam bidang pangkalan data, Oracle dan SQL Server adalah dua sistem pengurusan pangkalan data hubungan yang sangat dihormati. Walaupun kedua-duanya tergolong dalam kategori pangkalan data hubungan, terdapat banyak perbezaan antara mereka. Dalam artikel ini, kami akan menyelidiki perbezaan antara Oracle dan SQL Server, serta ciri dan kelebihannya dalam aplikasi praktikal. Pertama sekali, terdapat perbezaan dalam sintaks antara Oracle dan SQL Server.

See all articles