1.数据库语言四大语句
4.四大类(DDL、DML、DQL、DCL)_中度ddl-CSDN博客
数据定义(data defination language)
查询、创建、删除、使用
#查询所有数据库 show databases; #查询当前数据库 select database(); #创建数据库 create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则]; #删除数据库 drop database [if exists] 数据库名; #使用数据库 use 数据库名;
数据操作(data manipulation language)
插入、修改、删除
#给指定字段添加数据
insert into 表名(字段名1,字段名2)
values
(值1,值2);
#修改数据
update 表名
set 字段名1 = 值1,字段名2 = 值2
[where 条件];
#删除数据
delete
from 表名
[where 条件];
数据查询(data query language)
#查询多个字段
select 字段1,字段2,字段3
from 表名;
#查询全部字段
select *
from 表名;
数据控制(data control language)
权限控制
#查询权限
show grants for '用户名'@'主机名';
#授予权限
grant 权限列表 on 数据库.表名 to '用户名'@'主机名';
#撤销权限
revoke 权限列表 on 数据库.表名 from '用户名'@'主机名';
2.把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是( )
正确答案: C 你的答案: 、B (错误)
GRANT QTY ON SPJ TO '李勇'
GRANT UPDATE(QTY) ON SPJ TO '李勇'
GRANT UPDATE (QTY) ON SPJ TO 李勇
GRANT UPDATE ON SPJ (QTY) TO 李勇
grant update (列名) on 表名 to 用户
它错误地在用户名周围使用了单引号
3.用于识别同一实体集中的两个不同实体值为什么是主码而不是主属性
- 单一的主属性可能不足以唯一标识一个实体,因为可能存在多个具有相同主属性值的记录。
- 主码(由一个或多个主属性组成)能够确保在实体集中每个实体的唯一性,从而避免了数据冲突和混淆。
- 使用主码可以方便地建立表与表之间的关联关系,实现数据的关联查询和完整性维护。
4.什么是死锁以及死锁的解决办法?
死锁产生的原因及解决方法_死锁的产生机制-CSDN博客
死锁是多个事务竞争同一数据对象而处于永远等待的情况
解决办法:
1.加锁顺序(按照一定的顺序加锁)
2.加锁时限(线程获取锁加上时限,超时就放弃获取锁,并释放自己占有的锁)
3.死锁监测机制,在一定时间内监测有无死锁
5.五种基本的关系代数运算
并
差
积
选择
投影
6.解释这段代码的作用:
CREATE TABLE EMP
(
ENO CHAR(4) PRIMARY KEY,
ENAME CHAR(20) NOT NULL UNIQUE,
BIRTHDAY DATE,
SALARY INTEGER DEFAULT(5200) CHECK(SALARY BETWEEN 5000 AND 15000)
);
这段代码是用于在数据库中创建一个名为
EMP
的表的 SQL 语句。这个表包含以下四个字段(或称为列):
- ENO:这是一个
CHAR(4)
类型的字段,用于存储员工的编号。由于它被定义为PRIMARY KEY
,所以这个字段的值必须是唯一的,且不能为 NULL。换句话说,每个员工都有一个唯一的编号,且这个编号不能重复,也不能为空。- ENAME:这是一个
CHAR(20)
类型的字段,用于存储员工的名字。这个字段被标记为NOT NULL
和UNIQUE
。NOT NULL
表示这个字段的值不能为空,而UNIQUE
则表示这个字段的值必须是唯一的,不能有重复的名字。- BIRTHDAY:这是一个
DATE
类型的字段,用于存储员工的生日。这个字段没有特别的约束,所以它可以包含任何有效的日期值,或者为空(如果数据库支持 NULL 值的话)。- SALARY:这是一个
INTEGER
类型的字段,用于存储员工的薪水。它被设置为有一个默认值5200
,这意味着如果在插入新记录时没有为SALARY
字段指定值,那么它的值将被自动设置为5200
。此外,SALARY
字段还有一个CHECK
约束,确保它的值在5000
和15000
之间(包括这两个值)。总的来说,这段代码定义了一个
EMP
表,该表用于存储员工的基本信息,包括编号、名字、生日和薪水。其中编号和名字是唯一的,薪水有一个默认值,并且薪水值必须在一定的范围内。
7.日期的sql语句
between '1999-10-1' and '2000-12-31'
用 SQL 语句查询出生日期在 1999-10-1 至 2000-12-31 日之间的所有学生
SELECT *
FROM S
WHERE SBIRTH BETWEEN '1999-10-01' AND '2000-12-31';
8.删除语句
删除计算机学院不及格学生的选课记录
DELETE FROM SC
WHERE SID IN (
SELECT S.SID
FROM S, SC
WHERE S.SID = SC.SID AND S.SCHOOL = '计算机学院' AND SC.GRADE < 60
);
9.升序和不及格查询
1. 查询学生的成绩信息,按照学号升序显示
SELECT SID, SNAME, CID, GRADE
FROM S, SC
WHERE S.SID = SC.SID
ORDER BY S.SID ASC;
2. 查询有不及格(小于 60 分)的学生姓名
SELECT DISTINCT SNAME
FROM S, SC
WHERE S.SID = SC.SID AND GRADE < 60;
3. 删除计算机学院不及格学生的选课记录
DELETE FROM SC
WHERE SID IN (
SELECT S.SID
FROM S, SC
WHERE S.SID = SC.SID AND SCHOOL = '计算机学院' AND GRADE < 60
);
10.火车主码
在数据库设计中,主码(也称为主键)是用于唯一标识表中每一行(或称为记录)的一组属性或字段。这些属性或字段的组合在表中必须是唯一的,且不应包含空值(NULL)。
A. 车次
仅使用“车次”作为主码可能不足以唯一标识一个“列车运营”实体,因为同一车次可能在不同的日期运行。B. 日期
仅使用“日期”作为主码同样不足以唯一标识一个“列车运营”实体,因为同一天可能有多个车次运行。C. 车次+日期
使用“车次”和“日期”的组合可以唯一标识一个特定的“列车运营”实体,因为在一个给定的日期,车次是唯一的。D. 车次+情况摘要
“情况摘要”通常是一个描述性的字段,用于记录列车运营过程中的一些特殊情况或事件。它可能包含文本信息,并且很可能不是唯一的,甚至可能为空。因此,使用“车次”和“情况摘要”的组合不能作为唯一标识一个“列车运营”实体的主码。基于以上分析,选项C(车次+日期)是正确的,因为它提供了一个足够唯一且符合主码定义的组合。选项D不符合主码的要求,因为它可能不是唯一的,并且可能包含空值。
11.左、右连接,全连接
图解数据库左连接、右连接、内连接、外连接、全连接的区别_左连接,右连接,内连接,外连接的区别-CSDN博客
在这个问题中,我们需要列出所有学生的住宿情况,包括那些不住宿的学生,以及所有宿舍的分配情况,包括那些空闲的床位。为了实现这个需求,我们需要使用一种联接方式,该联接方式能够返回左表(学生)和右表(宿舍)中的所有记录,无论它们是否在对方表中有匹配项。
现在我们来分析每个选项:
A. 全外联接(Full Outer Join):这个联接会返回左表和右表中的所有记录。如果某一边没有匹配项,则结果集中对应的字段将包含NULL。这正是我们需要的,因为它会列出所有学生和所有宿舍,无论它们是否有匹配项。
B. 左外联接(Left Outer Join):这个联接会返回左表中的所有记录,以及右表中匹配的记录。如果左表中的某条记录在右表中没有匹配项,则结果集中对应的右表字段将包含NULL。但它不会返回右表中没有匹配项的记录,也就是空闲的床位。
C. 右外联接(Right Outer Join):这个联接与左外联接相反,会返回右表中的所有记录,以及左表中匹配的记录。但它不会返回左表中没有匹配项的记录,也就是不住宿的学生。
D. 自然联接(Natural Join):自然联接是基于两个表中所有同名列的值进行等值比较,并返回匹配的记录。它不会返回没有匹配项的记录,因此不适用于这个场景。
综上所述,为了列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,我们应该选择全外联接(A)。
12.最小关系系统(不懂)
13.转储的冗余数据:日志文件、数据库后备副本
14.关系模型组成
关系数据结构
关系操作
关系完整性约束
15.在Student表的Sname列上建立一个唯一索引的SQL语句为:
建立唯一索引的语法:create unique index 别名 on 表名(列)
CREATE UNIQUE INDEX Stusname ON student(Sname)
16.!=ALL 与NOT IN 等价
使用
!= ALL
时,你实际上是在说:“这个值必须不等于我给出的所有值”。
如果你想要从表A中选择那些其value
列的值不等于表B中所有value
值的记录,你可以使用!= ALL
,如下所示:SELECT * FROM A WHERE A.value != ALL (SELECT B.value FROM B);
17.E-R冲突---结构、命名、属性冲突
18.可串行性是并发事务的准则
19.事务是DBMS的基本单位
20. 试述关系模型的参照完整性规则?
答:参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。
21. 试述视图的作用?
(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
22. 登记日志文件时必须遵循什么原则?
登记日志文件时必须遵循两条原则:
(1)登记的次序严格按并发事务执行的时间次序。
(2)必须先写日志文件,后写数据库。
23.联系的属性要写到1:n的n的关系模式里面
n:m的联系也要加上自己的属性
24.为什么广义笛卡尔积不属于专门的关系运算?
并、差、积、选择、投影(五种基本的关系运算)
常见的关系运算包括选择(Selection)、投影(Projection)、并集(Union)、交集(Intersection)、差集(Difference)和连接(Join)等。
25.数据库系统最重要的软件:DBMS(数据管理系统),最重要的用户(DBA)
26.实体完整性:关系的主属性都不能取空值
27.“数据”、“数据库”、“数据库管理系统”和“数据库系统”
数据:描述现实世界的事物的符号记录
数据库:长期存储在计算机内,有组织、可共享的组织的集合
数据库管理系统:位于用户与操作系统间的具有数据定义、操作、控制、查询、数据库建立和管理数据库的重要软件
数据库系统:数据库系统是由DB、DBMS(及其应用开发工具)、(DBAP)应用程序和(DBA)数据库管理员组成的存储、管理、维护数据的系统
【数据库】数据、数据库、数据库管理系统、数据库系统_系统的数据管理逻辑-CSDN博客
28.数据库系统的故障
事务故障
介质故障
系统故障
29.视图和基本表的联系和区别
视图是由一个或者多个基本表导出,它与基本表不同的是,数据库只存放视图的定义,而不存放视图对应的数据,一旦基本表的数据发生改变,从视图查询到的数据也随之改变
视图一经定义就可以跟基本表一样查询和删除,也可以在视图上新建视图,但是对视图的更新有限制