当前位置:首页 » 操作系统 » 数据库中wh

数据库中wh

发布时间: 2022-12-15 12:05:31

1. 数据库SQ习题

最佳答案:
习题
一、选择题
1.关于查询语句中ORDER BY子句使用正确的是( D )。
A.如果未指定排序字段,则默认按递增排序
B.表的字段都可用于排序
C.如果在SELECT子句中使用了DISTINCT关键字,则排序字段必须出现在查询结果中
D.联合查询不允许使用ORDER BY子句
第2~4题使用7.7节“示例分析”中数据表。
2.使用查询语句:
SELECT STUDENT.学号,STUDENT.姓名,SUM(分数)
FROM STUDENT,GRADE
WHERE STUDENT.学号=GRADE.学号
GROUP BY STUDENT.学号,STUDENT.姓名
查询结果是(A )。
A.按学号分类的每个学生所有课程成绩的总分 B.按学号分类的每个学生各课程成绩
C.全体学生的按各课程分类的成绩总分 D.所有学生所有课程成绩总分
3.使用查询语句:
SELECT MAX(分数) AS 最高分
FROM STUDENT,curriculum,GRADE
WHERE STUDENT.学号=GRADE.学号
AND curriculum.课程编号=GRADE.课程编号
AND 课程名称='数据库技术及应用'
查询的结果是( )。
A.87 B.91 C.82 D.90
很遗憾!不知道表中的记录数据,无法判断是哪个选项,但是题意是检索出:选修课程'数据库技术及应用'的学生中成绩最高的。看一下表就知道了。
4.查询选修了课程编号为“0002”的学生的学号和姓名,以下( A )语句是错误的。
A.
SELECT 学号,姓名FROM STUDENT
WHERE 学号=(SELECT 学号FROM GRADE WHERE 课程编号='0002')
B.
SELECT STUDENT.学号,STUDENT.姓名
FROM STUDENT,GRADE
WHERE STUDENT.学号=GRADE.学号AND 课程编号='0002'
C.
SELECT STUDENT.学号,STUDENT.姓名
FROM STUDENT JOIN GRADE ON STUDENT.学号=GRADE.学号
WHERE GRADE.课程编号='0002'
D.
SELECT 学号,姓名FROM STUDENT
WHERE 学号IN (SELECT 学号FROM GRADE WHERE 课程编号='0002')
5.下列关于查询结果错误的是( D )。
A.查询结果可以显示在表格中
B.查询结果可以按文本方式显示
C.以文本和表格显示的查询结果在保存时,其文件格式不同
D.不管以哪种方式查看,查询结果都会显示在查询结果窗口中
6.在T-sql语句中,与表达式“仓库号NOT IN ('wh1','wh2')”功能相同的表达式是( D )。
A.仓库号='wh1' AND 仓库号='wh2' B.仓库号!='wh1' OR 仓库号# 'wh2'
C.仓库号<>'wh1' OR 仓库号!='wh2' D.仓库号!='wh1' AND 仓库号!='wh2'
7.在T-SQL 的SELECT语句中用于实现关系的选择运算的短语是( C )。
A.FOR B.WHILE C.WHERE D.CONDITION
8.使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( B )。
A.使用WHERE子句 B.在GROUP BY后面使用HAVING子句
C.先使用WHERE子句,再使用HAVING子句 D.先使用HAVING子句,再使用WHERE子句
二、填空题
1.在查询语句中,应在__SELECT____子句中指定输出字段。
2.如果要使用SELECT语句返回指定条数的记录,则应使用_TOP__关键字来限定输出字段。
3.当一个子SELECT的结果作为查询的条件,即在一个SELECT命令的WHERE子句中出现另一个SELECT命令,这种查询称为__嵌套____查询。
4.连接查询可分为3种类型:_内连接___、__外连接__和交叉连接。
5.若要把查询结果存放到一个新建的表中,可使用__into tabale 或into dbf____子句。
三、判断题
1.在关系数据库SQL Server中,用于检索数据的语句是T-SQL的定义语言。 (× )
2.逻辑运算符(AND、NOT、OR)的运算顺序是AND→OR→NOT。 ( × )
3.用于WHERE子句的查询条件表达式可用的比较运算符为:=(等于)、!=或<>(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)。 ( √ )
4.SELECT语句的DISTINCT参数表示输出无重复结果的记录。 ( √ )
5.如果要使SELECT的查询结果有序输出,需要用GROUP BY子句配合。 ( × )

2. 数据库系统的二级映象与数据独立性之间有什么关系

数据库系统的二级映象与数据独立性之间关系:

数据库管理系统数据独立性在这三级模式之间提供了两层映象:

  1. 外模式/模式映象

  2. 模式/内模式映象

正是这两层映象保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

(1)外模式/模式映象

模式描述的是数据的全局逻辑结构.外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。

当模式改变(如增加新的关系、新的属性、改变属性的数据类型等)时,由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性。

(2)模式/内模式映象

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映象定义通常包含在模式描述中。当数据库的存储结构改变了(如选用了另一种存储结构),由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应首先确定数据库的逻辑模式。

数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。

数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式必须做相应改动,所以设计外模式时应充分考虑到应用的扩充性。

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映象保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改.

数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

3. MySQL数据库基础+ 数据库的基本操作

需要用的资料以链接的形式给需要的同学。

我用的mysql版本为: Mysql-5.5.45-win64.msi 密码是:26zw

图形化工具 Navicat(前期不推荐用,直接手动敲): Navicat 密码:c7fs

开始我的MySQL之旅吧 始于2016.12.04

--WH

一、数据库的安装

这个就不在这里过多阐述了,因为网上实在是太多安装mysql的教程了,有了我给的mysql,在按照这个安装教程(MySQL安装教程)去看,就能够安装完好。

安装好mysql后,如果需要使用windows命令窗口(也就是cmd)来操作mysql,那么就需要配置环境变量,在安装好的mysql下找到bin,将其目录放到环境变量path中去,就行了,检测成功与否的方法是在cmd命令窗口中输入mysql,就会出现一大段英文,就说明成功了,反之失败,如果不会的话就去网络搜教程。

二、数据库的基本操作

1、开启mysql服务命令

net start mysql

2、进入mysql的两种方式

明文进入:mysql -uroot -proot格式:mysql -u帐号-p密码

密文进入:mysql -uroot -p 按enter会提示你输入密码(Enter pssword:),此时你写的密码就会显示为***这样。

3、查看mysql中所有的数据库(一般在固定的单词命令就会是用大写,这个要习惯,看多了敲多了就认识了)

前面四个数据库是mysql中自带的,也就是必须的.

SHOW DATABASES;

4、创建名为test_1的数据库

格式:CREATE DATABASE 数据库名

CREATE DATABASE test_1;

5、删除名为test_1的数据库

格式:DROP DATABASE 数据库名

DROP DATABASE test_1;

总结:学习了对数据库的三个操作,1、查看所有数据库 2、创建数据库 3、删除数据库

三、数据表的基本操作

数据表和数据库还有Mysql三者的关系

mysql中保存了很多数据库、一个数据库中可以保存很多表。

对数据表的增(创建表)删(删除表)改(修改表字段)查(查询表结构)。 注意:这里的操作对象是表,对表的操作也就是表的结构,和表中的字段的操作(字段和记录要分清楚)

前提:表是在数据库下的,所以要先确实使用哪个数据库。

USE test_1;

1、创建数据表

格式:CREATE TABLE 数据表名(

字段名1数据类型[列级别约束条件],

字段名2数据类型[列级别约束条件],

字段名3数据类型[列级别约束条件]

);

注意:格式不一定需要这样隔着写,完全可以全部写成一行。但是那样写可观性非常差。我这样写只是为了可以看的更清晰。

解释:

1、[]中括号中的内容表示可以有可以没有,

2、列级别这个“列”一定要搞清楚说的是什么,一张表中有行有列,列表示竖,行表示横

3、约束条件后面会讲到

1.1、创建没有约束的student表
CREATE TABLE student( idINT(11), nameVARCHAR(12), ageINT(11) );

注释:SHOW TABLES 查询数据库底下的所有表。

1.2、创建有约束的student表

六大约束:主键约束、外键约束、非空约束、唯一约束、默认约束、自动增加

1.2.1:主键约束

PRIMARY KEY(primary key):独一无二(唯一)和不能为空(非空),通俗的讲,就是在表中增加记录时,在该字段下的数据不能重复,不能为空,比如以上面创建的表为例子,在表中增加两条记录,如果id字段用了主键约束。则id不能一样,并且不能为空。一般每张表中度有一个字段为主键,唯一标识这条记录。以后需要找到该条记录也可以同这个主键来确认记录,因为主键是唯一的,并且非空,一张表中每个记录的主键度不一样,所以根据主键也就能找到对应的记录。而不是多条重复的记录。如果没有主键,那么表中就会存在很多重复的记录,那么即浪费存储空间,在查询时也消耗更多资源。

一般被主键约束了的字段度习惯性的称该字段为该表的主键

单字段主键约束

两种方式都可以

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12),nameVARCHAR(12),

ageINT(11) ageINT(11),

);PRIMARY KEY(id) );

多字段主键约束(复合主键)

这个id和name都市主键,说明在以后增加的插入的记录中,id和name不能同时一样,比如说可以是这样。一条记录为id=1,name=yyy、另一条记录为:id=1,name=zzz。 这样是可以的。并不是你们所理解的两个字段分别度不可以相同。

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12) PRIMARY KEY,nameVARCHAR(12),

ageINT(11)ageINT(11),

);PRIMARY KEY(id,name) );

1.2.2:外键约束

什么是外键举个例子就清楚了,有两张表,一张表是emp(员工)表,另一张表是dept(部门)表,一个员工属于一个部门,那么如何通过员工能让我们自己他在哪个部门呢?那就只能在员工表中增加一个字段,能代表员工所在的部门,那该字段就只能是存储dept中的主键了(因为主键是唯一的,才能确实是哪个部门,进而代表员工所在的部门,如果是部门名称,有些部门的名称可能是同名。就不能区分了。),像这样的字段,就符合外键的特点,就可以使用外键约束,使该字段只能够存储另一张表的主键。如果不被外键约束,那么该字段就无法保证存储进来的值就一定是另一张表的主键值。

外键约束的特点:

1、外键约束可以描述任意一个字段(包括主键),可以为空,并且一个表中可以有多个外键。但是外键字段中的值必须是另一张表中的主键。

2、这样被外键关联的两种表的关系可以称为父子表或者主从表。子表(从表)拥有外键字段的表,父表(主表)被外键字段所指向的表。

3、子表被外键约束修饰的字段必须和父表的主键字段的类型一样。

注意:一个表中有被外键修饰的字段,就称该表有外键(是“有外键”。而不是“是外键”),并会给该表中的外键约束取一个名称,所以我们常说的这个表有没有外键,指的不是被外键约束修饰的字段名,而是指这个表是否有存在外键约束。也就是说,不能说这个表的外键是xxx(该表中被外键约束修饰的字段名),这种说法是错误的,但是大多数人已经习惯了这样,虽然影响不大,但是在很多时候需要理解一个东西时,会造成一定的困扰。

格式:CONSTRAINT外键名称FOREIGN KEY(被外键约束的字段名称)REFERENCES 主表名(主键字段)

英文解释:CONSTRAINT:约束REFERENCES:参考

CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22),
location VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE tableB
(
id INT(11),
name VARCHAR(22) NOT NULL,
deptId INT(11),
PRIMARY KEY(id),
CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
);

解释:tableB中有一个名为tableA_tableB_1的外键关联了tableA和tableB两个表,被外键约束修饰的字段为tableB中的deptId,主键字段为tableA中的id

1.2.3:非空约束

NOT NULL. 被该约束修饰了的字段,就不能为空,主键约束中就包括了这个约束

CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) NOT NULL,
location VARCHAR(50),
PRIMARY KEY(id)
);

1.2.4:唯一约束

UNIQUE 被唯一约束修饰了的字段,表示该字段中的值唯一,不能有相同的值,通俗点讲,就好比插入两条记录,这两条记录中处于该字段的值不能是一样的。

CREATE TABLE tableA
(
id INT(11),
name VARCHAR(22) UNIQUE,
location VARCHAR(50),
PRIMARY KEY(id)
);

也就是说在插入的记录中,每条记录的name值不能是一样的。

1.2.5:默认约束

Default 指定这一列的默认值为多少,比如,男性同学比较多,性别就可以设置为默认男,如果插入一行记录时,性别没有填,那么就默认加上男

CREATE TABLE table
(
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
);

1.2.6:自动增加

AUTO_INCREMENT 一个表只能一个字段使用AUTO_INCREMENT,并且使用这个约束的字段只能是整数类型(任意的整数类型 TINYINT,SMALLIN,INT,BIGINT),默认值是1,也就是说从1开始增加的。一般就是给主键使用的,自动增加,使每个主键的值度不一样,并且不用我们自己管理,让主键自己自动生成
CREATE TABLE table ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(22) NOT NULL );
2、查询表结构

2.1、查看表基本结构语句

格式1:DESCRIBE 表名/DESC 表名这两个的功能是一样的,简写了单词describe

DESCRIBEstudent;

2.2、查看创建表的语句

格式:SHOW CREATE TABLE 表名

SHOW CREATE TABLE student;

这样显示的格式很不好,看不清楚,所以有了下面这个语句

格式:SHOW CREATE TABLE 表名\G

SHOW CREATE TABLE student\G;

3、修改数据表

修改数据表包括:对表中字段的增加、删除、修改。 在这个里面用的关键字为 ALTER

3.1、修改表名

格式:ALTER TABLE<旧表名> RENAME[TO]<新表名>;

将student表名改为student1(改完后在改回来)

ALTER TABLE student RENAME TO student1;

3.2、修改表中的字段名

格式:ALTER TABLE<表名> CHANGE<旧字段名><新字段名><新数据类型>

将student表中的name字段名改为 username

ALTER TABLE student CHANGE name username VARCHAR(30);

3.3、修改表中的数据类型

格式:ALTER TABLE<表名> MODIFY<字段名><数据类型>

ALTER TABLE student MODIFY username VARCHAR(20);

解释:只能修改字段名的数据类型,但是其原理跟上面change做的事情一样,这里也有修改字段名的过程,只不过修改后的字段名和修改前的字段名相同,但是数据类型不一样。

3.4、修改字段的排列位置

方式1:ALTER TABLE<表名> MODIFY<字段1><数据类型> FIRST|AFTER<字段2>

解释:将字段1的位置放到第一,或者放到指定字段2的后面

ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

方式2:ALTER TABLE<表名> CHANGE<字段1><字段2><数据类型> FIRST|AFTER<字段3>

解释:其实是一样的,将是字段2覆盖字段1,然后在进行排序

ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

总结

CHANGE和MODIFY的区别?

原理都市一样的,MODIFY只能修改数据类型,但是CHANGE能够修改数据类型和字段名,也就是说MODIFY是CHANGE的更具体化的一个操作。可能觉得用CHANGE只改变一个数据类型不太爽,就增加了一个能直接改数据类型的使用关键字MODIFY来操作。

3.5、添加字段

格式:ALTER TABLE<表名称> ADD<新字段名><数据类型>[约束条件][FIRST|AFTER<已存在的表名>]

解释:在一个特定位置增加一个新的字段,如果不指定位置,默认是最后一个。

ALTER TABLE student ADD sex VARCHAR(11);

3.6、删除字段

格式:ALTER TABLE<表名称> DROP<字段名>;

ALTER TABLE student DROP sex;

3.7、删除表的外键约束

格式:ALTER TABLE<表名称> DROP FOREIGN KEY<外键约束名>

注意:外键约束名 指的不是被外键约束修饰的字段名,切记,而是我们在创建外键约束关系时取的名字。

3.8、更改表的存储引擎

格式:ALTER TABLE<表名> ENGINE=<更改后的存储引擎名>

这个存储引擎目前我自己也不太清楚,虽然知道有哪几种引擎,但是稍微深入一点就不清楚了,所以打算留到日后在说。

4、删除表

4.1、删除无关联表

格式:DROP TABLE<表名>;

ALTER TABLE student;

4.2、删除被其他表关联的主表

这个是比较重要的一点,在有外键关联关系的两张表中,如果删除主表,那么是删不掉的,并且会报错。因为有张表依赖于他。那怎么办呢?针对这种情况,总共有两种方法

1、先删除你子表,然后在删除父表,这样就达到了删除父表的目的,但是子表也要被删除
2、先解除外键关系,然后在删除父表,这样也能达到目的,并且保留了子表,只删除我们不需要的父表。在3.7中就讲解了如何删除外键关系。

4. 如何用sql语句将某一列数值中的空值替换为其它值

UPDATE PRDT SET WH="0001" WHERE WH IS NULL

5. 数据库 范式 选择题

1对于现实世界中事物的特征,在实体-联系模型中使用 a
A)属性描述 B)关键字描述 C)二维表格描述 D)实体描述

2把实体-联系模型转换为关系模型时,实体之间多对多联系在关系模型中是通过 c
A)建立新的属性来实现 B)建立新的关键字来实现
C)建立新的关系来实现 D)建立新的实体来实现

3专门的关系运算不包括下列中的 d
A)联接运算 B)选择运算
C)投影运算 D)交运算

4对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为 a
A)并运算 B)交运算
C)差运算 D)积运算

5在数据库设计中,将ER图转换成关系数据模型的过程属于 b
A)需求分析阶段 B)逻辑设计阶段
C)概念设计阶段 D)物理设计阶段

6在概念设计阶段,最常使用的数据模型是 d
A)对象模型 B)物理模型
C)逻辑模型 D)实体联系模型

7关系R1和R2,经过关系运算得到结果是S,则S 是 b
A)一个关系 B)一个表单
C)一个数据库 D)一个数组

8设有关系R(A,B,C,D)及其上的函数相关性集合F=,那么关系R最高是 b
A)第一范式的 B)第二范式的
C)第三范式的 D)BCNF范式的

9设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员。则部门与职员实体之间的联系类型是 b
A)m:n B)1:m
C)m:1 D)1:1

10 使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当 b
A)使用WHERE子句
B)在GROUP BY后面使用HAVING 子句
C)先使用WHERE子句,再使用HAVING子句
D)先使用HAVING 子句,再使用WHERE子句
11关系表达式运算的结果是( c )。
A.数值型 B.字符型 C.逻辑型 D.日期型

12储蓄所有多个储户,储户在多个储蓄所存取款,储蓄所与储户之间是( d )。
A.一对一的联系 B.一对多的联系
C.多对一的联系 D.多对多的联系

13在关系模型中,关系的每一个属性值( d )。
A.不能全同 B.可以全同
C.必须全同 D.是不可分割的

14在数据库三级模式间引入二级映象的主要作用是(a )
A.提高数据与程序的独立性 B.提高数据与程序的安全性
C.保持数据与程序的一致性 D.提高数据与程序的可移植性

15视图是一个“虚表”,视图的构造基于(a )
A.基本表 B.视图
C.基本表或视图 D.数据字典

16SQL语言中,SELECT语句的执行结果是( a)
A.属性 B.表 C.元组 D.数据库

17 DB、DBMS和DBS三者之间的关系是(b )
A.DB包括DBMS和DBS B.DBS包括DB和DBMS
C.DBMS包括DB和DBS D.不能相互包括

18设有关系模式EMP(职工号,姓名,年龄,技能)。假设职工号唯一,每个职工有多项技能,则EMP表的主键是( a )
A.职工号 B.姓名,技能 C.技能 D.职工号,技能

19 在SQL语句中,与表达式"仓库号 NOT IN("wh1","wh2")"功能相同的表达式是d
A)仓库号="wh1" AND 仓库号="wh2" B)仓库号!="wh1" OR 仓库号!= "wh2"
C)仓库号="wh1" OR 仓库号="wh2" D)仓库号!="wh1" AND 仓库号!="wh2"

20在SQL SELECT语句中用于实现关系的选择运算的短语是c
A)FOR B)WHILE
C)WHERE D)CONDITION

热点内容
淘淘源码 发布:2025-07-15 14:12:07 浏览:881
自己的主机可以搭建服务器吗 发布:2025-07-15 14:09:58 浏览:775
atilinux 发布:2025-07-15 14:01:42 浏览:822
硬盘缓存越大越好 发布:2025-07-15 13:53:22 浏览:387
苹果六怎么设置密码锁 发布:2025-07-15 13:43:28 浏览:33
世界上最强的电脑服务器 发布:2025-07-15 13:41:13 浏览:401
pythonwindows安装 发布:2025-07-15 13:40:59 浏览:558
存储过程能写exp语句吗 发布:2025-07-15 13:40:13 浏览:883
手机漫出算法 发布:2025-07-15 13:40:03 浏览:785
易语言管理系统源码 发布:2025-07-15 13:11:49 浏览:948