数据库复习大纲

数据库复习大纲

1.视图的定义和作用

视图是数据库中的虚拟表,其内容是根据查询语句动态生成的结果集。它提供了一种逻辑上的数据表表示方式,但实际上并不存储任何数据。视图的作用有以下几个方面:

  1. 数据抽象:视图隐藏底层复杂的数据结构和关联关系,提供一个简化的接口供用户查询和操作数据,使数据访问更加方便。

  2. 数据安全性:通过视图可以限制用户对数据库的访问权限,只向用户显示他们具备权限的数据列,从而保护敏感数据的安全性。

  3. 数据完整性:通过视图可以定义数据列的验证非法数据的插入或修改,保障数据的完整性。

  4. 数据重用:视图可以将常用的查询逻辑抽象出来,在需要的时候重复使用,简化应用程序开发,并提高数据库操作的效率。

  5. 简化复杂查询:通过使用视图,可以将复杂的查询逻辑封装在视图中,使得查询语句更加简洁清晰,减少应用程序中的重复代码。

总之,视图提供了一种灵活、安全、简化数据库访问和查询的方式,提高了数据库的可用性和可维护性。

2.数据库主要提供哪些功能

数据库主要提供以下功能:

  1. 存储数据:数据库能够持久地存储大量结构化或非结构化数据,包括数字、文本、音频和图像等多种类型的数据。

  2. 管理数据:数据库能够对存储的数据进行管理,包括添加、删除、修改和查询等操作,确保数据的完整性、一致性和安全性。

  3. 查询数据:数据库能够通过各种查询语言和工具查询存储的数据,并且能够快速检索和返回满足用户需求的数据。

  4. 维护数据:数据库能够对存储的数据进行备份、恢复、优化和调整等维护工作,确保数据库的可靠性和高效性。

  5. 分析数据:数据库能够对存储的数据进行分析,例如应用聚合函数、统计分析、数据挖掘等技术,发现数据中隐藏的模式、趋势和异常。

3.1nf、2nf、3nf的定义和满足条件

1NF(第一范式):数据表中的每个字段都必须是原子性的,即不能再分解成更小的数据。

2NF(第二范式):数据表必须满足1NF,并且非主键列必须完全依赖于主键,而不是依赖于主键的一部分。

3NF(第三范式):数据表必须满足2NF,并且不存在任何非主键列对其他非主键列的传递依赖。也就是说,任何非主键列必须直接依赖于主键,而不能通过其他非主键列间接依赖于主键。

需要满足的条件:

  1. 第一范式(1NF)
  2. 非主键列完全依赖主键(2NF)
  3. 不存在非主键列对其他非主键列的传递依赖(3NF)

4.db,dbs,dbms指的是什么

这些缩写通常与数据库相关:

  • DB 代表“Database”,意为“数据库”。
  • DBS 代表“Database System”,意为“数据库系统”,通常指一个完整的数据库软件系统。
  • DBMS 代表“Database Management System”,意为“数据库管理系统”,是一种用于管理和操作数据库的软件系统。

5. sql常用的聚集函数有哪些

SQL中常用的聚集函数有以下几种:

  1. COUNT:用于计算指定列或行的数量 SUM:用于计算指定列的总和。
  2. AVG:用于计算指定列的平均值。
  3. MAX:用于找到指定列的最大值。
  4. MIN:用于找到指定列的最小值。
  5. GROUP_CONCAT:用于将指定列的值连接成一个字符串,并可选择添加分隔符。
  6. STDEV:用于计算指定列的标准差。
  7. VAR_POP:用于计算指定_SAMP:用于计算指定列的样本方差。
  8. STDDEV_POP:用于计算指定列的总体标准差。
  9. STDDEV_SAMP:用于计算指定列的样本标准差。

这些聚集函数可以应用在SELECT语句的SELECT子句中,用于对查询结果进行汇总和统计计算。

6.sql的通配符使用规则

SQL中的通配符是用来模糊匹配数据的特殊字符。以下是SQL中通配符的使用规则:

  1. 百分号(%):匹配任意字符(包括空格)。例如,"ab%“可以匹配"abc”、"abcd"等。
  2. 下划线(_)“可以匹配"abc”、"adc"等。
  3. 方括号([]):匹配括号内的任意一个字符。例如,"[abc]“可以匹配"a”、“b”、"c"中的任意一个字符。

需要注意的是,在使用通配符时,需要将其放在面,并且大小写敏感。例如,如果想要查找以"abc"开头的字符串,可以使用"SELECT * FROM table_name WHERE column_name LIKE ‘abc%’"语句。

7.关系数据库的三级模式是什么

关系数据库的三级模式指的是:外模式(External Schema)、概念模式(Conceptual Schema)和内模式(Internal Schema)。其中:

  1. 外模式:是用户能够看到和使用的局部数据的逻辑结构描述。每个外模式可能仅涉及到概念模式的一部分,并定义了与用户相关的数据视图。

  2. 概念模式:是数据库全局逻辑结构描述,描述所有用户所见到的数据的总体逻辑结构。它将数据抽象为一个独立于具体实现的逻辑结构。

  3. 内模式:是物理存储结构的描述,即如何在计算机上存储数据。它定义了如何将数据表示为二进制形式,包括数据的磁盘块分布、索引方式以及存储的数据格式等。

8.数据库的主要特点有哪些

数据库的主要特点包括:

  1. 数据共享:多个用户可以访问数据库中的数据,实现数据共享和协作。
  2. 数据独立性:数据库设计和物理存储分离,应用程序与底层数据存储细节解耦,增加了系统的灵活性和可维护性。
  3. 数据集成性:数据库可以整合来自格式不同的数据,提供统一的访问接口。
  4. 数据安全性:数据库提供了访问控制和数据加密等安全措施,确保数据的保密性和完整性。
  5. 数据一致性:数据库采用事务处理机制,保证多次操作之间的一致性和完整性。
  6. 数据可恢复性:数据库具备故障恢复和数据备份等功能,保证在发生不可预知情况下数据的安全。

9.数据库系统的主要组成部分

数据库系统的主要组成部分包括以下几个方面:

  1. 数据库:保存数据的地方,可以是关系型数据库、文档数据库等。
  2. 数据库管理系统(DBMS):负责管理数据库的软件,提供数据存储、检索、修改、删除等功能。
  3. 数据库应用程序:通过调用DBMS提供的接口来实现对数据库的操作,例如电子商务网站、人力资源管理系统等。
  4. 数据库管理员:负责管理数据库的安全性、备份及恢复,以及优化数据库性能等问题。
  5. 数据库用户:使用数据库应用程序进行数据操作的人员,按照权限访问数据库中的数据。

总的来说,数据库系统的主要组成部分包括了存储数据的容器、管理数据的软件、应用程序以及相关的人员。

10.什么是主码,外码

在数据库中,主码和外码是用来建立表与表之间关系的概念。

主码(Primary Key)是一种唯一标识数据库表中每条记录的字段或集合,也就是说,每个记录都有一个唯一的主码。主码可以由单个列或多个列组成,并且必须满足唯一性和非空性。主码用于确保数据表中每一行都能够被唯一地标识和操作,同时也被用作建立表与表之间的关联。

外码(Foreign Key)则是用来建立表与表之间关系的一种字段。它指向另一个表的主键,形成两个表之间的关联。外作用通常是为了维护表与表之间数据的一致性和完整性,保证一些业务规则得以满足。通过定义外码,可以限制插入、更新和删除操作只能在关联表中进行。

11.grant语句的主要功能

Grant语句的主要功能是为数据库用户授予访问数据库对象的权限,例如表、视图和存储过程等。通过Grant语句,数据库管理员可以限制或扩大不同用户对数据库对象的访问权限,从而实现对数据库资源的管理和保护。

12.什么是参照完整性

参照完整性是指数据库表之间的关系被正确地维护和遵循,确保数据在多个表之间正确匹配。常见的实现方式是通过定义外键约束来确保数据多表之间的一致性,确保每个引用其他表的值都存在于相应的参照表中。这有助于防止一些数据连锁反应错误,同时提高了数据的准确性和可靠性。

13.怎么定义外键

在关系型数据库中,可以通过在一个表中定义外键来指定该表与另一个表之间的关系。外键是指该表中的一列或多列,其值只能是另一个表中已经存在的一个或多个值。通常情况下,在创建一个表时可以使用 FOREIGN KEY 关键字来定义外键,并指定该外键关联的目标表和目标表中的列。例如,以下是在 MySQL 中定义外键的示例:

CREATE TABLE orders (
  order_id INT PRIMARY KEY,
  customer_id INT,
  order_date DATE,
  FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

在上面的示例中,orders 表中的 customer_id 列被定义为外键,并且指定了该外键关联的目标表 custom 和目标表中的列 customer_id。这表示,orders 表中的每个 customer_id 值必须存在于 customers 表中的 customer_id 列中,否则将无法进行插入、更新或删除操作。

14.怎么定义唯一,非空,取值范围等完整性约束

  1. 唯一约束:对于一个表格中的某一列或多列,保证其中每一个值都是唯一的,不会存在重复数据。如在一个用户表格中,使用唯一约束可以确保每一个用户的用户名都是独一无二的。

  2. 非空约束:对于一个表格中的某一列,要求其值不允许为空,即必须要有一个值。如在一个学生信息表格中,使用非空约束可以确保每个学生都有一个有效的学号。

  3. 取值范围约束:对于一个表格中的某一列,限制其取值范围必须满足特定条件,例如数值类型必须在一定区间范围内等。如在一个商品表格中,使用取值范围约束可以确保商品的价格只能在一定的价格区间内。

15.什么是数据字典

数据字典是一个记录数据库或信息系统中各种数据元素(如表、列、字段等)定义和描述的文档,它通常包括数据元素的名称、数据类型、长度、格式、取值范围、约束条件、含义等信息。数据字典可以被用于帮助开发人员更好地理解数据结构和流程,也可以被用于支持数据管理、数据质量控制、数据安全等方面的工作。

sql代码

1.定义表

以下是一个简单的SQL代码示例,用于定义一个名为"Employees"的表,其中包含有关雇员的基本信息。

CREATE TABLE Employees (
  Id INT PRIMARY KEY,
  FirstName VARCHAR(50),
  LastName VARCHAR(50),
  Title VARCHAR(50),
  HireDate DATE,
  Salary DECIMAL(10,2)
);

这将创建一个具有6个列的表,分别是Id、FirstName、LastName、Title、HireDate和Salary。其中,Id列被定义为主键,意味着每个行都必须具有唯一的值。其他列的数据类型分别为VARCHAR、DATE和DECIMAL。

2.按条件删除数据,按条件修改数据,插入数据

删除数据:

DELETE FROM table_name WHERE condition;

修改数据:

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

插入数据:

INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

其中,table_name为表名,condition为筛选条件,column1, column2, ...为列名,value1, value2, ...为对应的值。注意在使用时需要替换相应的字段名和值。

3.多表连接查询,条件查询,指定查询结果,排序,查询经过计算的值,求和,求平均值

多表连接查询:

SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.table1_id;

条件查询:

SELECT *
FROM table
WHERE column = value;

指定查询结果:

SELECT column1, column2
FROM table;

排序:

SELECT *
FROM table
ORDER BY column DESC;

查询经过计算的值:

SELECT column1 + column2 AS new_column
FROM table;

求和:

SELECT SUM(column)
FROM table;

求平均值:

SELECT AVG(column)
FROM table;

4.创建视图

要创建视图,可以使用以下SQL代码:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中view_name是你想要给这个视图命名的名称,column1、column2等是你想要从table_name表中选择的列的名称,而condition是可选的条件约束,它将限制返回的行数。

举个例子,如果你想要从一个名为customers的表中选择所有姓氏为Smith的顾客的信息并将其存储在一个名为smith_customers的视图中,可以使用以下代码:

CREATE VIEW smith_customers AS
SELECT *
FROM customers
WHERE last_name = 'Smith';

通过这种方式,你现在可以像对待任何其他表一样来查询和操作这个名为smith_customers的视图。

5.创建触发器

下面是创建触发器的 SQL 代码示例:

CREATE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
    -- 触发器执行的 SQL 语句
END;

其中,trigger_name 为触发器名称,table_name 为要监视的表名。BEFORE INSERT 表示触发器将在插入数据之前执行,可以在这个位置使用 AFTER 关键字改变执行时机。FOR EACH ROW 表示对于每一行数据都会执行触发器。

注意,触发器可以有多种类型:BEFORE INSERTAFTER INSERTBEFORE UPDATEAFTER UPDATEBEFORE DELETEAFTER DELETE。不同类型的触发器具有不同的功能和执行时机。同时,在 BEGINEND 之间编写实际要执行的 SQL 语句。

6.创建存储过程

以下是一个创建存储过程的基本SQL代码:

CREATE PROCEDURE procedure_name
    @parameter1 datatype,
    @parameter2 datatype
AS
BEGIN
    /* 存储过程主体 */
END

其中,“procedure_name”是你想要命名的存储过程的名称。“@parameter1”和“@parameter2”是你希望存储过程使用的输入参数的名称和数据类型。在存储过程主体中,你可以编写一系列SQL语句来执行所需的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值