mysql 数据库

来源:互联网 发布:程序员怎么转ai工程师 编辑:程序博客网 时间:2024/06/05 11:04
## 关系型数据库,比如MySQL的理论基础
问题:不光是理解映射关系,是要从关系型数据库的原理出发,想想为什么需要关系型数据库,关系型数据库设计原理、实现方式、操作语言SQL,这些都做做实验,深入理解一下。


 1.出了问题,记得先去查日志。


 2.在数据库的内部实现中的【三种常见数据结构】:阵列(也就是数组)、二叉树(B+树)、哈希表(哈希桶)


 3.关系型数据库的实现概念:
   【B+树索引】:关键词index,查询多个元素时的复杂度好于二叉树。
   【锁】:为了控制并发事务的一种机制。InnoDB支持行级锁和表级锁,默认行级锁。
     * 死锁:当两个事务同时执行,一个锁住了主键索引,在等待其他相关索引。另一个锁定了非主键索引,在等待主键索引。这样就会发生死锁。
     * 悲观锁和乐观锁;排他锁和共享锁
   
   【事务管理】:使用事务来确保数据的安全和一致性
   【缓冲池和共享池】:缓冲池用来存放已经处理的数据,方便下次的操作;共享池用来存放解析过的sql语句,也是方便下次操作。

 5.数据库开发编程主要是指利用数据库本身提高的一些命令,方法,存储过程,可以编写对数据的定值维护,操作,删除,比对等一些动作。好的数据库管理员可以做到让数据库自动定期维护数据,查找坏数据,并导到某个特定的表里,然后自动更新等等。数据库保存数据是一个基本功能。优势就是开发和利用。就像仓库一样,如果只是简单地把东西堆进去,那只是仓库的简单功能。如果给仓库配备了一个管理员,你就可以很方便快捷的查找,保管各种物品,并对各种物品进行有序存放。这就是数据库的作用。

mysql属于关系型数据库,理想中的数据库应该是对象型数据库,关系型数据库流行的原因可能是结构上和面向对象编程有相似之处。数据库是一个以某种有组织的方式存储数据的文件集合,而表是拥有特定类型数据的结构化清单 。




通用的逻辑数据库建模工具是“实体-关系(E-R)”图,传统的E-R图只针对数据,而UML的类图还允许对行为建模。
http://www.uml.org.cn/oobject/200903165.asp




------------------------------- 【sql查询语句】 ------------------------------------------
## 数据库database:数据的仓库 


 - 存储引擎:表用来存储数据的方式。性能和功能的选择。5.5版本的默认引擎是InnoDB
    InnoDB&myisam的区别:保存文件的方式不同,
    myisam使用三个文件保存:
 Tbl_name.frm 结构
 Tbl_name.myd 数据
 Tbl_name.myi 索引
    InnoDB使用一个表一个文件:所有的InnoDB表,都使用相同的InnoDB存储空间在保存数据和索引。
 Tbl_name.frm 结构
   
- 表table:数据保存在表内,保存在一个表内的数据,应该有相同的数据格式(对象结构)
  行&列:行用来记录数据,首行也就是每一列的开头是用来定义数据的。
  记录:除了第一行的其他的每一行都被称为记录。
  字段:每一列拥有相同的属性被称为字段;字段有一些约束条件。
  主键:唯一标识表中每一行的这个列(这组列)。关键字:primary key
  其他的约束(constraint):not null,unique,foreign key,default,check(限制值的范围)
  SQL:数据库管理系统使用的语言,用来管理数据的语言。属于结构化查询语言,建立在关系型数据库上的查询语言。不同数据库的sql语句会稍有不同。




## SQL:结构化查询语言;操作+条件+修饰==>我们得到的结果


针对操作对象的不同,可以分成不同语言:DML,DDL,DCL三种
 - 对数据操作的语言:**查询,获取数据;管理:增加,删除,更新数据**
 - 数据定义语言(对保存数据的格式进行定义)
 - 数据库控制语言(针对数据库软件服务进行的操作)


 1.关于条件范围的关键词:
   where,and,or,like,in,between...and,limit,order by,desc,group by
 
 2.关于修饰的关键词:
   concat,trim,replace,as,distinct,avg,sum,max,min,union

原创粉丝点击