mysql資料庫及應用題庫(mysql資料庫應用綜合分析題)

本文目錄一覽:

mysql 7.8本章習題work表怎麼建立

1.資料庫概述

簡而言之,資料庫(DataBase)就是一個存儲數據的倉庫。為了方便數據的存儲和管理,將數據按照特定的規律存儲在磁碟上。通過資料庫管理系統,可以有效的組織和管理存儲在資料庫中的數據。如今,已經存在的Oracle、SQLServer、MySQL等諸多優秀的資料庫。

詳解內容:

數據存儲方式

資料庫在開發中的作用

資料庫訪問技術

MySQL資料庫的介紹

資料庫泛型

SQL語言

常見資料庫系統

如果學習資料庫

1.1 資料庫理論基礎

資料庫能夠將數據按照特定的規律組織起來。那麼,數據是如何存儲的、資料庫要遵守什麼規則、資料庫在什麼地方使用,這些都是首先要了解的問題。

1.1.1 數據存儲方式

如今資料庫已經無處不在了。

一個網站需要有資料庫來存儲數據。

一個學校需要用資料庫來存儲學生和教師的信息。

一個公司需要用資料庫來存儲員工的信息和公司的資料。

要學習資料庫,必須先了解資料庫是如何存儲數據的。

數據發展分為三個階段:

1. 人工管理階段

2. 文件系統階段

3. 資料庫系統階段

1.1.2 資料庫泛型

資料庫泛型就是資料庫應該遵循的規則。資料庫泛型也稱為範式。目前關係資料庫最常用的四種範式分別是:

第一範式(1NF)

第二範式(2NF)

第三範式(3NF)

BCN範式(BCNF)

在設計資料庫時,資料庫需要滿足的最低要求的範式是第一範式。第一範式的要求表中不能有重複欄位,並且每個欄位不能再拆分。如果有一個資料庫連第一範式都不滿足的話,那就不能稱之為關係型資料庫了。只有滿足了第一範式的要求,才可能在這個關係資料庫中創建表。

在滿足第一範式的基礎上,可以將資料庫中進行一步的細化。細化後可以使資料庫滿足第二範式的要求。依次進行細化,可以得到第三範式、BCN範式。

1.1.3 資料庫在開發中作用

現在大部分的管理系統和軟體都需要使用資料庫來存儲數據。在開發過程中,資料庫已經成為必不可少的一部分。本小節將為讀者簡單介紹一下資料庫在開發中的作用。

在軟體開發過程中,經常需要使用資料庫來存儲數據。比如,一個學校的學生管理系統就需要資料庫來存儲學生的學籍信息、考試信息、教師的信息、課程信息等。再比如,銀行的管理系統也需要資料庫來存儲信息。用戶的銀行帳戶、存款量、存款和取款的記錄等信息都是存儲在資料庫中的。當用戶向自己的帳戶里存款時,管理系統會在資料庫中更新該用戶的存款量。

1.2 資料庫系統

1.2.1 資料庫系統

很多讀者認為資料庫就是資料庫系統(DataBase System, 簡稱為DBS)。其實,資料庫系統的範圍比資料庫大很多。資料庫系統不是一個單純的資料庫,而是由資料庫、資料庫管理系統、應用開發工具構成。很多時候,資料庫管理員和用戶可以當成資料庫系統的一份子。

資料庫就是存儲數據的地方。

資料庫管理系統(DataBase Management System, 簡稱為DBMS)是用來定義數據、管理和維護數據的軟體。它是資料庫系統的一個重要組成部分。應用系統是需要使用資料庫的軟體。比如學員管理系統就是一個應用系統,這個應用系統需要資料庫管理它的數據。應用開發工具就是用來開發應用系統的。

1.2.2 SQL語言

SQL(Structured Query Language)語言的全稱是結構化查詢語言。資料庫管理系統通過SQL語言來管理資料庫中的數據。

SQL語言分為三個部分:

數據定義語言(Data Definition Language, 簡稱為DDL)

數據操作語言(Data Manipulation Language, 簡稱為DML)

數據控制語言(Data Control Language, 簡稱為DCL)

數據查詢語言(Data Query Language, 簡稱DQL)

1.2.3 資料庫訪問技術

應用程序中,程序語言需要使用資料庫訪問技術來訪問資料庫。只有使用了資料庫訪問技術,程序中嵌入的SQL語句才會起作用。不同程序語言訪問資料庫的方式是不一樣的。

JDBC是一種用於執行SQL語句的Java API。通過JDBC可以訪問多種關係資料庫。JDBC由一組用Java語言編寫的類和介面組成。使用JDBC時,必須要安裝驅動程序Connector/J。

PHP中為程序員提供了MySQL功能模塊,PHP5以後開始提供mysqli介面。PHP可以通過MySQL功能模塊和mysqli介面來訪問MySQL資料庫。

1.3 常見資料庫

1.3.1 常見資料庫系統

如今已經在很多優秀的商業資料庫

如甲骨文(Oracle)公司的Oracle資料庫

IBM公司的DB2資料庫

微軟公司的SQL Server資料庫和Access資料庫。

還有很多優秀的開源資料庫,如MySQL資料庫、PostgreSQL資料庫等。

1. 甲骨文的Oracle

2. IBM的DB2

3. 微軟的Access和SQL Server

4. 開源PostgreSQL

6. 開源MySQL

1.3.2 為什麼要使用MySQL

如今很多大型網站已經選擇MySQL資料庫來存儲數據。那麼,MySQL到底有什麼優勢呢?MySQL資料庫的使用非常廣泛,尤其是在Web應用方面。由於MySQL資料庫發展勢頭迅猛,SUN公司於2008年收購了MySQL資料庫。這筆交易的收購價格高達10億美元。這中以說明MySQL資料庫價值。

MySQL資料庫的優勢:

1. 開源代碼

2. 跨平台性

3. 價格優勢

4. 功能強大且使用方便

1.3.3 MySQL版本和獲取

MySQL資料庫可以在Windows、UNIX、Linux和Mac OS等操作系統上運行。因此,MySQL有不同操作系統的版本。而且,根據發布的先後順序,現在已經在開發MySQL的6.0版了。

根據MySQL的開發情況,可以將MySQL分為Alpha、Beta、Gamma和Generally Available(GA)等版本。

– Alpha(開發過程中)

– Beta(測試版)

– Gamma(比Beta版更高級)

– Generally Available(GA)(穩定版)

1.4 如果學習資料庫

資料庫已經成為軟體系統的一部分,那麼學好資料庫將是軟體開發的一個必要條件。如何才能學好資料庫,這個問題沒有確切的答案。

學好資料庫的方法:

1. 多上機實踐

2. 多編寫SQL語句

3. 通過Java或PHP程序語言操作資料庫

4. 資料庫理論知識不能丟

1.5 常見問題及解答

1. 如何選擇資料庫?

2. 如何選擇MySQL版本?

1.6 本章習題

1. 數據存儲的發展過程經歷了哪幾個階段?

2. 常用資料庫系統有哪些?

3. MySQL資料庫如何分類?

2.Windows平台下安裝與配置MySQL

在Windows系列的操作系統下,MySQL資料庫的安裝包分為圖形化界面安裝和免安裝(noinstall)這兩種安裝包。這兩種安裝包的安裝方式不同,而且配置方式也不同。圖形化界面安裝包有完整的安裝嚮導,安裝和配置很方便。免安裝的安裝包直接解壓即可使用,但是配置起來很不方便。

安裝MySQL資料庫

配置MySQL資料庫

常用圖形管理工具介紹

配置和使用免安裝的MySQL資料庫

2.1 安裝與配置MySQL

2.1.1 安裝MySQL

MySQL圖形化安裝包有一個完整的安裝嚮導,根據安裝嚮導可以很方便的安裝MySQL資料庫。在Windows操作系統下,有兩種MySQL圖形化安裝包。這兩種安裝包分別是”Windows Essentials”和”Windows MSI Installer”。前者包含了MySQL中最主要和最常用的功能,但是不包含一些不常用的功能。後者包含了MySQL全部功能,包括不常用的功能。

選擇Microsoft Windows選項

mysql-5.1.40-win32.msi(圖形界面安裝)

mysql-essential-5.1.40-win32.msi (圖形界面安裝)

mysql-noinstall-5.1.40-wind32.zip (免安裝)

安裝步驟:

1. Next

2. Typical Complete Custom(O)

3. MySQL Server

Client Programs

C Includes Files / Lib Files(X)

Change: ?????

4. Install

Setup Type: Custom

Destination Folder(程序安裝路徑):

Data Folder(數據存儲的路徑):

5. Next-Next-

(O)Configure the MySQL Serer now

(O)Register the MySQL Server now

6. Finish

2.1.2 配置MySQL

安裝完成時,選上了Configure the MySQL Server now選項,圖形化安裝嚮導將進入MySQL配置歡迎界面。通過配置嚮導,可以設置MySQL資料庫的各種參數。

1. Next

2. (O)Detailed Configuration

(X)Standard Configuration

3. (O)Developer Machine(開發者)

Server Machine(伺服器)

Dedicated MySQL Server Machine(專用的資料庫伺服器)

4. (O)Multifunctional Database(多功能型資料庫)

Transactional Database Only(事務型的資料庫, InnoDB)

Non-Transactional Database Only(只支持MyISaM類型資料庫,非事務)

5. InnoDB Tablespace Settings (配置表空間)

6. 設置伺服器的連接數

Decision Support(DSS) / OLAP

Online Transaction Processing(OLTP)

(O)Manual Setting

Concurrent Connections: 10

7. MySQL服務的埠號:

(O)Add firewall exception for this port(允許防火牆)

(X)Enable Strict Mode(是區分大寫)

8. 設置字符集

Standard Character Set

Best Support for Multilingualism

(O)Manual Selected Default Character Set / Collation

utf-8

9. Install As Windws Service 服務選項

Service Name: MySQL

(O)Lanch the MySQL Server automatically(服務是否自動啟動)

(O)Include Bin Directory in Windows PATH(添加到path路徑當中)

10. Modify Security Setting:

New root password:

confirm:

(X)Enable root access from remote machines(不否遠程訪問root)

11. Execute

12. Finish

2.2 啟動服務並登錄MySQL資料庫

MySQL資料庫分為伺服器端(Server)和客戶端(Client)兩部分。只有伺服器端的服務開戶以後,才可以通過客戶端來登錄到MySQL資料庫。

2.2.1 啟動MySQL服務

開始-設置-控制面板-管理工具-服務

2.2.2 登錄MySQL伺服器

1. 開始-運行-cmd

mysql -h localhost -u root -p

mysql

2. 開始-運行-mysql -h 127.0.0.1 -u root -p

2.2.3 配置path變數

如果MySQL的應用程序的目錄沒有添加到Windows系統的path環境變數中,可以手工的將MySQL的目錄添加到path中。

將MySQL的應用程序的目錄添加到Windows系統的path環境變數中,可以使以後的操作更加方便。例如,可以直接從運行對話框輸入MySQL資料庫命令。而且,以後在編程時也會更加方便。配置path路徑很簡單,只要將MySQL的應用程序的目錄添加到系統的path環境變數中就可以了。

1. 右擊【我的電腦】-【屬性】

2. 在系統環境變數中選中path變數,然後單擊編輯按鈕進入編輯環境變數的對話框。

3. 把MySQL應用程序的目錄添加到path環境變數名值的後面。已經存在的目錄用分號隔開。

2.3 更改MySQL的配置

MySQL資料庫安裝好了以後,可能根據實際情況更改MySQL的某些配置。一般可以通過兩種方式來更改。一種是通過配置嚮導來更改配置,另一種是手工來更改配置。

mysql 資料庫題目 查詢Student表中每個學生的姓名和年齡。

SELECT DATE_FORMAT(NOW(), ‘%Y’) – DATE_FORMAT(SBIRTHDAY, ‘%Y’) – (DATE_FORMAT(NOW(), ’00-%m-%d’)

DATE_FORMAT(SBIRTHDAY, ’00-%m-%d’)) AS age from student; 查出精確。。。。自己加名字

mysql資料庫面試題(學生表_課程表_成績表_教師表)

Student(Sid,Sname,Sage,Ssex)學生表

Sid:學號

Sname:學生姓名

Sage:學生年齡

Ssex:學生性別

Course(Cid,Cname,Tid)課程表

Cid:課程編號

Cname:課程名稱

Tid:教師編號

SC(Sid,Cid,score)成績表

Sid:學號

Cid:課程編號

score:成績

Teacher(Tid,Tname)教師表

Tid:教師編號:

Tname:教師名字

1、插入數據

2、刪除課程表所有數據

3、將學生表中的姓名 張三修改為張大山

或者

4、查詢姓』李』的老師的個數:

5、查詢所有課程成績小於60的同學的學號、姓名:

6、查詢沒有學全所有課的同學的學號、姓名

7、查詢平均成績大於60分的同學的學號和平均成績

8、查詢學過「100」並且也學過編號「101」課程的同學的學號、姓名

9、查詢「100」課程比「101」課程成績高的所有學生的學號

10、查詢課程編號「100」的成績比課程編號「101」課程高的所有同學的學號、姓名

11、查詢學過「魯迅」老師所教的所有課的同學的學號、姓名

12、查詢所有同學的學號、姓名、選課數、總成績

13、查詢至少有一門課與學號為「1」同學所學相同的同學的學號和姓名

14、把「SC」表中「魯迅」老師教的課的成績都更改為此課程的平均成績,

錯誤

15、查詢和「2」學號的同學學習的課程完全相同的其他同學學號和姓名

16、刪除學習「魯迅」老師課的SC表記錄

17、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號「003」課程的同學學號、002號課的平均成績

18、查詢各科成績最高和最低的分:以如下的形式顯示:課程ID,最高分,最低分

19、按各科平均成績從低到高和及格率的百分數從高到低順序

20、查詢如下課程平均成績和及格率的百分數(用」1行」顯示): 數學(100),語文(101),英語(102)

22、查詢不同老師所教不同課程平均分從高到低顯示

23、查詢如下課程成績第3名到第6名的學生成績單:數學(100),語文(101),英語(102)

23、統計下列各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ 小於60]

24、查詢學生平均成績及其名次

25、查詢各科成績前三名的記錄(不考慮成績並列情況)

26、查詢每門課程被選修的學生數

27、查詢出只選修一門課程的全部學生的學號和姓名

28、查詢男生、女生人數

29、查詢姓「張」的學生名單

30、查詢同名同姓的學生名單,並統計同名人數

31、1981年出生的學生名單(註:student表中sage列的類型是datetime)

32、查詢平均成績大於85的所有學生的學號、姓名和平均成績

33、查詢每門課程的平均成績,結果按平均成績升序排序,平均成績相同時,按課程號降序排列

34、查詢課程名稱為「英語」,且分數低於60的學生名字和分數

35、查詢所有學生的選課情況

36、查詢任何一門課程成績在70分以上的姓名、課程名稱和分數

37、查詢不及格的課程,並按課程號從大到小的排列

38、查詢課程編號為「101」且課程成績在80分以上的學生的學號和姓名

39、求選了課程的學生人數:

40、查詢選修「魯迅」老師所授課程的學生中,成績最高的學生姓名及其成績

41、檢索至少選修兩門課程的學生學號

42、查詢全部學生都選修的課程的課程號和課程名(1.一個課程被全部的學生選修,2.所有的學生選擇的所有課程)

43、查詢沒學過「魯迅」老師講授的任一門課程的學生姓名

44、查詢兩門以上不及格課程的同學的學號及其平均成績

45、檢索「101」課程分數小於60,按分數降序排列的同學學號

46、刪除「2」同學的「101」課程的成績

哪位大俠可以提供一些mysql資料庫的題庫,一定要帶答案的!將感激不盡!!

一、不定項選擇題(共40題,每小題2.5分,總分100分)

1. 資料庫管理系統的發展歷經了如下那些模型階段( ACDE )

A. 層次模型 B. 結構模型 C. 關係模型

D. 網狀模型 E.對象模型

2. 關係型資料庫的核心單元是( B )

A. 對象 B. 表

C. 行 D. 列

3. 對於關係型資料庫來說,表之間存在下面那些關係( ABC )

A. 一對一關係 B. 一對多關係

C. 多對多關係 D. 繼承關係

4. 在SQL中,下面對於數據定義語言(DDL)描述正確的是( D )。

A. DDL關心的是資料庫中的數據 B. 完成數據的增、刪、改、查操作

C. 控制對資料庫的訪問 D. 定義資料庫的結構

5. MySQL是一種( C )資料庫管理系統。

A. 層次型 B. 網路型 C. 關係型 D. 對象型

6. SQL中,下列操作有語法錯誤的是( B )

A. AGE IS NOT NULL B. NOT(AGE IS NULL)

C. SNAME=『王五』 D. SNAME=『王%』

7. SQL中,下列關於創建、管理資料庫的操作語句不正確的是( CDE )

A. CREATE DATABASE Instant B. USE Instant C. NEW DATABASE Instant

D. Connection Instant E. Delete DATEBASE Instant

8. 在MySQL中,不存在的數據類型是( F )。

A. INT B. TEXT C. DECIMAL

D. VARCHAR E. DATETIME F. VARCHAR2

9. 在MySQL中,下列關於創建資料庫表的描述正確的是( C )。

A. 在創建表時必須設定列的約束

B. 在刪除表的時候通過外鍵約束連接在一起的表會被一同刪除

C. 在創建表時必須設置列類型

D. 通過CREATE TABLE new_t SELECT * FROM old_t複製表的同時,表的約束能夠一起被複制到新表中

10. 根據數據完整性實施的方法,可以將其分為( ACDF )

A. 實體完整性 B. 表完整性 C.域完整性

D. 引用完整性 E. 記錄完整性 F.用戶自定義完整性

11. 下面關於域完整性的方法,不正確的是( A )。

A. 主鍵約束 B. 外鍵約束 C.檢查約束

D. 非空約束 E. 默認值

12. 下面關於創建和管理索引正確的描述是( C )。

A. 創建索引是為了便於全表掃描

B. 索引會加快DELETE、UPDATE和INSERT語句的執行速度

C. 索引被用於快速找到想要的記錄

D. 大量使用索引可以提高資料庫的整體性能

13. SQL中,「AGE IN(20,22)」的語義是( D )。

A. AGE=22 AND AGE =20 B. AGE 22 AND AGE 20

C. AGE =20 AND AGE =22 D. AGE =20 OR AGE =22

14. 有一個關係:學生(學號,姓名,系別),規定學號的值域是8個數字組成的字元串,這一規則屬於( C )

A. 實體完整性約束 B. 參照完整性約束

C. 用戶自定義完整性約束 D. 關鍵字完整性約束

15. 下面SQL是來源於考試成績表t_exam:學號stuId、科目編號subId、成績score,考試日期:ex_date。有以下sql,它表示的意思是:( B )

Select stu_id,subId,count(*) as x

From t_exam

Where ex_date=』2008-08-08』

Group stu_id,subId

Having count(*)1

Order by x desc

A. 找出』2008-08-08』這天某科考試2次及以上的學生記錄

B. 找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數多的放在前面

C. 找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數少的放在前面

D. 根據學號和學科分組,找出每個人考試科數,最後考試次數多的放在前面

16. EMP表如下所示,下面哪些SQL語句的返回值為3:( BD )

EMP

僱員號 僱員名 部門號 工資 

001  張山  02 2000

010  王宏達 01 1200

056  馬林生 02 1000

101  趙敏 04

A. select count(*) from emp

B. select count(distinct 部門號) from emp

C. select count(*) from emp group by 僱員號

D. select count(工資) from emp

17. 下面那一項不是SELECT語句對數據的操作:( D )

A. 投影 B. 聯接 C. 並 D. 級聯

18. 下面關於SQL數據查詢操作描述正確的有:( ABD )

A. 投影操作是選擇對表中的哪些列進行查詢操作

B. 使用DISTINCT關鍵字可以過濾查詢中重複的記錄

C. 在模糊查詢中,通配符「%」表示匹配單個字元,而「_」表示匹配零個或多個字元

D. 在MySQL中使用LIMIT關鍵字限制從資料庫中返回記錄的行數

19. 在SQL語言中,條件「BETWEEN 20 AND 30」表示年齡在20到30之間,且( A )。

A. 包括20歲和30歲 B. 不包括20歲和30歲

C. 包括20歲,不包括30歲 D. 不包括20歲,包括30歲

20. SQL語言中,刪除EMP表中全部數據的命令正確的是( C )。

A. delete * from emp B. drop table emp

C. truncate table emp D. 沒有正確答案

21. 有關索引的說法錯誤的是( AD )

A. 索引的目的是為增加數據操作的速度

B. 索引是資料庫內部使用的對象

C. 索引建立得太多,會降低數據增加刪除修改速度

D. 只能為一個欄位建立索引

22. 下列哪個關鍵字在Select語句中表示所有列( A )

A. * B. ALL C. DESC D. DISTINCT

23. 在表中設置外鍵實現的是哪一類數據完整性( B )

A. 實體完整性 B. 引用完整性

C. 用戶定義的完整性 D. 實體完整性、引用完整性和用戶定義的完整性

24. 下面正確表示Employees表中有多少非NULL的Region列的SQL語句是( B )

A. SELECT count(* ) from Employees

B. SELECT count(ALL Region) from Employees

C. SELECT count(Distinct Region) from Employees

D. SELECT sum(ALL Region) from Employees

25. 下面可以通過聚合函數的結果來過濾查詢結果集的SQL子句是( C )

A. WHERE子句 B. GROUP BY子句

C. HAVING 子句 D. ORDER BY子句

26. t_score(stu_id,sub_id,score),即成績表(學號,科目編號,成績)。學生如果某科沒有考試,則該科成績錄入null。能夠獲取各位學生的平均成績的選項是( A )

A. select avg(nvl(socre,0)) from score group by stu_id

B. select stu_id,avg(sorce) from score

C. select stu_id,avg(score) from score

D. select stu_id,sum(score)/count(score) from score

27. 若要求查找S表中,姓名的第一個字為’王’的學生學號和姓名。下面列出的SQL語句中,哪個是正確的( B )

A. SELECT Sno,SNAME FROM S WHERE SNAME=′王%′

B. SELECT Sno,SNAME FROM S WHERE SNAME LIKE′王%′

C. SELECT Sno,SNAME FROM S WHERE SNAME LIKE′王_′

D. 全部

28. 若要求「查詢選修了3門以上課程的學生的學生號」,正確的SQL語句是( B )

A. SELECT Sno FROM SC GROUP BY Sno WHERE COUNT(*) 3

B. SELECT Sno FROM SC GROUP BY Sno HAVING( COUNT(*) 3)

C. SELECT Sno FROM SC ORDER BY Sno WHERE COUNT(*) 3

D. SELECT Sno FROM SC ORDER BY Sno HAVING COUNT(*)= 3

29. 對下面的查詢語句描述正確的是( D )

Select StudentID,Name,

(select count(*) from StudentExam

where StudentExam.StudentID = Student.StudentID) as ExamsTaken

from Student

order by ExamsTaken desc

A. 從Student表中查找StudentID和Name,並按照升序排列

B. 從Student表中查找StudentID和Name,並按照降序排列

C. 從Student表中查找StudentID、Name和考試次數

D. 從Student表中查找StudentID、Name,並從StudentExam表中查找與StudentID一致的學生考試次數,並按照降序排列

30. 下面題基於學生-課程資料庫中的三個基本表:

學生信息表:s(sno, sname, sex, age, dept) 主鍵為sno

課程信息表:c(cno, cname, teacher) 主鍵為cno

學生選課信息表:sc(sno, cno, grade) 主鍵為(sno, cno)

「從學生選課信息表中找出無成績的學生信息」的SQL語句是( C d )

A.

SELECT * FROM sc WHERE grade=NULL

B.

SELECT * FROM sc WHERE grade IS 『 』

C.

SELECT * FROM sc WHERE grade IS NULL

D.

SELECT * FROM sc WHERE grade =『 』

31. 當子查詢返回多行時,可以採用的解決辦法是( C )。

A. 使用聚合函數 B. Where條件判斷

C. 使用IN運算符 D. 使用Group by進行分組

32. 下面關於在子查詢中使用運算符描述不正確的是( D )。

A. 使用IN運算符用於查找欄位值屬於某一組值的行

B. 使用Exists運算符用於測試子查詢是否返回行,如果返回其值就為真

C. 使用ALL運算符用於測試子查詢結果集的所有行是否滿足指定的條件

D. 使用Any運算符用於測試子查詢結果集中的一行或多行不滿足指定的條件

33. 下面關於組合查詢描述不正確的是( D )。

A. 從一個表中獲取的數據必須和其它表中的數據具有相同的列數

B. 兩個表中相對應的列必須具有相同的數據類型

C. UNION的結果集列名與第一個SELECT語句的結果集中的列名相同

D. UNION的結果集列名與第二個SELECT語句的結果集中的列名相同

E. UNION ALL運算符返回每個數據集的所有成員

34. 下面關於聯接的描述正確的是( A )。

A. 內聯接使用比較運算符根據每個表共有的列值來匹配兩個表中的行

B. 左外聯接結果集包含從右邊的表返回的所有行

C. 右外聯接結果集包含從左邊的表返回的所有行

D. 全外聯接返回左表和右表中的所有匹配的行

35. 下面關於資料庫設計過程正確的順序描述是( C )。

A. 需求收集和分析、邏輯設計、物理設計、概念設計

B. 概念設計、需求收集和分析、邏輯設計、物理設計

C. 需求收集和分析、概念設計、邏輯設計、物理設計

D. 需求收集和分析、概念設計、物理設計、邏輯設計

36. ER圖屬於下面哪一種資料庫設計模型( B )。

A. 物理數據模型

B. 概念數據模型

C. 邏輯數據模型

D. 需求模型

37. 非主鍵必須完全依賴於主鍵列,這屬於下列範式的內容( BC )

A. 1NF B. 2NF C. 3NF D. 都沒有的

38. 如果一個欄位的數據必須來源另一個表的主鍵,那麼要在這個欄位上建立( B )。

A. PK(主鍵) B. FK(外鍵) C. UK(唯一鍵) D. 複合主鍵

39. 根據三個範式的定義,下面哪個選項的設計是正確的( C )

職工編號 姓名 工種 車間 車間主任

1001 李寧 車工 一車間 周傑

1002 王海 銑工 一車間 周傑

1003 趙亮 鉗工 二車間 吳明

1001 李寧 鉗工 二車間 吳明

A. 員工表、工種表、車間表

B. 員工表、工種表、車間表、車間主任表

C. 員工表、工種表、車間表、員工工種表、員工車間表

D. 以上設計均不正確

40. 下列說法中,哪些是正確的( BD )

A. RDBMS是資料庫管理系統的簡稱

B. 各行記錄都不能重複,是第二範式要求的

C. 在資料庫設計中一定要滿足第三範式

D. 索引越多,查詢越快,數據更新越慢

這兩種題型mysql資料庫結構應該怎麼設計,B形題和A3A4題

一、不定項選擇題(共40題,每小題2.5分,總分100分)1.資料庫管理系統的發展歷經了如下那些模型階段(ACDE)A.層次模型B.結構模型C.關係模型D.網狀模型E.對象模型2.關係型資料庫的核心單元是(B)A.對象B.表C.行D.列3.對於關係型資料庫來說,表之間存在下面那些關係(ABC)A.一對一關係B.一對多關係C.多對多關係D.繼承關係4.在SQL中,下面對於數據定義語言(DDL)描述正確的是(D)。A.DDL關心的是資料庫中的數據B.完成數據的增、刪、改、查操作C.控制對資料庫的訪問D.定義資料庫的結構5.MySQL是一種(C)資料庫管理系統。A.層次型B.網路型C.關係型D.對象型6.SQL中,下列操作有語法錯誤的是(B)A.AGEISNOTNULLB.NOT(AGEISNULL)C.SNAME=『王五』D.SNAME=『王%』7.SQL中,下列關於創建、管理資料庫的操作語句不正確的是(CDE)A.CREATEDATABASEInstantB.USEInstantC.NEWDATABASEInstantD.ConnectionInstantE.DeleteDATEBASEInstant8.在MySQL中,不存在的數據類型是(F)。A.INTB.TEXTC.DECIMALD.VARCHARE.DATETIMEF.VARCHAR29.在MySQL中,下列關於創建資料庫表的描述正確的是(C)。A.在創建表時必須設定列的約束B.在刪除表的時候通過外鍵約束連接在一起的表會被一同刪除C.在創建表時必須設置列類型D.通過CREATETABLEnew_tSELECT*FROMold_t複製表的同時,表的約束能夠一起被複制到新表中10.根據數據完整性實施的方法,可以將其分為(ACDF)A.實體完整性B.表完整性C.域完整性D.引用完整性E.記錄完整性F.用戶自定義完整性11.下面關於域完整性的方法,不正確的是(A)。A.主鍵約束B.外鍵約束C.檢查約束D.非空約束E.默認值12.下面關於創建和管理索引正確的描述是(C)。A.創建索引是為了便於全表掃描B.索引會加快DELETE、UPDATE和INSERT語句的執行速度C.索引被用於快速找到想要的記錄D.大量使用索引可以提高資料庫的整體性能13.SQL中,「AGEIN(20,22)」的語義是(D)。A.AGE=20B.AGE20C.AGE=20ANDAGE=22D.AGE=20ORAGE=2214.有一個關係:學生(學號,姓名,系別),規定學號的值域是8個數字組成的字元串,這一規則屬於(C)A.實體完整性約束B.參照完整性約束C.用戶自定義完整性約束D.關鍵字完整性約束15.下面SQL是來源於考試成績表t_exam:學號stuId、科目編號subId、成績score,考試日期:ex_date。有以下sql,它表示的意思是:(B)Selectstu_id,subId,count(*)asxFromt_examWhereex_date=』2008-08-08』Groupstu_id,subIdHavingcount(*)1OrderbyxdescA.找出』2008-08-08』這天某科考試2次及以上的學生記錄B.找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數多的放在前面C.找出』2008-08-08』這天,某科考試2次及以上的學生記錄,考試次數少的放在前面D.根據學號和學科分組,找出每個人考試科數,最後考試次數多的放在前面16.EMP表如下所示,下面哪些SQL語句的返回值為3:(BD)EMP僱員號僱員名部門號工資 001 張山 02 2000010 王宏達 011200056 馬林生 021000101 趙敏04A.selectcount(*)fromempB.selectcount(distinct部門號)fromempC.selectcount(*)fromempgroupby僱員號D.selectcount(工資)fromemp17.下面那一項不是SELECT語句對數據的操作:(D)A.投影B.聯接C.並D.級聯18.下面關於SQL數據查詢操作描述正確的有:(ABD)A.投影操作是選擇對表中的哪些列進行查詢操作B.使用DISTINCT關鍵字可以過濾查詢中重複的記錄C.在模糊查詢中,通配符「%」表示匹配單個字元,而「_」表示匹配零個或多個字元D.在MySQL中使用LIMIT關鍵字限制從資料庫中返回記錄的行數19.在SQL語言中,條件「BETWEEN20AND30」表示年齡在20到30之間,且(A)。A.包括20歲和30歲B.不包括20歲和30歲C.包括20歲,不包括30歲D.不包括20歲,包括30歲20.SQL語言中,刪除EMP表中全部數據的命令正確的是(C)。A.delete*fromempB.droptableempC.truncatetableempD.沒有正確答案21.有關索引的說法錯誤的是(AD)A.索引的目的是為增加數據操作的速度B.索引是資料庫內部使用的對象C.索引建立得太多,會降低數據增加刪除修改速度D.只能為一個欄位建立索引22.下列哪個關鍵字在Select語句中表示所有列(A)A.*B.ALLC.DESCD.DISTINCT23.在表中設置外鍵實現的是哪一類數據完整性(B)A.實體完整性B.引用完整性C.用戶定義的完整性D.實體完整性、引用完整性和用戶定義的完整性24.下面正確表示Employees表中有多少非NULL的Region列的SQL語句是(B)A.SELECTcount(*)fromEmployeesB.SELECTcount(ALLRegion)fromEmployeesC.SELECTcount(DistinctRegion)fromEmployeesD.SELECTsum(ALLRegion)fromEmployees25.下面可以通過聚合函數的結果來過濾查詢結果集的SQL子句是(C)A.WHERE子句B.GROUPBY子句C.HAVING子句D.ORDERBY子句26.t_score(stu_id,sub_id,score),即成績表(學號,科目編號,成績)。學生如果某科沒有考試,則該科成績錄入null。能夠獲取各位學生的平均成績的選項是(A)A.selectavg(nvl(socre,0))fromscoregroupbystu_idB.selectstu_id,avg(sorce)fromscoreC.selectstu_id,avg(score)fromscoreD.selectstu_id,sum(score)/count(score)fromscore27.若要求查找S表中,姓名的第一個字為’王’的學生學號和姓名。下面列出的SQL語句中,哪個是正確的(B)A.SELECTSno,SNAMEFROMSWHERESNAME=′王%′B.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王%′C.SELECTSno,SNAMEFROMSWHERESNAMELIKE′王_′D.全部28.若要求「查詢選修了3門以上課程的學生的學生號」,正確的SQL語句是(B)A.SELECTSnoFROMSCGROUPBYSnoWHERECOUNT(*)3B.SELECTSnoFROMSCGROUPBYSnoHAVING(COUNT(*)3)C.SELECTSnoFROMSCORDERBYSnoWHERECOUNT(*)3D.SELECTSnoFROMSCORDERBYSnoHAVINGCOUNT(*)=329.對下面的查詢語句描述正確的是(D)SelectStudentID,Name,(selectcount(*)fromStudentExamwhereStudentExam.StudentID=Student.StudentID)asExamsTakenfromStudentorderbyExamsTakendescA.從Student表中查找StudentID和Name,並按照升序排列B.從Student表中查找StudentID和Name,並按照降序排列C.從Student表中查找StudentID、Name和考試次數D.從Student表中查找StudentID、Name,並從StudentExam表中查找與StudentID一致的學生考試次數,並按照降序排列30.下面題基於學生-課程資料庫中的三個基本表:學生信息表:s(sno,sname,sex,age,dept)主鍵為sno課程信息表:c(cno,cname,teacher)主鍵為cno學生選課信息表:sc(sno,cno,grade)主鍵為(sno,cno)「從學生選課信息表中找出無成績的學生信息」的SQL語句是(Cd)A.SELECT*FROMscWHEREgrade=NULLB.SELECT*FROMscWHEREgradeIS『』C.SELECT*FROMscWHEREgradeISNULLD.SELECT*FROMscWHEREgrade=『』31.當子查詢返回多行時,可以採用的解決法是(C)。A.使用聚合函數B.Where條件判斷C.使用IN運算符D.使用Groupby進行分組32.下面關於在子查詢中使用運算符描述不正確的是(D)。A.使用IN運算符用於查找欄位值屬於某一組值的行B.使用Exists運算符用於測試子查詢是否返回行,如果返回其值就為真C.使用ALL運算符用於測試子查詢結果集的所有行是否滿足指定的條件D.使用Any運算符用於測試子查詢結果集中的一行或多行不滿足指定的條件33.下面關於組合查詢描述不正確的是(D)。A.從一個表中獲取的數據必須和其它表中的數據具有相同的列數B.兩個表中相對應的列必須具有相同的數據類型C.UNION的結果集列名與第一個SELECT語句的結果集中的列名相同D.UNION的結果集列名與第二個SELECT語句的結果集中的列名相同E.UNIONALL運算符返回每個數據集的所有成員34.下面關於聯接的描述正確的是(A)。A.內聯接使用比較運算符根據每個表共有的列值來匹配兩個表中的行B.左外聯接結果集包含從右邊的表返回的所有行C.右外聯接結果集包含從左邊的表返回的所有行D.全外聯接返回左表和右表中的所有匹配的行35.下面關於資料庫設計過程正確的順序描述是(C)。A.需求收集和分析、邏輯設計、物理設計、概念設計B.概念設計、需求收集和分析、邏輯設計、物理設計C.需求收集和分析、概念設計、邏輯設計、物理設計D.需求收集和分析、概念設計、物理設計、邏輯設計36.ER圖屬於下面哪一種資料庫設計模型(B)。A.物理數據模型B.概念數據模型C.邏輯數據模型D.需求模型37.非主鍵必須完全依賴於主鍵列,這屬於下列範式的內容(BC)A.1NFB.2NFC.3NFD.都沒有的38.如果一個欄位的數據必須來源另一個表的主鍵,那麼要在這個欄位上建立(B)。A.PK(主鍵)B.FK(外鍵)C.UK(唯一鍵)D.複合主鍵39.根據三個範式的定義,下面哪個選項的設計是正確的(C)職工編號姓名工種車間車間主任1001李寧車工一車間周傑1002王海銑工一車間周傑1003趙亮鉗工二車間吳明1001李寧鉗工二車間吳明A.員工表、工種表、車間表B.員工表、工種表、車間表、車間主任表C.員工表、工種表、車間表、員工工種表、員工車間表D.以上設計均不正確40.下列說法中,哪些是正確的(BD)A.RDBMS是資料庫管理系統的簡稱B.各行記錄都不能重複,是第二範式要求的C.在資料庫設計中一定要滿足第三範式D.索引越多,查詢越快,數據更新越慢

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291001.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-24 13:13
下一篇 2024-12-24 13:13

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python第一章題庫

    本篇文章將從以下幾個方面對Python第一章題庫進行詳細的闡述,包括基本語法、數據類型、控制語句、函數和模塊等方面。 一、基本語法 Python是一門簡單易學、功能強大的編程語言,…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28

發表回復

登錄後才能評論