mysql 原理_MySQL(一):基本原理

一、数据库定义

数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

数据库的组织模式:层次型数据结构

网状型数据结构

关系型数据结构(MySQL)

非关系型数据结构(NoSQL)

关系型数据结构图示

e51930a16ba49550dafefa3908b54154.png

上图描述了从用户层到物理层的工作结构。

二、数据库基础知识

SQL:structure query language;一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系性数据库语言。

SQL语言组成部分:数据定义语言(DDL:Data Definition Language):CREATE, DROP, ALTER

数据操纵语言(DML:Data Manipulation Language):SELECT, INSERT, UPDATE, DELETE

数据控制语言(DCL:Data Control Language):GRANT, REVOKE

事务(transaction):事务就是一组原子性的查询语句;也即将多个查询当作一个独立的工作单元。

ACID测试:能满足ACID测试就表示其支持事务;或兼容事务。原子性(Atomic):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。

一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。

隔离性(Isolation):多个事务并发执行时,一个事务所做的操作在提交之前对其他事务是不可见的。

持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。

三、MySQL基础特性

MySQL的安装这里就不做介绍;

键:key(字段)主键:能够唯一标识表中每一个记录的字段或字段的组合。

候选键:能够作为唯一标识表中每一个记录的字段。

外键:依赖别的表当做属性以创建彼此的关系;而这个属性就是外键。

唯一键:可以确定一条记录的字段(或字段组合),一张表可以有多个唯一键。

约束:constraint主键约束:用于定义基本表的主键,起惟一标识作用;对一张表来说;主键只能有一个;不能为空;不能重复。

外键约束:定义了一个表中数据与另一个表中的数据的联系;对应其他表中的字段;在自己表中没有的不能填入。

唯一键约束:用于指明创建惟一约束的列上的取值必须惟一;可以为空;不能重复;可以有多个。

检查式约束:用户自定义有效取值范围;通常为布尔表达式。

非空约束:只用于定义列约束。

mysql中的比较方式、存储空间的取值范围以及参与的运算等都取决于mysql的数据类型;所以数据类型非常重要;具体的字段的数据类型:

字符型char(#)用于保存定长(size)字节的字符串数据。编码时不区分字符大小写。最大长度为255字节.

varchar(#)用于保存变长的字符串数据。其中最大字节长度由(size)指定。每行长度可变,最大长度为65535字节。数据长度缺省为1 ;编码时区不分字符大小写。

binary(#)固定长度的二进制字符串;每行定长(不足部分补为空格);最大长度为255字节,缺省值为每行1字节。编码时区分字符大小写。

varbinary(#)可变长度的长度的二进制字符串。每行长度可变,最大长度为65535字节。数据长度缺省为1。编码时区分字符大小写。

text一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符;编码时不区分字符大小写

blob二进制的大对象;一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符;编码时区分字符大小写。

数值型精确数值型

tinyint保存整型数据,范围为0到255。最大长度为1字节。

smallint保存整型数据,范围为-32767到+32767最,大长度为2字节。

mediumint保存整型数据,范围为-8388608至8388607或0至16777215。最大长度为3字节。

int保存整型数据,范围为-2147483647到+2147483647。最大长度为4字节。

bigint保存整型数据,范围为-9223372036854775808至9223372036854775807或0至18446744073709551615。最大长度为8字节

decimal保存精确数值数据类型,范围为-10E-38到+10E-38,最大长度为2~17字节。近似数值型float最小非零值:±1.175494351E – 38,同double一样适用于精度要求高的场合

double最小非零值:±2.2250738585072014E - 308

日期时间型date1000-01-01~9999-12-31 3字节

time-838:59:59~838:59:59 3字节

datetime1000-01-01 00:00:00~9999-12-31 23:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值