MYsql数据库练习题

Posted Roam-G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYsql数据库练习题相关的知识,希望对你有一定的参考价值。

目录

6-当 B属性函数依赖于A属性时,属性A与B 的联系是 

5-现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期)的主码是(      ) 。

4-下列说法中,不属于数据模型所描述的内容是 ______ 。

3-假设有选课表course_relation(student_id, course_id),其中student_id表示学号,course_id表示课程编号,如果小易现在想获取每个学生所选课程的个数信息,请问如下的sql语句正确的是( )

2- 一条SQL语句中,group by子句应位于什么位置


6-当 B属性函数依赖于A属性时,属性A与B 的联系是 

正确答案: B   你的答案: A (错误)

1对多

多对1

多对多

1对 1


 

B函数依赖于A,也可以说成A函数确定B。即A->B,即每个A一旦确定,随之而言B就确定。我们可以简单理解成Y=X^2,每有一个X确定,Y就确定。但一个Y却可以有多个X与之对应。即一个确定的B可以有多个A,但是一个确定的A只能有一个B。即多对1

我觉得举学生和班级的例子比较通俗易懂,A(学生小明),B(班级):知道学生小明就能知道班级,但是知道班级并不能得到小明,所以满足A—>B,所以学生与班级之间的关系是多对一。

百度的是B

因为A→B,表示对于A中的每一个属性在B中只有唯一的一个值与之对应,而B中的一个值可与A中的多个值对应,所以A、B之间的联系是从A到B的多对一联系。所以答案应为B

5-现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期)的主码是(      ) 。

正确答案: B   你的答案: B (正确)

宿舍编号

学号

宿舍地址,姓名

宿舍编号,学号

/

正确答案:B 学号可以唯一确定学生关系的一个元组,而且学号不存在任何真子集,从而学号可以作为学生关系的主键,学号对应唯一一个学生,宿舍编号对应一个宿舍却也可对应多个学生. D虽然也有学号,但是却与无法跟学生存在联系的"宿舍编号"组成了子集.

4-下列说法中,不属于数据模型所描述的内容是 ______ 。

正确答案: C   你的答案: A (错误)

数据结构

数据操作

数据查询

数据约束

//

数据模型的组成要素有:

1.数据结构,描述数据库的组成对象以及对象之间的联系,数据结构是所描述的对象类型的集合,是对系统静态特征的描述

2.数据操作,是指对数据库中各种对象的实例允许执行的操作的集合,主要有查询和更新。

3.数据的完整性约束条件,是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的之约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束

数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束 

①数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。

②数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。 

③数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。

3-假设有选课表course_relation(student_id, course_id),其中student_id表示学号,course_id表示课程编号,如果小易现在想获取每个学生所选课程的个数信息,请问如下的sql语句正确的是( )

正确答案: D   你的答案: D (正确)

select student_id, sum(course_id) from course_relation;

select student_id, sum(course_id) from lcourse_relation group by student_id;

select student_id, count(course_id) from course_relation;

select student_id, count(course_id) from course_relation group by student_id;


求和用累加sum(),求行的个数用累计count()。(复制粘贴的)

group by 更多的起到了同类对应求和,不加的话只会机械式的把所有的求和,对数据的查询提取无法实现

学生和课程关系是:1:多关系, 重复的学生id可组合并去查询

sum列,count行 sum函数返回数值列的总数。

查看每个学生的选课数量,因此需要对学生分组group by student_id,然后统计个数count

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate

  • - 假设有选课表course_relation(student_id, course_id),其中student_id表示学号,course_id表示课程编号,如果小易现在想获取每个学生所选课程的个数信息,请问如下的sql语句正确的是( )

SELECT

student_id,

count( coures_id )

FROM

course_relation

GROUP BY

student_id

-- 思路 我们通过查询 学号id 来计数他选了几门课程 在对每一个学生选课进行分组

2- 一条SQL语句中,group by子句应位于什么位置

正确答案: B   你的答案: 空 (错误)

在where子句关键字之前

在where子句之后

在from关键字之前

在order by子句之后



select的执行顺序:from,where,group ,having ,(select)order by,limit

select的执行顺序为:from where group having order by limit

SELECT select_list

[ INTO new_table ]

FROM table_source

[ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC | DESC ] ]

SQL Select语句完整的执行顺序:

1、from子句组装来自不同数据源的数据;

2、where子句基于指定的条件对记录行进行筛选;

3、group by子句将数据划分为多个分组;

4、使用聚集函数进行计算;

5、使用having子句筛选分组;

6、计算所有的表达式;

7、使用order by对结果集进行排序。

8、select 集合输出。

以上是关于MYsql数据库练习题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库练习题

MySQL 数据库 练习题

mysql练习题

mysql练习题

MySQL练习题

MySql练习题