云计算面试题【后期】

慈云数据 1年前 (2024-03-19) 技术支持 83 0

前言:

  随着年龄的增长生活琐碎的事情、烦心的事情日渐增多,怠慢了更新,

云计算面试题【后期】
(图片来源网络,侵删)

1.什么是数据库

DB.DataBase 数据库:

云计算面试题【后期】
(图片来源网络,侵删)

依照某种数据模型进行组织并存放到存储器的数据集合

DBMS.DataBase Management System – 数据库管理系统

用来操纵和管理数据库的大型服务 软件

DBS.DataBase System – 数据库系统:

即 DB+DBMS ,指带有数据库并整合了数据库管理软件的计算机系统。

2.主流数据库服务软件有哪些?开源且跨平台的数据库软件有哪些?

主流数据库服务软件有:

甲骨文公司 Oracle

IBM DB2

微软 SQL Server

美国 Sybase 公司 Sybase

加州大学伯克利分校计算机系开发的 PostgreSQL

开源且跨平台的数据库软件有:

MySQL、PostgreSQL:开源且跨平台

Oracle、DB2:跨平台不开源

SQL Server:不跨平台不开源

Sybase:跨平台不开源

3.MySQL 的特点及应用

主要特点

– 适用于中小规模、关系型数据库系统

– 支持 Linux/Unix 、 Windows 等多种操作系统

– 使用 C 和 C++ 编写,可移植性强

– 通过 API 支持 Python/Java/Perl/PHP 等语言

典型应用环境

– LAMP 平台,与 Apache HTTP Server 组合

– LNMP 平台,与 Nginx 组合

4.mysql 服务相关参数有什么?

文件 说明

/etc/my.cnf 主配置文件

/var/lib/mysql 数据库目录

默认端口号 3306

进程名 mysqld

传输协议 TCP

进程所有者 mysql

进程所属组 mysql

5.mysql 操作指令和注意事项?

操作指令类型

– MySQL 指令:环境切换、看状态、退出等控制

– SQL 指令:数据库定义 / 查询 / 操纵 / 授权语句

基本注意事项

– 操作指令不区分大小写(密码、变量值除外)

– 每条 SQL 指令以 ; 结束或分隔

– 不支持 Tab 键自动补齐

– \c 可废弃当前编写错的操作指令

6.库管理命令都有什么?

– Show databases; // 显示已有的库

– Use 库名 ; // 切换库

– Select database(); // 显示当前所在的库

– Create database 库名 ; // 创建新库

– Show tables; // 显示已有的表

– Drop database 库名; // 删除库

7.常见的信息种类

• 数值型:体重、身高、成绩、工资

• 字符型:姓名、工作单位、通信住址

• 枚举型:兴趣爱好、性别

• 日期时间型:出生日期、注册时间

8.(数值型)关于整数型字段

– 使用 UNSIGNED 修饰时,对应的字段只保存正数

– 数值不够指定宽度时,在左边填空格补位

– 宽度仅是显示宽度,存数值的大小由类型决定

– 使用关键字 ZEROFILL 时,填 0 代替空格补位

– 数值超出范围时,报错。

9.(数值型)关于浮点型字段

– 定义格式: float( 总宽度 , 小数位数 )

– 当字段值与类型不匹配时,字段值作为 0 处理

– 数值超出范围时,仅保存最大 / 最小值

10.字符类型

• 定长: char( 字符数 )

– 最大长度 255 字符

– 不够指定字符数时在右边用空格补齐

– 字符数断超出时,无法写入数据。

• 变长: varchar( 字符数 )

– 按数据实际大小分配存储空间

– 字符数断超出时,无法写入数据。

• 大文本类型: text/blob

– 字符数大于 65535 存储时使用

11.日期时间类型

• 日期时间, DATETIME

– 占用 8 个字节

– 范围: 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

• 日期时间, TIMESTAMP

– 占用 4 个字节

– 范围: 1970-01-01 00:00:00.000000 ~ 2038-01-19 03:14:07.999999

• 日期, DATE

– 占用 4 个字节

– 范围: 0001-01-01 ~ 9999-12-31

• 年份, YEAR

– 占用 1 个字节

– 范围: 1901~2155

• 时间, TIME

– 占用 3 个字节

– 格式: HH:MM:SS

12.时间函数

类型 用途

now() 获取系统当前日期和时间

year() 执行时动态获得系统日期时间

sleep(N) 休眠 N 秒

curdate() 获取当前的系统日期

curtime() 获取当前的系统时刻

month() 获取指定时间中的月份

date() 获取指定时间中的日期

time() 获取指定时间中的时刻

13.枚举类型

• 从给定值集合中选择单个值, ENUM

– 定义格式: enum( 值 1, 值 2, 值 N)

• 从给定值集合中选择一个或多个值, SET

– 定义格式: set( 值 1, 值 2, 值 N)

14. 约束条件

• Null 允许为空,默认设置

• NOT NULL 不允许为空 • Key 索引类型

• Default 设置默认值,缺省为 NULL

15. 修改表结构的基本用法

– ALTER TABLE 表名 执行动作 ;

Add 添加字段

Modify 修改字段类型

Change 修改字段名

Drop 删除字段

Rename 修改表名

16.索引是什么?

– 索引是对记录集的多个字段进行排序的方法。

– 类似于书的目录

– 索引类型包括 :Btree 、 B+tree 、 hash

17.索引优缺点?

• 索引优点

– 通过创建唯一性索引,可以保证数据库表中每一行数 据的唯一性

– 可以加快数据的检索速度

• 索引缺点

– 当对表中的数据进行增加、删除和修改的时候,索引 也要动态的维护,降低了数据的维护

速度

– 索引需要占物理空间

18.键值类型有几种,分别是什么?

• INDEX :普通索引

• UNIQUE :唯一索引

• FULLTEXT :全文索引

• PRIMARY KEY :主键

• FOREIGN KEY :外键

19.INDEX 普通索引说明?

– 一个表中可以有多个 INDEX 字段

– 字段的值允许有重复,切可以赋 NULL 值

– 经常把做查询条件的字段设置为 INDEX 字段

– INDEX 字段的 KEY 标志是 MUL

20.primary key 主键注意事项

– 一个表中只能有一个 primary key 字段

– 对应的字段值不允许有重复,且不允许赋 NULL 值

– 如果有多个字段都作为 PRIMARY KEY ,称为复合主 键,必须一起创建。

– 主键字段的 KEY 标志是 PRI

– 通常与 AUTO_INCREMENT 连用

– 经常把表中能够唯一标识记录的字段设置为主键字段

21.foreign key 外键 什么是外键?

– 让当前表字段的值在另一个表中字段值的范围内选择 。

• 使用外键的条件

– 表的存储引擎必须是 innodb

– 字段类型要一致

– 被参照字段必须要是索引类型的一种 (primary key)

22.简述 MySQL 体系结构的组成,并描述每个组成部分的作用。

主要包括 8 个部分:

连接池:进程数限制、内存检查、缓存检查等。

SQL 接口:用户通过 sql 客户端发过来的命令,由 sql 接口接收,sql 操作(DML 数据操作语

言:查询、修改、升级数据等;DDL 数据定义语言:创建一个新的数据库、新的索引、删除一

个用户等;存储过程、视图触发器。

分析器: 分析查询语句 事务处理 对象访问权限

优化器: 优化访问路径 、 生成执行树。

缓存和缓冲:保存 sql 查询结果。

存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同的存储引擎有

不同的功能和存储方式。

管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和

mysql-server 打交道,它们对应的都是命令。

物理存储设备(文件系统)。

23.MySQL 存储引擎

• 作为可插拔式的组件提供

– MySQL 服务软件自带的功能程序,处理表的处理器

– 不同的存储引擎有不同的功能和数据存储方式

• 默认的存储引擎

– MySQL 5.0/5.1 —> MyISAM

– MySQL 5.5/5.6 —> InnoDB

24.Myisam 存储引擎的主要特点

– 支持表级锁

– 不支持事务、事务回滚、外键

• 相关的表文件

– 表名 .frm 、 – 表名 .MYI – 表名 .MYD

25.InnoDB 存储引擎主要特点

– 支持行级锁定

– 支持事务、事务回滚、支持外键

• 相关的表文件

– xxx.frm 、 xxx.ibd

– ibdata1

– ib_logfile0 – ib_logfile1

26.MySQL 锁机制

• 锁粒度

– 表级锁:一次直接对整张表进行加锁。

– 行级锁:只锁定某一行。

– 页级锁:对整个页面( MySQL 管理数据的基本存储单 位)进行加锁。

• 锁类型

– 读锁(共享锁):支持并发读。

– 写锁(互斥锁、排它锁):是独占锁,上锁期间其他 线程不能读表或写表。

27.数据库事务的事务特性 (ACID)

• Atomic :原子性

– 事务的整个操作是一个整体,不可分割,要么全部成 功,要么全部失败。

• Consistency : 一致性

– 事务操作的前后,表中的记录没有变化。

• Isolation :隔离性

– 事务操作是相互隔离不受影响的。

• Durability :持久性

– 数据一旦提交,不可改变,永久改变表数据

28.数据导入基本用法和注意事项

• 基本用法

– LOAD DATA INFILE “ 目录名 / 文件名” INTO TABLE 表名 FIELDS TERMINATED BY “ 分

隔符” LINES TERMINATED BY “\n”;

• 注意事项

– 字段分隔符要与文件内的一致

– 指定导入文件的绝对路径

– 导入数据的表字段类型要与文件字段匹配

– 禁用 SElinux

29.数据导出基本用法和注意事项

– SELECT 查询 … … INTO OUTFILE “ 目录名 / 文件名” FIELDS TERMINATED BY “ 分隔

符” LINES TERMINATED BY “\n”;

•注意事项

– 导出的内容由 SQL 查询语句决定

– 禁用 SElinux

30.增加表记录的格式

格式 1 :

给所有字段赋值

– INSERT INTO 表名 VALUES

( 字段 1 值, … … ,字段 N 值 ) ,

( 字段 1 值, … … ,字段 N 值 ) ,

( 字段 1 值, … … ,字段 N 值 ) , … … ;

格式 2

给指定字段赋值

– INSERT INTO 表名 ( 字段 1,… …, 字段 N) VALUES

( 字段 1 值,字段 2 值,字段 N 值 ) ,

( 字段 1 值,字段 2 值,字段 N 值 ) ,

( 字段 1 值,字段 2 值,字段 N 值 ) ,

… … ;

注意事项

字段值要与字段类型相匹配

对于字符类型的字段,要用双或单引号括起来

依次给所有字段赋值时,字段名可以省略

只给一部分字段赋值时,必须明确写出对应的字段名称

31.查询表记录

语法格式

• 格式 1

ELECT 字段 1, … …, 字段 N FROM 表名 ;

• 格式 2

SELECT 字段 1, … …, 字段 N FROM 表名 WHERE 条件表达式 ;

• 注意事项

使用 * 可匹配所有字段

指定表名时,可采用 库名 . 表名 的形式

32.更新表记录

语法格式

• 格式 1 ,

更新表内的所有记录

– UPDATE 表名

SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;

格式 2 ,

只更新符合条件的部分记录

– UPDATE 表名 SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;

WHERE 条件表达式 ;

33. 注意事项

字段值要与字段类型相匹配

对于字符类型的字段,要用双或单引号括起来

若不使用 WHERE 限定条件,会更新所有记录

限定条件时,只更新匹配条件的记录

34.删除表记录

• 格式 1 ,

仅删除符合条件的记录

– DELETE FROM 表名 WHERE 条件表达式 ;

• 格式 2, 删除所有的表记录

– DELETE FROM 表名 ;

35.基本查询条件

数值比较

= 等于 > 、 >= 大于、大于或等于

微信扫一扫加客服

微信扫一扫加客服