免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2016年上半年 数据库系统工程师 上午试卷 综合知识
  第40题      
  知识点:   关系的相关名词   SQL查询
  关键词:   外键        章/节:   关系数据库       

 
某企业部门关系模式Dept(部门号,部门名,负责人工号,任职时间),员工关系模式EMP(员工号,姓名,年龄,月薪资,部门号,电话,办公室)。部门和员工关系的外键分别是(40)。查询每个部门中月薪资最高的员工号、姓名、部门名和月薪资的SQL查询语句如下:
 
 
  A.  员工号和部门号
 
  B.  负责人工号和部门号
 
  C.  负责人工号和员工号
 
  D.  部门号和员工号
 
 
 

 
  第29题    2012年上半年  
   63%
给定关系模式销售排名(员工号,商品号,排名),若每一名员工每种商品有一定的排名,每种商品每一排名只有一名员工,则以下叙述..
  第49题    2022年上半年  
   58%
关系模式R(U,F)中,U是属性集,F是函数依赖集,X、Y是U的子集。若Y∈XF+,则( )。
  第33题    2011年上半年  
   45%
设有员工实体Employee (员工号,姓名,性别,年龄,电话,家庭住址,家庭成员,关系,联系电话)。其中,“家庭住址”..
   知识点讲解    
   · 关系的相关名词    · SQL查询
 
       关系的相关名词
        (1)属性(Attribute):在现实世界中,要描述一个事务常常取若干特征来表示。这些特征称为属性。例如学生用学号、姓名、性别、系别、年龄、籍贯等属性来描述。
        (2)域(Domain):每个属性的取值范围所对应一个值的集合,称为该属性的域。例如,学号的域是6位整型数;姓名的域是10位字符;性别的域为{男,女};……一般在关系数据模型中,对域还加了一个限制,所有的域都应是原子数据(atomic data)。例如,整数、字符串是原子数据,而集合、记录、数组是非原子数据。关系数据模型的这种限制称为第一范式(first normal form,简称1NF)条件。但也有些关系数据模型突破了1NF的限制,称为非1NF的。
        (3)目或度(Degree):D1×D2×…×Dn的子集的称作在域D1D2…,Dn上的关系,表示为R(D1D2,…,Dn)。这里的R表示关系的名字,n是关系的目或度。
        (4)候选码(Candidate Key):若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组为候选码。
        (5)主码(Primary Key):或称主键,若一个关系有多个候选码,则选定其中一个为主码。
        (6)主属性(Prime attribute):包含在任何候选码中的属性称为主属性。不包含在任何候选码中的属性称为非主属性(NonPrime attribute)。
        (7)外码(Foreign key):如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该属性集对关系模式R而言是外码。
        例如,客户与贷款之间的借贷联系c-l(
        ,loan-no),属性c-id是客户关系中的码,所以c-id是外码;属性loan-no是贷款关系中的码,所以loan-no也是外码。
        (8)全码(All-key):关系模型的所有属性组是这个关系模式的候选码,称为全码。
        例如,关系模式R(T,C,S),属性T表示教师,属性C表示课程,属性S表示学生。假设一个教师可以讲授多门课程,某门课程可以由多个教师讲授,学生可以听不同教师讲授的不同课程,那么,要想区分关系中的每一个元组,这个关系模式R的码应为全属性T、C和S,即All-key。
 
       SQL查询
        SQL(Structrued Query Language)是关系数据库标准语言,它不仅包含数据查询功能,还包括插入、删除、更新和数据定义功能。
               SQL的特点
               一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。其主要特点为:
               (1)综合统一。SQL是集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动。而非关系模型的数据语言分为模式定义语言和数据操纵语言,当数据库投入运行后,若要修改模式时,必须停止现有数据库的运行,然后转储数据,修改模式并编译后再重装数据库,非常麻烦。
               (2)高度非过程化。非关系数据模型的数据操纵语言是面向过程的,若要完成某项请求时,必须指定存储路径。而SQL语言是高度非过程化语言,当进行数据操作时,只要指出“做什么”,无须指出“怎么做”,存储路径对用户来说是透明的,提高了数据的独立性。
               (3)面向集合的操作方式。非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而SQL语言采用面向集合的操作方式,其操作对象、查找结果可以是元组的集合。
               (4)灵活的使用方式。用户可以在终端键盘上输入SQL命令,对数据库进行操作;也可以将SQL语言嵌入到高级语言程序中。
               (5)语言简洁、易学易用。SQL语言功能极强,完成核心功能只用了9个动词,包括如下4类:数据查询(SELECT)、数据定义(CREATE、DROP、ALTER)、数据操纵(INSERT、UODATE、DELETE)和数据控制(GRANT、REVORK)。
               数据定义
                      创建表(CREATE TABLE)
                      语句格式:CREATE TABLE<表名>
                      
                      说明:语句格式中,“<>”表示必选项,“[]”表示可选项,“|”表示多选一,NOT NULL表示字段不能为空,UNIQUE表示字段值是唯一的,PRIMARY KEY定义字段为主键。
                      修改表和删除表
                      (1)修改表(ALTER TABLE)。
                      
                      例如,向“供应商”表增加“邮政编码”可用如下语句:
                      ALTER TABLE供应商ADD邮政编码text(6);
                      注意,不论基本表中原来是否已有数据,新增加的列一律为空。
                      又如,将“供应商号”字段改为整型可用如下语句:
                      ALTER TABLE供应商MODIFY供应商号INT;
                      (2)删除表(DROP TABLE)。
                      语句格式:DROP TABLE<表名>
                      例如,执行“DROP TABLE供应商”语句后,“供应商”表在“销售”数据库不存在。
                      定义和删除索引
                      (1)聚集索引和非聚集索引。
                      聚集索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即聚集索引与数据是混为一体的,它的叶节点中存储的是实际的数据。
                      非聚集索引具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数据按列排序。非聚集索引的叶节点存储了组成非聚集索引的关键字值和行定位器。
                      (2)建立索引。
                      
                      说明:“次序”是指可选ASC(升序)或DSC(降序),默认值为ASC;UNIQUE表示该索引的每一个索引值只对应唯一的数据记录;CLUSTER表明要建立的索引是聚簇索引,意为索引项的顺序是与表中记录的物理顺序一致的索引组织。
                      (3)删除索引。
                      语句格式:DROP INDEX<索引名>
                      例如,执行DROP INDEX S-SNO,此后索引S-SNO不再是“销售”数据库模式的一部分。
               SELECT查询
               数据库查询是数据库的核心操作,SQL语言提供了SELECT语句进行数据库的查询。
               
                      简单查询
                      SQL最简单的查询是找出关系中满足特定条件的元组,这些查询与关系代数中的选择操作类似。简单查询只需要使用三个保留字SELECT、FROM和WHERE。
                      连接查询
                      若查询涉及两个以上的表,则称为连接查询。
                      子查询与聚集函数
                      (1)子查询。
                      子查询也称为嵌套查询。嵌套查询是指一个SELECT-FROM-WHERE查询块可以嵌入另一个查询块之中。在SQL中允许多重嵌套。
                      (2)聚集函数。
                      聚集函数是一个值的集合为输入,返回单个值的函数。SQL提供了5个预定义集函数:平均值avg、最小值min、最大值max、求和sum以及计数count。如下表所示。
                      
                      集函数的功能
                      分组查询
                      (1)GROUP BY子句。
                      在WHERE子句后面加上GROUP BY子句可以对记录进行分组,保留字GROUP BY后面跟着一个分组字段列表。最简单的情况是FROM子句后面只有一个关系(表),根据分组字段对表中的记录进行分组。SELECT子句中使用的聚集操作符仅用在每个分组上。
                      (2)HAVING子句。
                      假如记录在分组前按照某种方式加上限制,使得不需要的分组为空,那么可以通过GROUP BY后面跟一个HAVING条件子句实现。
                      注意,当记录含有空值时,在任何聚集操作中被忽视。它对求和、求平均值和计数都没有影响,空值不能作为某列的最大值或最小值。例如,COUNT(*)是某个关系中所有元组数目之和,但COUNT(A)却是A属性非空的元组个数之和。
               数据更新
                      插入语句。
                      在数据库中插入数据,可以通过指定被插入的记录,或者用查询语句选出一批待插入的记录。插入语句的基本格式如下:
                      
                      删除语句。
                      删除语句的基本格式如下:
                      
                      修改语句。
                      修改语句的基本格式如下:
                      
   题号导航      2016年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第40题    在手机中做本题