5.1.1 NoSQL 和 SQL 数据库的比较?

1、使用成本上,nosql使用简单,易搭建,大部分是开源的;sql通常需要安装部署,开源的比较少,价格昂贵
2、存储形式上,nosql具有丰富的存储形式,如键值对形式、文档形式、图结构形式等,可以存储各种类型的数据;sql采用关系型数据模型,它是行列结构,采用二维表结构的形式存储数据
3、从查询速度上来看,nosql的数据在缓存中,因此查询速度快;sql数据是存在硬盘中的,查询数据相对较慢
4、是否支持ACID特性,nosql不支持,sql支持
5、是否支持sql语句查询,nosql不支持,sql支持
6、扩展性,nosql易扩展,sql不易扩展

5.1.2 了解 MySQL 的事物吗?事物的四大特性是什么?

事务是指作为一个基本工作单元执行的一系列sql语句的操作,要么全部执行完,要么都不执行完。事务操作保证了数据的完整性和准确性。
原子性:一个事务是一个个不可分割的最小单位,对数据库的事务操作要么全部完全的执行,或完全的不执行,不可执行一部分。
一致性:对数据库的操作不提交,所有的修改就不会保存到数据库中。
隔离性:同一时间,只允许一个事务对数据库进行操作,事务与事务之间没有干扰
持久性:事务对数据库的操作一旦修改提交,数据将永久保存到数据库中。

5.1.3 关系型数据库的三范式是什么?

第一范式,表中列数据只能含有原子性的数据
第二范式,满足第一范式且没有部分依赖
第三范式,满足第二范式且没有传递依赖

5.1.4 关系型数据库的核心元素是什么?

数据行、数据列、数据表、数据库

5.1.5 简单描述一下 Python 访问 MySQL 的步骤?

1、导入pymysql模块
2、用于模块的connect()方法创建数据库对象
3、利用数据库对象的cursor()方法创建Cursor对象
4、用Cursor对象的execute()方法执行数据库增删改查操作,查询时可用fetchone()和fetchall()查看数据
5、用数据库对象的commit()方法提交数据
6、关闭数据库对象和Cursor对象

5.1.6 写一个 Python 连接操作 MySQL 数据库实例?

import pymysqlconn = pymysql.connect(host="localhost",port=8001,database="test",user="seth",password="123")
cursor=conn.cursor()
count=cursor.execute("select * from mytable")
for i in range(count):data = cursor.fetchall()print(data)
cursor.close()
conn.close()

5.1.7 SQL 语句主要有哪些?分别有什么作用?

数据定义语句:create、drop、turncate、alter
数据查询语句:select
数据操作语句:update、delete、insert
数据控制语句:grant、revoke

5.1.8 MySQL 有哪些常用的字段约束?

not null:非空,保证该字段不为空
default:默认值,保证该字段有默认值
primary key:主键,唯一且不为空
foreign key:外键
check:检查约束,检查输入的值是否为设定好的值或范围内的值
unique:唯一,可以为空

5.1.9 什么是视图?视图有什么作用?

视图又称为虚表,是一组数据的虚拟表示,本质就是一条select语句的结果集,视图本身没有数据,它只包含映射到基类表的查询语句,所以基类表数据发生变化,视图也随之变化。
视图语法示例:CREATE VIEW v as select * from my_table;
视图作用:
1. 简化复杂查询,如果经常进行复杂的查询语句,可为该复杂查询语句建立视图,之后查询该视图即可
2. 限制数据访问,视图本质就是一条select语句,所以访问视图时,只能访问到对应的select语句查询的列,对基类其它列的数据起到安全和保密作用

5.1.10 什么是索引?索引的优缺点是什么?

索引是为了加快对表中的数据列查询速度的一种分散存储结构,通俗的可以理解为一本书的目录
优点:大大加快查询速度,比普通查询快1000倍
缺点:占用物理空间、索引的创建和维护都需要时间

5.1.11 NULL 是什么意思?它和空字符串一样吗?

NULL:空对象,没有分配内存空间
空字符串:空对象实例,是一个长度为0的字符串,分配内存空间

5.1.12 主键、外键和索引的区别?

主键是一条数据的唯一标识,不能重复,不能为空,用于保证数据的完整性,一张表只能有一个主键
本表的外键是其它表的主键,外键可以重复,可以为空,用于与其它表建立联系,一张表可以有多个外键
索引不能重复,可以为空,用于提高查询速度

5.1.13 char 和 varchar 的区别?

1. char定长,如果存储的数据长度小于定义的长度,用空格补充;varchar变长,如果存储的数据长度小于定义的长度,按照实际的数据长度存储。因为char定长所以存取速度比varchar快,但占用物理空间,varchar反之
2. char能存储的数据容量<varchar

5.1.14 SQL 注入是什么?如何避免 SQL 注入?

SQL注入:利用现有程序,将恶意的sql语句注入到后台数据库引擎执行
如何避免:1. 永远不要相信用户的输入,对用户的输入进行验证2. 不用采用动态sql语句,使用传参的sql

5.1.15 存储引擎 MyISAM 和 InnoDB 有什么区别?

InnoDB支持事务,支持外键,是行锁,支持高并发的操作,支持缓存索引和真实的数据,对内存要求高;MyISAM不支持事务,不支持外键,是表锁,不支持高并发的操作,只支持缓存索引不缓存真实数据

5.1.16 MySQL 中有哪些锁?

行级锁:对行加锁,开销大,加锁慢
表级锁:对表加锁,开销小,加锁快
页级锁:开销和加锁介于行锁和表锁之间
共享锁:又称读锁,其它事务可以并发读取数据,但任何事务都不能修改数据,除非所有的共享锁释放
排他锁:又称写锁,如果有一个事务对某个数据加了排他锁,那其它事务都不能对该数据该任何锁,有排他锁的事务对数据可读可写
意向锁

5.1.17 三种删除操作 drop、truncate、delete 的区别?

drop:drop table 表名删除内容和定义,并释放空间。执行drop语句,将使此表的结构一起删除。truncate (清空表中的数据):truncate table 表名删除内容、释放空间但不删除定义(也就是保留表的数据结构)。与drop不同的是,只是清空表数据而已。truncate不能删除行数据,虽然只删除数据,但是比delete彻底,它只删除表数据。delete:delete from 表名 (where 列名 = 值)与truncate类似,delete也只删除内容、释放空间但不删除定义;但是delete即可以对行数据进行删除,也可以对整表数据进行删除。

5.1.18 MySQL 中的存储过程是什么?有什么优点?

是一种在数据库中存储复杂程序,以便外部程序调用的数据库对象。是一组为了完成特定功能的sql语句集,用户可以通过调用存储过程的名字并给定参数来调用执行
优点:可封装、可进行数据校验
缺点:定制于特定的数据库,当换数据库,需要重写存储过程

5.1.19 MySQL 数据库的有哪些种类的索引?

普通索引、唯一索引、主键索引、组合索引、文本索引

5.1.20 MySQL 的事务隔离级别?

脏读:事务A在事务B修改了数据之后读取了数据,之后事务B回滚,那么事务A读取的数据就是脏数据
不可重复读:事务A多次读取数据,事务B在事务A读取的过程中修改了数据,导致事务A读取的数据不一致
幻读:事务A修改数据库中的数据为另一种模式,事务B在事务A修改的过程中,插入了一条原先格式的数据,导致事务A在修改完之后,发现还有一条数据没改

5.1.21 MySQL 中的锁如何进行优化?

InnoDB行锁优化:
1. 尽量让所有数据的检索通过索引来完成
2. 合理的设计索引,缩小行锁的锁定范围
3. 控制事务大小
4. 使用较低级别的事务控制
减少死锁建议:
1. 尽量按照同一顺序访问资源
2. 同一事务操作尽可能一次性锁定所以资源
3. 对于非常容易发生死锁的业务尝试升级锁颗粒度

5.1.22 解释 MySQL 外连接、内连接与自连接的区别?

交叉连接:又称笛卡尔积,指不使用任何条件,将表A的数据和表B的数据一一匹配
内连接:是有条件的交叉连接,根据条件筛选出符合条件的记录,不符合条件的记录不会出现在结果集中
外连接:其结果集中不仅会包含符合条件的行,还包含左表、右表或两张表的数据行,这三种情况依次称之为左外连接、右外连接、全外连接

5.1.23 如何进行 SQL 优化?
5.1.24 什么是 MySQL 主从?主从同步有什么好处?

Mysql主从是指把数据从一个数据库服务器的主节点复制到一个或多个从节点上。
主从同步的好处:
1. 水平扩展数据库的负载能力
2. 容错、高可用
3. 数据备份

5.1.25 MySQL 主从与 MongoDB 副本集有什么区别?

5.1.26 MySQL 账户权限怎么分类的?

1. 全局层级:权限范围是一个指定服务器的所有数据库,权限存储在mysql.user
2. 数据库层级:权限范围是一个指定的数据库下的所有数据,权限存储在mysql.db
3. 表层级:权限范围是一张表的所有列,权限存储在mysql.tables_priv
4. 列层级:权限范围是一张表的一个列,权限存储在mysql.columns_priv
5. 子程序层级:权限范围是一个子程序,权限存储在mysql.procs_priv

5.1.27 如何使用 Python 面向对象操作 MySQL 数据库?

python面试题之MySQL数据库相关推荐

  1. 测试面试题集-MySQL数据库灵魂拷问加强版

    VOL 168 22 2020-10 今天距2021年70天 这是ITester软件测试小栈第168次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 0 ...

  2. python数据库模块_十二、Python高级功能之Mysql数据库模块

    Python高级功能之Mysql数据库模块 安装python mysql组件 # yum -y install MySQL-python.x86_64 以下根据实例来说明: >>> ...

  3. pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库

    Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...

  4. python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)

    [python]python vs Excel ( 与mysql数据库之间的交互) 通过python与mysql数据库做交互 到目前为止大部分案例的演示数据都是基于文件进行读取的.那么python如何 ...

  5. Python导入Excel到Mysql数据库

    一.简介 Python导入Excel到Mysql数据库 自动创建ID为自增. 根据Excel表格表头自动生成数据库字段. 二.使用方法 修改configure配置即可. import pandas a ...

  6. 记录python使用pymysql连接mysql数据库,使用impyla、ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅)

    记录python使用pymysql连接mysql数据库,使用impyla.ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅) 连接mysql ...

  7. 在线车辆推荐网 Python语言+Django框架+Mysql数据库 基于用户、物品的协同过滤推荐算法 开发在线汽车推荐系统 二手车网站推荐系统 分布式大数据、机器学习、人工智能开发

    在线车辆推荐网 Python语言+Django框架+Mysql数据库 基于用户.物品的协同过滤推荐算法 开发在线汽车推荐系统 二手车网站推荐系统 分布式大数据.机器学习.人工智能开发 CarRecom ...

  8. C++、Python、Java的MySQL数据库操作

    C++.Python.Java 的MySQL数据库操作 简介 提供MySQL安装说明,以及在C++.Python.Java编程中的MySQL数据库环境配置,并且分别利用这三种语言对基础的MySQL数据 ...

  9. php面试题之五——MySQL数据库(基础部分)

    五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($query)操作的结果,mysql_num_rows( ...

最新文章

  1. 清华《人工智能之认知图谱》:中美高水平学者数量领跑全球
  2. dlib win32
  3. Zephyr内核到1.5版本的改进
  4. 关于我之前写的修改Windows系统Dos下显示的用户名之再修改测试
  5. 计算机网络基础与信息安全,大学计算机基础计算机网络基础与信息安全计算机网络概述教案.doc...
  6. java phantomjs_Java爬虫:Jsoup + Phantomjs
  7. debian上安装docker ce
  8. 用于web网页的html文件属于,南开15春学期《Web页面设计》在线作业满分答案
  9. C++,C++编程,Windows编程,MFC
  10. CNN中的卷积核及TensorFlow中卷积的各种实现
  11. 【Elasticsearch】ElasticSearch 7.8 多字段权重排序
  12. 本周Asp.net源码更新(6.25-6.29)
  13. 软件著作权提交源代bai码格式_软件著作权使用说明书字体要求-软件著作权提交源代码格式要求...
  14. 杭电OJ 1094(C++)
  15. 西门子SIMATIC S7-1500,ET 200SP,HMI触摸屏面板产品型号
  16. SQLSERVER tempdb 数据库异常增大原因查找
  17. 针对芯片测试行业,常见stil,vcd,wgl,文件的转化,到93K,chroma,小总结
  18. 【HTML教程(一)】HTML标签、模板和实例
  19. 为什么‘A‘的ASCII码是65,‘a‘是97呢?
  20. 记录一下自己写的小工具:shell 调度 SQL 批处理,递归查找调度路径

热门文章

  1. 前瞻、后顾、负前瞻、负后顾用法
  2. [javaee基础] 常见的javaweb笔试选择题含答案
  3. Python_Four
  4. System Monitor for Mac(系统监控工具)破解版安装
  5. Unix C学习之文件夹操作
  6. VUE-状态管理模式
  7. 笔记本电脑如何禁用系统自带键盘
  8. 有趣JavaScript,jQuery和互联网上的随机Web开发– 2012年3月
  9. 88e6321/88e6320 寄存器配置
  10. springboot sqlite 的疑难解决:The database disk image is malformed