https://ce.sjtu.edu.cn/ste/tmaterial/4/04736.doc
上海市高等教育自學考試
計算機科學與技術專業(專升本)
《資料庫系統原理》實踐性環節考核大綱
(上海交通大學主考,2019年修訂)
一、 考核目標
1. 掌握資料庫的基本概念和方法。
2. 熟練掌握 MySQL 的安裝與配置。
3. 熟練掌握 MySQL 平臺下使用 SQL 語言實現資料庫的交互操作。
4. 熟練掌握 MySQL 的資料庫編程。
5. 熟悉 PHP 應用開發語言,初步具備利用該語言進行簡單應用系統開發的能力。
6. 掌握 MySQL 資料庫的管理與維護技術。
二、運行環境
1. 平臺:Windows 7,Windows 10等
2. 軟體:MySQL 5.5或者以上版本
三、考核方式
實行閉卷考核。
四、考核時間和日期
上機考核每次為1小時;考核日期另行規定。
五、考核範圍
一、MySQL 平臺下的 SQL 交互操作
1. 資料庫
(1)MySQL 資料庫對象的基本概念與作用
(2)使用 SQL 語句創建、選擇、修改、刪除、查看 MySQL 資料庫對象的操作方法及應用
2. 數據表(或表)
(1)MySQL 資料庫中數據表(或表)、表結構、表數據的基本概念與作用
(2)使用 SQL 語句創建、更新、重命名、複製、刪除、查看數據表的操作方法及應用
(3)使用 SQL 語句實現表數據的插入、刪除、更新等操作方法及應用
(4)使用 SQL 語句實現對一張或多張數據表進行簡單查詢、聚合查詢、連接查詢、條件查詢、嵌套查詢、聯合查詢的操作方法及應用
(5)數據完整性約束的基本概念、分類與作用
(6)使用 SQL 語句定義、命名、更新完整性約束的操作方法及應用
3. 索引
(1)索引的基本概念、作用、存儲與分類
(2)使用 SQL 語句創建、查看、刪除索引的操作方法、原則及應用
4. 視圖
(1)視圖的基本概念、特點及使用原則
(2)視圖與數據表的區別
(3)使用 SQL 語句創建、刪除視圖的操作方法及應用
(4)使用 SQL 語句修改、查看視圖定義的操作方法及應用
(5)使用 SQL 語句更新、查詢視圖數據的操作方法及應用
二、MySQL 的資料庫編程
1. 觸發器
(1)觸發器的基本概念與作用
(2)使用 SQL 語句創建、刪除觸發器的操作方法及應用
(3)觸發器的種類及區別
(4)觸發器的使用及原則
2. 事件
(1)事件、事件調度器的基本概念與作用
(2)使用 SQL 語句創建、修改、刪除事件的操作方法及應用
3. 存儲過程和存儲函數
(1)存儲過程、存儲函數的基本概念、特點與作用
(2)存儲過程和存儲函數的區別
(3)存儲過程體的基本概念及構造方法
(4)使用 SQL 語句創建、修改、刪除存儲過程的操作方法及應用
(5)存儲過程的調用方法
(6)使用 SQL 語句創建、修改、刪除存儲函數的操作方法及應用
(7)存儲函數的調用方法
三、MySQL 的管理與維護
1. MySQL 資料庫伺服器的使用與管理
(1)安裝、配置 MySQL 資料庫伺服器的基本方法
(2)啟動、關閉 MySQL 資料庫伺服器的基本方法
(3)MySQL 資料庫伺服器的客戶端管理工具
2. 用戶帳號管理
(1)MySQL 資料庫用戶帳號管理的基本概念與作用
(2)使用 SQL 語句創建、修改、刪除 MySQL 資料庫用戶帳號的操作方法及應用
3. 帳戶權限管理
(1)MySQL 資料庫帳戶權限管理的基本概念與作用
(2)使用 SQL 語句授予、轉移、限制、撤銷 MySQL 資料庫帳戶權限的操作方法及應用
4. 備份與恢復
(1)資料庫備份與恢復的基本概念與作用
(2)MySQL 資料庫備份與恢復的使用方法
(3)二進位日誌文件的基本概念與作用
(4)二進位日誌文件的使用方法
四、MySQL 的應用編程
1. PHP 語言的基本使用方法
(1)PHP 語言的特點與編程基礎
(2)使用 PHP 語言進行 MySQL 資料庫應用編程的基本步驟與方法
2. MySQL 平臺下編制基於 B / S 結構的 PHP 簡單應用程式
(1)了解 MySQL 平臺下編制基於 B / S 結構 PHP 簡單應用程式的過程
(2)掌握 PHP 簡單應用程式編制過程中,MySQL 平臺下資料庫應用編程的相關技術與方法
以下答案僅供參考
資料庫上機考試2019.5 A卷
建立一個名為School的資料庫,並在其中建立三張表:
學生信息表StudentInfo:假設一個學生只能有一個成績
學生編號StudentId,學生姓名StudentName,學生性別StudentSex,學生年齡StudentAge,學生成績StudentMark,入學時間EntranceDate,編輯編號ClassId,
班級信息表ClassInfo:
班級編號ClassId,班級人數ClassNumber,專業編號MajorId
專業信息表MajorInfo:
專業編號MajorId,專業名稱Major,
題目:
1. 寫出創建以上表的SQL語句。懶。不會寫的後面不用看了
2. 給StudentInfo創建一個check約束,設置成績在0-100分之間。給StudentInfo表的ClassId欄位創建一個外鍵約束。alter table StudentInfo add constraint mark_0_100 check(StudentMark between 0 and 100);
3. 查詢學生姓名中第一個字為「張」且入學時間晚於2001年1月1日的所有學生信息。select * from StudentInfo where StudentName like 『張%』 and Entrancedate >』2001-01-01』;
4. 查詢專業名稱(Major)為『信息管理與信息系統』的所有男生學生姓名、年齡及成績、班級編號及專業名稱,輸出按照年齡從小到大排列。select StudentName,StudentAge,StudentMark,StudentInfo.ClassInfo,Major from StudentInfo,ClassInfo,MajorInfo where Student.ClassId=ClassInfo.ClassId and ClassInfo.MajorId=MajorInfo.MajorId order by StudentAge;
5. 查詢班級編號(ClassId)為『G0208』的小於該班級平均分的學生姓名、年齡和成績信息。select StudentName,StudentAge,StudentMark from StudentInfo where ClassId='G0208' and StudentMark <(select avg(StudentMark) from StudentInfo where ClassId='G0208')
6. 查詢有多於10個學生考試成績優秀(大於90)的班級編號。select ClassId from StudentInfo where StudentMark >=90 group by ClassId having count(ClassId) >10;
7. 對每個班級,求該班學生的人數,並將結果存入到該班級信息表中的班級人數欄位中。(使用Update語句)update StudentInfo,ClassInfo set classnumber= (select count(StudentInfo.classid) as 人數 from StudentInfo where StudentInfo.classid=ClassInfo.ClassId) where StudentInfo.ClassId=ClassInfo.ClassId
8. 寫出查詢如下結果的SQL語句。
select studentsex 性別, sum(studentmark between 60 and 100) as 及格, sum(studentmark between 0 and 59) as 不及格 from StudentInfo group by studentsex
9. 編寫自定義函數,傳入班級編號,返回該班級所有學生姓名及年齡的拼接字符串,中間使用逗號分隔。(如返回:張三(20)李四(21)王五(20))
10. 編寫一個觸發器,刪除ClassInfo表記錄後自動將StudentInfo表中對應學生記錄刪去。create trigger del_class_student after delete on ClassInfo for each row delete from StudentInfo where ClassId = old.ClassId;
11. 編寫存儲過程,傳入入學時間的下限與上限,返回符合需求的所有學生信息。delimiter $$create procedure test(in startime date,in endtime date)beginselect * from StudentInfo where Entrancedate between startime and endtime;end$$delimiter ;