mysql綜合性練習

来源:https://www.cnblogs.com/emadons/archive/2019/11/13/11840986.html
-Advertisement-
Play Games

題目描述 設定有一個資料庫,裡面有4張表: 學生表(student) 課程表(course) 成績表(score) 教師信息表(teacher) 表結構如下: 表一_學生表(student) 屬性名數據類型含 義 sno int 學號(主鍵) sname varchar 學生姓名 ssex varc ...


題目描述

設定有一個資料庫,裡面有4張表:

  • 學生表(student)
  • 課程表(course)
  • 成績表(score)
  • 教師信息表(teacher)

表結構如下:

表一_學生表(student)

屬性名數據類型含 義
sno int 學號(主鍵)
sname varchar 學生姓名
ssex varchar 學生性別
sbirthday date 學生出生年月
classid varchar 學生所在班級

 

表二_課程表(course)

 

屬性名數據類型含 義
cno varchar 課程號(主鍵)
cname varchar 課程名稱
tno int 教師編號(外鍵)

表三_成績表(score)

屬性名數據類型含 義
sno int 學號(外鍵)
cno varchar 課程號(外鍵)
sdegree float 成績

表四_教師表(teacher)

屬性名數據類型含 義
tno int 編號(主鍵)
tname varchar 教師姓名
tsex varchar 教師性別
tbirthday date 教師出生年月
professional varchar 職稱
department varchar 教師所在部門

二、創建資料庫和表

先創建資料庫mysql_test,並且設置這個資料庫的編碼字元集為utf-8。

 

 學生表:

create table student(
    sno  int(10),
    sname varchar(10),
    ssex varchar(10),
    sbirthday date,
    classid varchar(10)
);

alter table student add primary key(sno);

 

 教師表:

create table teacher(
    tno int(10),
    tname varchar(12),
    tsex varchar(10),
    tbirthday date,
    professional varchar(20),
    department varchar(20)
);

alter table teacher add primary key(tno);

 

課程表:

create table course(
    cno varchar(10),
    cname varchar(20),
    tno int(10)
);

alter table course add primary key(cno);
alter table course add constraint fk_course_teacher foreign key(tno) references teacher(tno); 

 

成績表:

create table score(
    sno int(10),
    cno varchar(10),
    sdegree float(5)
);

alter table score add constraint fk_score_student foreign key(sno) references student(sno);
alter table score add constraint fk_score_course foreign key(cno) references course(cno);

 

三、添加數據

insert into student (sno,sname,ssex,sbirthday,classid) 
values(108,'曾華','','1996-9-1','95033'),(105,'匡明','','1995-10-2','95031'),
(107,'王麗','','1996-1-23','95033'),(101,'李軍','','1996-2-20','95033'),
(109,'王芳','','1995-2-10','95031'),(103,'陸君','','1994-6-3','95031');


insert into teacher(tno,tname,tsex,tbirthday,professional,department) 
values(804,'李誠','','1978-12-2','副教授','電腦系'),
(856,'張旭','','1979-3-12','講師','電子工程系'),
(825,'王萍','','1982-5-5','助教','電腦系'),
(831,'劉冰','','1984-8-14','助教','電子工程系');


insert into course(cno,cname,tno) 
values('3-105','電腦導論',825),('3-245','操作系統',804),
('6-166','數字電路',856),('9-888','高等數學',831);


insert into score(sno,cno,sdegree) values
(103,'3-245',86),
(105,'3-245',75),
(109,'3-245',68),
(103,'3-105',92),
(105,'3-105',88),
(109,'3-105',76),
(101,'3-105',64),
(107,'3-105',91),
(108,'3-105',78),
(101,'6-166',85),
(107,'6-166',79),
(108,'6-166',81);

學生表:

 

教師表:

 

 課程表:

 

 

 成績表:

四、SQL題目

1、查詢所有學生的姓名,性別及班級編號

 

 

 2、查詢教師所有的部門名稱(即不重覆的DEPART列)

3、查詢student表的所有記錄

 

 4、查詢score表中成績在60到80之間的所有記錄

 

 5、查詢score表中成績為85,86或88的記錄

 

 6、查詢student表中班級編號為"95031"或性別為"女"的同學記錄

 

 7、查詢student表的所有記錄,以班級編號降序排列

 

 8、查詢score表的所有記錄,先按照cno升序排列,若相同則按照sdegree降序排列

 

 9、查詢班級編號為"95031"班級的學生人數

 

 10、查詢score表中的最高分的學生學號和課程號

 

 11、查詢編號為"3-105"的課程平均分

 

 12、查詢score表中至少有5名學生選修的並以3開頭的課程的平均分數

 

 13、查詢每科成績均在70到90之間的學生編號

 註意:having 後面只能跟聚合函數,如avg、min、max、sum等聚合函數

 14、查詢所有學生的姓名,所選課程編號和成績

 

 

 15、查詢所有學生的學號,所選課程名和成績

 

 

 16、查詢所有學生的姓名,所選課程名和成績

 

 

 17、查詢"95033"班同學所選每個課程的平均分

 

 

 18、假設使用如下命令建立了一個GRADE表:

CREATE TABLE GRADE(
LOW INT(3),
UPP INT(3),
RANK VARCHAR(1)
);
INSERT INTO GRADE VALUES(90,100,'A');
INSERT INTO GRADE VALUES(80,89,'B');
INSERT INTO GRADE VALUES(70,79,'C');
INSERT INTO GRADE VALUES(60,69,'D');
INSERT INTO GRADE VALUES(0,59,'E');

– 現查詢所有同學的學號,所選課程號和等級(RANK列)

 

 19、查詢"3-105"課程的成績高於學號為109同學這科成績的所有同學記錄

 

 20、查詢1995年之後出生的所有學生所選學的課程名及成績

 

 

 

 21、查詢與學號108同學同年出生的所有學生的學號,姓名和生日

 

 

 22、查詢"張旭"教師任課的學生成績

 

 

 23、查詢選修某課程的同學人數多於5人的教師姓名

 

 

 24、查詢"95033"班和"95031"班全體學生的記錄

 

 

 25、查詢存在有85分以上成績的課程編號

 

 

 26、查詢出"電腦系"教師所教課程每一科成績的平均分

 

 

 27、查詢"電腦系"與"電子工程系"不同職稱的教師的姓名和職稱

 

 

28、查詢所有教師和同學的姓名,性別和生日

 

 

 29、查詢所有"女"教師和"女"同學的姓名,性別和生日

 

 

 30、查詢所有任課教師的姓名和部門

 

 

 31、查詢所有未講課的教師的姓名和部門

 

 

 32、查詢student表中不姓"王"的同學記錄

 

 

 33、查詢student表中每個學生的姓名和年齡

 

 

 34、查詢student表中最大和最小的生日值

 

 

 35、查詢student表中的全部記錄,按照班級編號降序排列,班級編號若相同則按照生日降序排列

 

 

 36、查詢所有"男"教師及其所上的課程名稱

 

 

 37、查詢和"李軍"同性別並同班的同學信息

 

 

 38、查詢所有選修"電腦導論"課程的"男"同學的成績表

 

 

 39、查詢出同時選擇"3-245"和"3-105"的課程的學生信息

 

 

 

40、查詢既沒有選修"3-245"課程也沒有選修"3-105"課程的學生信息

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第一範式(1NF):欄位具有原子性,不可再分。所有關係型資料庫系統都滿足第一範式) 資料庫表中的欄位都是單一屬性的,不可再分。例如,姓名欄位,其中的姓和名必須作為一個整體,無法區分哪部分是姓,哪部分是名,如果要區分出姓和名,必須設計成兩個獨立的欄位。 第二範式(2NF)要求實體的屬性完全依賴於主關鍵 ...
  • 一.存儲引擎簡介 1、文件系統: 1.1 操作系統組織和存取數據的一種機制。 1.2 文件系統是一種軟體。 2、文件系統類型:ext2 3 4 ,xfs 數據(centos6 ext 4 centos7 xfs) 2.1 不管使用什麼文件系統,數據內容不會變化 2.2 不同的是,存儲空間、大小、速度 ...
  • 今天在做定時任務的時候,遇到了一個比較難搞的問題,這個問題也比較有意思,現在給大家分享一下,這個定時任務的調用入口是這樣的。 // 進行 ldap同步 public void runLdapSyncJob(){ try { ldapSyncService.syncLdap(); } catch (E ...
  • RMAN命令詳解和常用彙總轉摘彙集,日後使用本文鏈接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub.net/25904686/viewspace-742701/https://blog.csdn.ne ...
  • 根據.frm和.ibd文件恢復表結構和數據 ...
  • 解決方案:(參考以下命令) 1、打開cmd,切換到mysql的bin目錄下 2、 D:\Program Files\MySQL5.1\bin mysqld.exe install Service successfully installed. 3、 D:\Program Files\MySQL5.1 ...
  • 1. GTID優缺點 MySQL傳統點位複製在5.7版本前是主要的主從複製模式,而隨著MySQL5.6版本引入GTID,並且MySQL5.7進行各方面的優化以後,在mySQL5.7(尤其是MySQL5.7.6)版本後GTID模式的主從複製方式成為一個新的選擇方式。要使用GTID模式,首先也需知其優缺 ...
  • [TOC] MyBatis簡單介紹 MyBatis是一個持久層框架,使用簡單,學習成本較低。可以執行自己手寫的SQL語句,比較靈活。但是MyBatis的自動化程度不高,移植性也不高,有時從一個資料庫遷移到另外一個資料庫的時候需要自己修改配置。 一個Mybatis最簡單的使用列子如下: 從配置文件(通 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...