1、什么是数据库?
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
2、请简要描述数据库的三个基本概念?
数据库DB、数据库系统DBS、数据库管理系统DBMS。
数据库系统DBS包括数据库DB和数据库管理系统DBMS。
1.数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
2.数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。
3.数据库系统(Database System),数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体,数据库及其管理软件是数据库系统的组成部分。
3、什么是关系型数据库?
关系型数据库(Relational Database)是一种数据库类型,它以表格(表)的形式组织和存储数据,并使用关系代数来处理数据之间的关系。这种类型的数据库使用了一种称为结构化查询语言(SQL)的标准查询语言来管理和查询数据。
常见的关系型数据库包括 Oracle、MySQL、Microsoft SQL Server、PostgreSQL 等。
关系型数据库的主要特点包括:
-
表格结构:数据以表格的形式组织,每个表格包含多个列(字段)和多行(记录)。每个列定义了特定类型的数据,每行则包含一组相关的数据。
-
数据之间的关系:关系型数据库通过在不同表之间建立关系来组织数据。这些关系可以是一对一、一对多或多对多关系,允许数据在不同表之间共享和关联。
-
ACID属性:关系型数据库通常支持ACID属性,这代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些属性确保数据库在事务处理中保持数据的完整性和一致性。
-
SQL查询语言:关系型数据库使用SQL语言来进行数据查询和操作。SQL是一种强大的查询语言,允许用户执行各种操作,包括数据检索、插入、更新和删除等。
-
数据完整性:关系型数据库支持各种数据完整性约束,如主键、外键和唯一约束,以确保数据的一致性和有效性。
4、关系型数据库三个组成部分?
关系模型的三个组成部分,是指关系数据模型的数据结构、关系数据模型的操作集合和关系数据模型的完整性约束。
- 关系数据模型的数据结构:主要描述数据的类型、内容、性质以及数据间的联系等,是目标类型的集合。 目标类型是数据库的祖成成分,一般可分为两类:数据类型、数据类型之间的联系。
- 关系数据模型的操作集合:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。它是操作算符的集合,包括若干操作和推理准则,用以对目标类型的有效实例所组成的数据库进行操作。
- 关系数据模型的完整性约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。它是完整性规则的集合,用以限定符合数据模型的数据库状态,以及状态的变化。 约束条件可以按不同的原则划分为数据值的约束和数据间联系的约束;静态约束和动态约束;实体约束和实体间的参照约束等。
5、请简要描述SQL语言的基本结构和主要用途?
基础语句:select 显示列 from 关系表
SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。与其他程序设计语言(如 C语言、Java 等)不同的是,SQL 由很少的关键字组成,每个 SQL 语句通过一个或多个关键字构成。
1)数据定义语言(Data Definition Language,DDL)
用来创建或删除数据库以及表等对象,主要包含以下几种命令:
- DROP:删除数据库和表等对象
- CREATE:创建数据库和表等对象
- ALTER:修改数据库和表等对象的结构
2)数据操作语言(Data Manipulation Language,DML)
用来变更表中的记录,主要包含以下几种命令:
- INSERT:向表中插入新数据
- UPDATE:更新表中的数据
- DELETE:删除表中的数据
3)数据查询语言(Data Query Language,DQL)
用来查询表中的记录,主要包含 SELECT 命令,来查询表中的数据。
4)数据控制语言(Data Control Language,DCL)
用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:
- GRANT:赋予用户操作权限
- REVOKE:取消用户的操作权限
- COMMIT:确认对数据库中的数据进行的变更
- ROLLBACK:取消对数据库中的数据进行的变更
6、什么是数据库事务?请解释ACID属性?
定义:由一组操作构成,我们希望这组操作能够全部正确执行,如果这一组操作中的任意一个步骤发生错误,那么就需要回滚之前已经完成的操作。也就是同一个事务中的所有操作,要么全部执行执行,要么全部都不执行。
- 原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
- 一致性(Consistency):事务前后数据的完整性必须保持一致。
- 隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
- 持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
7、请简述数据库的三种基本操作,查询、插入、更新?
查询基本语法结构
select 字段名1,字段名2 .... from 表名 (查询的为一部分的字段的信息)
添加数据(insert插入语句),插入的值和列要保持一一对应的关系
--方式一:使用insert插入语句
insert into 表名 (列1,列2,...) values (值1,值2,...);
insert into 表名 values (值1,值2,值3...);
--方式二:通过一条insert插入多条数据
insert into 表名 (列1,列2,列3.....) values (值1,值2,值3...),(值1,值2,值3...);
修改数据
-- 格式一:
update 表名 set 列名=值;
-- 格式二:更新多个值
update 表名 set 列名1=值1,列名2=值2...;
-- 格式三:附带条件的更新
update 表名 set 列名=值 where 条件;
8、什么是数据库视图?
视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
创建视图
create view 视图名 as select语句;
修改视图
--如果视图存在则进行修改,反之创建
reate or replace view 视图名 as 查询语句:
alter view 视图名 as 查询语句;
删除视图
drop view 视图名;
优点:
● 简单化,数据所见即所得。
● 安全性,用户只能查询或修改他们所能见到得到的数据。
● 逻辑独立性,可以屏蔽真实表结构变化带来的影响。
缺点:
● 性能相对较差,简单的查询也会变得稍显复杂。
● 修改不方便,特变是复杂的聚合视图基本无法修改。