数据库基础知识

怎么理解数据库?
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、能共享的、统一管理的数据集合。数据库是以一定方式存储在一起、能与多个用户共享,可视为电子化的文件柜,存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

什么是关系型数据库?
关系型数据库是建立在关系模型基础上的数据库。所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。

什么是非关系型数据库?
非关系型数据库主要是基于“非关系模型”的数据库,非关系模型有列模型、键值对模型、文档类模型。
常见非关系模型数据库:
列模型:Hbase ;
键值对模型:Redis,MemcacheDB (这种关系型数据因为存储在内存中,所以效率非常高);
文档类模型:MongoDB ;

什么是MYSQL?
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是开源免费的,所以不需要支付额外的费用,使用标准化语言SQL进行操作,体积小、速度快、成本低,是中小型网站首选数据库。MySQL支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大表文件为8TB。

什么是MariaDB?
MariaDB是MySQL源代码的分支,相当于MySQL官方版本的一个替代方案,也是开源、免费的数据库系统。MariaDB与MySQL在绝大多数方面是兼容的,并且许多方面相对于MySQL都是有创新和提高,包括需对特性的增强。

SQL是什么?
SQL,结构化查询语言(Structured Query Language),是用于访问和处理数据库的标准的计算机语言。使用SQL可以访问和处理数据库系统中的数据,这类数据库包括:Oracle , MySQL , SQLServer , PostgreSQL , Sybase , DB2 , Access 等等。

什么是Redis?
Remote Dictionary Server(Redis)是一个key-value存储系统。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。它通常被称为数据结构服务器,Redis中的值(value)可以是字符串(String),哈希(Hash),列表(list),集合(sets)和有序集合(sorter sets)等类型。

什么是Memcachde?
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached简介而强大,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的key-value存储系统。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

什么是MongoDB?
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系型数据库和非关系数据库之间的产品,是非关系型数据库当中功能最丰富的,最像关系数据库的。

什么是存储过程?
存储过程是大型数据库系统非常重要的对象,体现为一组为了完成特定功能的SQL语句集,是SQL语句和控制语句的预编译集合。存储过程一次编译后,可多次调用运行,提高数据库执行速度,存储过程允许声明变量且允许多个返回值。

什么是存储引擎?
将数据以不同的技术存储在文件或内存中,这种技术就称为存储引擎。不同引擎有不同的存储机制和索引技巧。MySQL常见存储引擎有 MyISAM 、 InnoDB 、 Memory 、 CSV 、 Archive 、 BlackHole 。

什么是索引?
在关系型数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构。
相当于书籍的目录,通过目录中的页码我们可以快速找到对应的内容。
利用索引,同过保存在索引中ROWID(相当于页码)快速访问数据库中的特定信息,这样SQL语句执行得更快。

索引有哪些优点?
1、设计数据库时创建一个唯一索引,能够在索引和信息之间行成一对一的映射式的对应关系,增加数据的唯一性特点。
2、能提高数据的搜索及检索速度。
3、能够加快表与表之间的连接速度。
4、在信息检索过程中,若使用分组及排序子句,通过建立索引能有效减少检索过程中所需的分组及排序时间,提交检索效率。

索引有哪些缺点?
1、在数据库建立过程中,需要花费较多的时间去建立并维护索引。
2、在数据库创建的索引需要占用一定的物理存储空间,如果有必要建立起聚簇索引,所占用的空间还将进一步的增加。
3、在对表中的数据进行修改时,列如对其进行增加、删除或者修改操作时,索引还需要进行动态的维护,这个数据库的维护速度带来了一定的麻烦。

使用索引一定能提高查询性能么?
一般情况下,通过索引查询数据比全表扫描要快。但也不是绝对的。
原因是:索引需要空间来存储,也需要定期维护,每当有记录在表中增减或索引索引列被修改时,索引本身也会被修改。这意味着每条记录的INSERT,DELETE,UPDATA,将为此多付出4~5次的磁盘 I/O 。因为索引需要额外的存储空间金和处理,那些不必要的索引反而会使查询反映时间变慢。使用索引查询不一定能提高查询新能。

什么是主键和外键?
主键:数据库表中对存储数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的值不能缺失,既不能为空值(Null)。
外键:在一个表中存储的另一个表的主键称为此表的外键。

什么是DB、DBS、DBMS?
DB:是指Database(数据库)
DBS:是指Database System(数据库系统)
DBMS:是指Database Management System(数据库管理系统)
三者的区别在于:数据库就是存放数据的仓库,数据库管理系统就是用来管理数据库的,其中数据库系统是一个通称,包括数据库、数据库管理系统、数据库管理人员等的统称,是最大的范畴。

什么是Navicat For MySQL?
Navicat For MySQL是管理和开发MySQL的直观而强大的图形化操作工具。简单易用,支持同时连接多个数据库,可以非常便捷的进行新增数据库、表、对数据库记录增删改查操作。类似的还有Navicat Premium 、 MySQL Workbench 、 SQLyoga 等。

MySQL怎么复制表?
MySQL可以使用 CREATE TABEL…SELECT 语句进行表的复制,分别有如下两种方式:
1、只复制表结构:create table 表2 like 表1 ;
2、复制表结构和表数据: create table 表2 as select * from 表1;

什么是视图—VIEW?
视图是一条SELECT语句执行后返回的结果集,相当于一张虚表,通过简化用户操作,减少复杂的SQL语句,增强可读性,并且可以做到权限控制,既隐藏不希望用户访问到的列,对机密数据提供安全保护。
mysql 创建视图的语法如下:
CREATE VIEW 视图名(列1,列2…) AS SELECT(列1,列2…) FROM… ;

视图有哪些优点?
1、简单性 :用户筛选出需要的行货列进行操作。不必每次都指定所有筛选条件。
2、安全性 : 只开放部分字段或行数的权限给用户,不将整个基础表的权限开放。
3、罗辑独立性 : 视图和基础表的修改相对互独立。

视图有哪些使用场景?
1、多次使用到相同条件的查询结果时,可以将该查询结果作为视图提供后需使用。
2、开放权限给其他部门的人,不想暴露本部门的机密信息,可以建立视图开放视图权限。

什么是SQL中的聚合函数?
聚合函数只能针对表的数据进行计算,得到一个确定的值,集合函数经常与SELECT 语句的 GROUP BY 子句一起使用,常江的聚合函数有:
AVG() : 平均值
COUNT() : 计数
MAX() : 最大值
MIN() : 最小值
SUM() : 求和
除了COUNT以外,其它聚合函数都会忽略空值

关系型数据库五大约束
1、主键约束(Primary Key Constraint)唯一性,非空性;
2、唯一约束(Unique Constraint)唯一性,可以空,但只能有一个;
3、检查约束(Check Constraint)对该列数据的范围、格式限制(如:年龄、性别等);
4、默认约束(Default Constraint)该数据的默认值;
5、外键约束(Foreign Key Constraint)需要建立两表间的关系并引用主表的列

什么是JDBC?
JDBC,java数据库连接(Java DataBase Connectivity),用于执行SQL语句的java、API,即java语言编写的类和接口,JDBC为多种关系型数据库提供统一访问。

什么是OceanBase?
OceanBase是中国蚂蚁金服自主研发的金融级分布式关系数据库,在被誉为“数据库领域世界杯”的TCP-C基准测试中,打破了由美国公司Oracle(甲骨文)保持了9年之久的世界纪录,成为首个登顶该榜单的中国数据库产品。这是中国基础软件取得的重大突破。

什么是SQLLite?
SQLLite是一个进程内的库,实现了自给自足,无服务器的、零配置的、事务性的SQL数据库引擎。SQLLite直接访问其存储文件。SQLLite不需要配置,这意味着不需要安装或管理,而且非常小,是轻量级的,在移动端开发(如iOS、Android)APP中,经常使用SQLLIte来存储APP本地数据。

什么是PostgreSQL?
PostgreSQL是一个免费的对象-关系型数据库服务器(OEDBMS),PostgreSQL开发者把它念作post-gress-Q-L。
PostgreSQL的Slogan是“世界上最先进的开源关系型数据库”。PostgreSQL支持大部分SQL标准并且提供了很多其它现代特性,如复杂查询、外键、触发器、视图、事物完整性、多版本并发控制等。因为BSD许可的灵活性,任何人都可以免费使用、修改和分发PostgreSQL。

什么是内连接?
内连接也叫连接,是一种最早的连接。还可以被称为普通连接或者自然连接,内连接是从结果表中删除与其它被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。
内连接语法:SELECT fieldlist FROM table1[inner] JOIN table2 ON table1.column=table2.column

什么是左连接?
左连接是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是连接的一种。
如有A表和B表,A、B之间的左连接条件为:ano=bno;采用左连接查询语句为:SELECT * FROM A LIFT JOIN B ON ano=bno;

什么是数据库事务?
事务主要处理操作量大,复杂度高的数据。如人员管理系统中删除一个人员,既要删除人员的基本资料,也要删除和该人员相关的信箱、文章信息,这些数据库操作语句就构成一个事务!事务处理可以用来维护数据库的完整性,保证成批的SQL语句全部执行或全部不执行。在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务。

事务的四个特性
原子性(Atomicity)
一致性(Consistency)
隔离性(Lsolation)
持续性(Durability)

什么是SQL注入
SQL注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

什么是MySQL临时表
MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,关闭连接时,mysql会自动删除表并释放所有空间。临时表在MySQL3.23 版本中添加,如果你的MySQL低于 3.23版本就无法使用MySQL的临时表。

新增表记录语法有哪些?
插入一条记录,对所有字段复制

// 插入一条记录,对所有字段赋值
INSERT INTO tb_name VALUES(v1,v2,v3......,vn);

// 插入一条记录,对部分字段赋值
INSERT INTO tb_name (c1,c2,c3......,cn) VALUES (v1,v2,v3......,vn);

// 插入多条记录
INSER INTO tb_name (c1,c2,c3......,cn) VALUES (v1,v2,v3......,vn),(v1,v2,v3......,vn),(v1,v2,v3......,vn),...;

什么是罗辑删除和物理删除?
“物理删除”是计算机处理数据时的一个概念。与物理删除相对的是罗删除。
“罗辑删除”就是对要删除的数据打上一个删除标记,在逻辑上是数据被删除的,但数据本身依然存在!而物理删除则是吧数据从介质上彻底删除掉。

什么是数据库范式?
设计关系数据库时,尊从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系型数据库有六种范式:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
巴斯-科德范式(BCNF)
第四范式(4NF)
第五范式(5NF,称完美范式)

什么是DBA?
数据库管理员(Database Administrator,简称DBA),从事管理和维护数据库管理系统相关工作人员的统称,主要负责业务数据库从设计、测试到相关部署交付的生命周期管理。
DBA的核心目标是保证数据库管理系统的稳定性、安全性、完整性和高性能、也有公司把DBA称作数据库工程师。

什么是E-R图?
E-R图即实体联系图(Entity Relation-shop Diagram),提供了表示实体类型、属性个联系的方法,用来描述现实世界的模型。
其中:
矩形框——实体;
椭圆形框——属性;
菱形框——联系;
连线——存在于实体与属性之间,实体与联系之间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值