mysql 的基本概念php
***问题1python
什么是数据库?mysql
数据库(database)是一个长期存储在计算机内的有组织,有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的linux
计算机软件系统。数据库包含两层含义,数据的“仓库”以及管理数据的方法和技术。c++
将全部的数据收集在一块儿不能称为数据库,只有具备利用信息的功能时才能称为数据库。sql
***问题2数据库
数据库的特色?windows
实现数据共享,减小数据冗余;采用特定的数据类型;具备较高的数据独立性;具备统一的数据控制功能。安全
***问题3数据结构
什么是关系型数据库?
关系数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
***问题4
常见的关系型数据库?
Oracle、SQL Server、Sybase、DB二、Access 、mysql
非关系型数据库的一个连接
http://blog.csdn.net/qq_22101509/article/details/49794303
***问题5
数据库系统的组成?
数据库:用于存储数据的地方
数据库管理系统:用于存储数据库的软件
数据库应用程序:为提升数据库系统的处理能力所使用的管理数据库的软件补充
数据库不等于数据库管理系统,数据库只是一个具备可以 提供提取信息的一个地方,而真正的增删改查是由数据库管理系统来完成的(DBMS)
***问题6
sql语言可分为哪几部分?
数据定义语言(DDL):drop create alter
数据操做语言(DML):insert delete update select
数据控制语言(DCL):grant revoke commit rollback
***问题7
mysql的优点?
考虑方向:速度、价格、支持不一样的系统(windows linux unix Mac os)、支持查询的语言(sql 语句)、丰富的接口(php c c++ python ......)
开源
***问题8
什么是索引?
索引是一个单独的、存储在磁盘上的数据库结构,它们包含着对数据表里全部记录的引用指针。
***问题9
索引的分类?
普通索引和惟一索引
单列索引和组合索引
全文索引
空间索引
***问题10
查询表中使用的存储引擎
mysql> show create table score;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| score | CREATE TABLE `score` (
`id` int(10) NOT NULL,
`stu_id` int(10) DEFAULT NULL,
`c_name` varchar(20) DEFAULT NULL,
`grade` int(10) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.16 sec)
索引的优势?索引的缺点?
优势:方便查询
缺点:太多的索引也占用磁盘空间
索引的设计原则?
索引并不是越多越好。
避免对常常更新的表进行过多的索引,而且索引中的列尽量少。
数据量小的表最好不要使用索引。
在条件表达式中常常用到的不一样值较多的列上创建检索,在不一样值少的列上不要创建索引。
当惟一性是某种数据自己的特征时,指定惟一索引。
在频繁进行排序或分组(即进行group by或order by操做)的列上创建索引
***问题11
什么是存储过程?
SEQ语言是非程序语言
程序语言指为达到某个目的,将处理流程经过多个命令来编写。而非程序语言是不能编写流程的。
定义:将经常使用的或很复杂的工做,预先用SQL语句写好并用一个指定的名称存储起来, 那么之后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,便可自动完成命令。
简单说就是数据库中保存一系列sql命令的集合
查询的工做原理
全部查询在执行前都须要通过解释,解析,优化,编译和执行
解释:检查语句的语法是否正确
解析:检查语句中出现的对象名是否有效,同时检查对象的全部权限
优化:检查是否可以使用索引并决定联合策略
编译:把查询翻译成一个可执行的表
执行:把编译过程的查询要求提交并进行处理
存储过程的优点?
存储过程是事先完成了解析、编译存储在数据库中的,执行时能减轻数据库负担,提升执行性能
***问题12
什么是视图?
视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图还能够从已经存在的视图的基础上定义。
视图的做用?
● 简单性
● 安全性
● 逻辑数据独立性
***问题13
事务的理解?
事务是应用程序中一系列严密的操做,全部操做必须成功完成,不然在每一个操做中所做的全部更改都会被撤消。也就是事务具备原子性,一个事务中的一系列的操做要么所有成功,要么一个都不作。
事务的结束有两种,当事务中的因此步骤所有成功执行时,事务提交。若是其中一个步骤失败,将发生回滚操做,撤消撤消以前到事务开始时的因此操做。
二.事务的 ACID
事务具备四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。
1 、原子性
事务是数据库的逻辑工做单位,事务中包含的各操做要么都作,要么都不作
2 、一致性
事 务执行的结果必须是使数据库从一个一致性状态变到另外一个一致性状态。所以当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。若是数据库系统 运行中发生故障,有些事务还没有完成就被迫中断,这些未完成事务对数据库所作的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。
3 、隔离性
一个事务的执行不能其它事务干扰。即一个事务内部的操做及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
4 、持续性
也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操做或故障不该该对其执行结果有任何影响。
数据库系统必须维护事务的如下特性 ( 简称 ACID) :
原子性 (Atomicity)
一致性 (Consistency)
隔离性 (Isolation)
持久性 (Durability)
原子性 (Atomicity)
事务中的全部操做要么所有执行,要么都不执行;
若是事务没有原子性的保证,那么在发生系统 故障的状况下,数据库就有可能处于不一致状态