数据库理论


数据来源于:_Caesar

1.mysql如何做分页

mysql数据库做分页用limit关键字,然后后面跟两个参数startindex和pageSize

limit分页查询:

select * from table_namelimit0,5#:前五条数据

2.mysql存储引擎有哪些,各自特点是什么?

最主流用的比较多的是Innodb和myisam,memory安全没有保障所以用的比较少

innodb和myisam两个存储引擎的区别?

innodb实现了sql标准的四种隔离制度

innodb支持事物,myisam不支持

innodb支持外键,myisme不支持

innodb不支持全文索引,myisam支持全文索引

innodb提供提交,回滚,和崩溃恢复能力的事物安全能力,实现并发控制

myisam提供较高级的插入和查询记录的效率,主要用于插入和查询

innodb引擎的适用场景

需要事物的处理操作,更新数据需要使用,行级锁大数据量的写入大型互联网

myisme引擎的适用场景

不需要事物操作插入,更新少,读取频繁, 频繁统计技数

3.数据库如何建立索引

create index account_index on table name('字段名‘)

4.如何对应对数据的高并发,大量的数据计算

创建索引

数据库读写分离,两个数据库一个读一个写

外键去掉

5.数据库内连表,右连表,左连表

内连接是根据某一条件连接两个表共有的数据

右连接是根据某一条件及右边的表格连接数据,左边的表没有数据的话则为null

左连接是根据某一条件及左边的表格连接数据,右边的表没有数据的话诶null

6.视图和表的区别

视图是已经编译好的sql语句,是基于sql语句集的可视化表,而表不是视图是窗口表示内容

视图没有实际的物理记录,而表有

视图的建立和删除只是影响视图的本身对表没有什么影响

7.关系型数据库的特点

数据集中控制

数据的独立性好

数据的共享性好

数据结构化

统一的数据保护能力

8.数据库都有哪些索引

普通索引:普通索引就有一个功能:加速查找

唯一索引:唯一索引有两个功能:加速查找和唯一约束(可含null)

外键索引:有两个功能;加速查找和唯一约束(不可含null)

联合索引:联合索引将n个列组合成一个索引,应用场景:同时使用n列进行查询

9.数据库的存储过程

存储过程一般是作为独立的部分来执行,存储过程是一个预编译的sql语句,存储过程不允许执行return语句,但是可以通过out返回多个值

程序与数据库结合的三种方式

方式一:mysql存储过程:调用存储过程

方式二:mysql程序:纯sql语句

方式三:mysql:程序类和对象,即orm(本质)

10.数据库之sql优化

select句中避免使用‘*’

减少访问数据库的次数

删除重复的记录

用where子句代替having子句

用where替代order by;

减少对表的查询

11.char和vacher区别

char是固定长度,存储需要12个字节,处理速度比vachar快,费内存空间

vachar是不固定长度,需要存储13字节,节约存储空间

12.memcached与redis

memcached:只是支持字符串,不能持久化,数据仅存在内存中宕机或重启数据将全部失效 不能进行异步分布,文件无法异步法

优点:memcached进程运行后,会预先申请一块比较大的内存自己管理

redis:支持服务端的数据类型,redis与memcached相比较来说拥有更多的数据结构并发支持更丰富的数据化操作可持久化

五大数据类型:string,hash,list,set和有序集合,redis是单进程的线程

缺点:数据库的容量受到物理限制。

13.sql注入

sql注入是比较常见的攻击方式之一,针对编程人员的疏忽,通过sql语句,实现账号无法登陆,甚至篡改数据库数据

防止:凡涉及到执行sql中变量的时候,切记不要用字符串的拼接

14.什么是触发器

触发器是一种特殊的存储过程,主要通过事件来触发而被执行的,他可以强化约束,来维护数据的完整性和一致性,可以跟踪数据内的操作从而不允许未经许可的更新和变化可以连级运算

只有表支持触发器,视图不支持触发器

15,游标是什么

是对查询出来的结果作为单元有效处理,游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行,可以对结果集当前行做修改,一般不使用游标,但是需要逐条处理数据的时候,游标显得很重要

16.数据库支持多有标准的sql数据类型,重要分为三类

数值类型(tinyint,int,bigint,浮点数,bit)

字符串类型(char和vachar,enum,text,set)

日期类型(data,datetime,timestamp)

17.mysql慢查询

慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些sql语句比较消耗资源

慢查询定义:指mysql记录所有执行超过long_query_time参数设定时间值的sql语句慢查询日志就是记录这些sql的日志

mysql在windows系统中的配置文件一般是my.ini找到mysqld

log-slow-queries = F:\MySQL\log\mysqlslowquery.log  为慢查询日志存放的位置,一般要有可写权限 long_query_time = 2  2表示查询超过两秒才记录

18.memcached命中率

命中:可以直接通过缓存获取到需要的数据

不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其他的操作,原因可能是由于缓存中根本不存在,或者缓存已经过期

缓存的命中率越高则表示使用缓存的收益越高,应额用的性能越好,抗病发能力越强

运行state命令可以查看memcached服务的状态信息,其中cmd—get表示总的get次数,get—hits表示命中次数,命中率=get—hits / cmd—get

19.Oracle和mysql该如何选择,为什么?

他们都有各自的优点和缺点,考虑到时间因素,我倾向于mysql

mysql开源

mysql轻便快捷

mysql对命令行和图形界面支持都很好

mysql支持通过query browser进行管理

20.什么时候建立索引?

经常出现关键字order by  group by ,distinct后面的字段,建立索引

在union等集合操作的结果集字段上,建立索引,其建立索引的目的同上

为经常用作表查询选择字段,建立索引

在经常用作表连接的属性上,建立索引

21.sql语句应该考虑哪些安全

防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语句绑定变量

最小权限原则,特别是不要用root账户,为不同的类型动作或者组建使用不同账户

当sql运行出错时,不要把数据库返回的报错信息全部显示给用户,以防止信息泄露服务器相关信息

22.数据库事物有哪几种

隔离性 持续性,一致性,原子性

23.mysql数据表什么时候容易损坏?

服务器突然断电导致数据文件损坏

强制关机,没有先关闭mysql服务器等

24.drop,delete,与truncate的区别

drop直接删除表

truncate删除表中的数据,在插入时自增长id又从1开始

delete删除表中数据,可以加where子句

25.数据库范例

第一种范式:无重复的列

第二种范式:就是非主属性非部分依赖关键字

第三种范式:就是属性不依赖于其他非主属性(消除沉余)

26.mysql锁的类型

根据锁的类型分:可以分为共享锁、排他锁、意向共享锁和意向排他锁

根据锁的粒度分:可以分为行锁、表锁

对于mysql而言事务机制更多是靠底层的存储引擎来实现的,因此,mysql层面只有表锁,

而支持事物的innodb存储引起则实现了行锁(在行相应的索引记录上的锁)

说明:对于更新操作(读不上锁),只有走索引才可能上行锁

MVCC(多版本并发控制)并发控制机制下,任何操作都不会阻塞读取操作,

读取操作也不会阻塞任何操作,只因为读不上锁

共享锁:由读表操作加上的锁,加锁后其他用户只能获取该表或行的共享锁,不能获取排他锁,

也就是说只能读不能写

排他锁:由写表操作加上的锁,加锁后其他用户不能获取该表或该行的任何锁,典型mysql事物中的更新操作

意向共享锁(IS):事物打算给数据行加行共享锁,事物在给一个数据行加共享锁前必须先取得该表的IS锁

意向排他锁(IX):事物打算给数据行加行排他锁,事物在给一个数据行家排他锁前必须先取得该表的IX锁

27.如何解决mysql数据库上的中文乱码问题?

在数据库安装的时候指定字符集

如果在按完了以后可以更改配置文件

建立数据库的时候指定字符集的类型

建立表的时候也指定字符集

28.数据库应用系统设计

规划

需求分析

概念模型设计

逻辑设计

物理设计

程序编制和调试

运行和维护

29.索引概念

mysql索引也叫键,是存储引擎用于快速查找到记录的一种数据结构索引对于良好的性能非常的关键,尤其是信息量比较大的时候

注意点:不要对重复的值的字段建立索引,避免查询mysql进行自动类型转换,因为转换会让索引不起作用

功能:

索引优化是对查询性能优化的有效手段

索引能够轻易将查询性能提高好几个数量级

索引相当于字典的音序表,如果要查那个就用音序表

特点:创建和维护会消耗很多时间和磁盘空间,但查询速度大大提高

30.Sqlalchemy

SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上 ,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect

用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实 现对数据库的操作

31.请描述数据库如何进行多表查询?

使用原生的sql语句

使用orm进行查询

嵌套查询

使用子查询

多表联合查询

联合语句查询

内连接查询

外连接查询

利用IN或NOTIN关键字限定范围

由In引入关联子查询

利用HAVING语句过滤分组数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342