zoukankan      html  css  js  c++  java
  • MySQL入门,第二部分,必备基础知识点

    一、数据类型

    日期和时间数据类型

     

    date

    3字节

    日期,格式:2014-09-18

    日期和时间数据类型

     

    time

    3字节

    时间,格式:08:42:30

    日期和时间数据类型

     

    datetime

    8字节

    日期时间,格式:2014-09-18 08:42:30

    日期和时间数据类型

     

    timestamp

    4字节

    自动存储记录修改的时间,格式:2009-09-18 08:42:30

    日期和时间数据类型

     

    year

    1字节

    年份, 格式:2009

    数值数据类型

    整型

    tinyint

    1字节

    有符号范围(-128~127),无符号(0~255)

    数值数据类型

    整型

    smallint

    2字节

    有符号范围(-32768~32767),无符号(0~65535)

    数值数据类型

    整型

    mediumint

    3字节

    有符号范围(-8388608~8388607),无符号(0~16777215)

    数值数据类型

    整型

    Int(integer)

    4字节

    有符号范围 (-2147483648~2147483647),

    无符号(0~4294967295)

    数值数据类型

    整型

    bigint

    8字节

    有符号范围(-9223372036854775807~

    9223372036854775807),

    无符号(0~18446744073709551615)

    数值数据类型

    浮点型

    float(m, d)

    4字节

    单精度浮点型,m总个数,d小数位 

    单精度实数在内存中占32bit 有效数字为6~7位

    数值数据类型

    浮点型

    numeric(m,d)

    4字节

    m总个数,d小数位

    数值数据类型

    浮点型

    double(m, d)

    8字节

    双精度浮点型,m总个数,d小数位 

    双精度实数占内存单元为64bit 有效数字为15~16位

    数值数据类型

    浮点型

    decimal(m, d)

     

    decimal是存储为字符串的浮点数

    字符串数据类型

     

    char(n)

    255字节

    固定长度

    每个汉字3字节

    字符串数据类型

     

    varchar(n)

    65535字节

    5.0以上版本

    可变长度

    每个汉字3字节

    varchar起始位和结束位占去了3个字节

    varchar会使用1-3个字节来存储长度

    varchar性能略逊char,当长度变化的时候,要重新分配内存

    字符串数据类型

     

    tinytext

    255字节

    可变长度

    字符串数据类型

     

    text

    65535字节

     

    可变长度

    存储的时候不会截断尾部的空格 

    text不会使用1-3个字节来存储长度

    text没有默认值

    字符串数据类型

     

    mediumtext

    16M

    可变长度

    字符串数据类型

     

    longtext

    4G

    可变长度

    字符串数据类型

    二进制形式

    TinyBlob

    255字节

    可变长度

    字符串数据类型

    二进制形式

    blob

    65535字节

    可变长度

    字符串数据类型

    二进制形式

    mediumblob

    16M

    可变长度

    字符串数据类型

    二进制形式

    longblob  

    4G

    可变长度

    其它类型

     

    enum(“1″, “2″)

    最大65535

    不同的枚举值

    enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。

    当定义了一个enum的列时,该列的值限制为列定义中声明的值。

    如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。

     

    其它类型

     

    set(“1”, “2″,)

    最大64

    不同的值

    set数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。

    值的选择限制为列定义中声明的值。

    二、数据库中的一些基本概念

    数据库:按照数据结构来组织、存储和管理数据的仓库”

    表:一个关系对应通常说的一张表。把数据库表示为关系的集合,每一个关系类似于一张二维表

    属性:就是关系中各列,一列即为一个属性

    关系:一个关系对应通常说的一张表。把数据库表示为关系的集合,每一个关系类似于一张二维表

    元组:在表中,除了关系的标题栏以外,其它各行统称为“元组”

    分量:元组的各个属性在该元组上的取值

    关系的模式:关系名和关系的属性集称为关系的“模式”

    域:每个属性有一个允许的值的集合,称为该属性的“域”,指定的域通常是一个特定的基本类型

    超码(键)(super key):一个或者多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个实体

    候选(键)码(candidate key):最小超码,它们的任意真子集都不能成为超码。即任意真子集都不能成为超码的最小超码

    主属性:包含在任何一个候选键中的属性

    非主属性:不包含在任何一个候选键中的属性

    主(键)码(primary key):数据库设计人员选定的,用于唯一标识该关系元组的一个候选码;每一个关系有并且只有一主码,通常用较小的属性组合作为主键

    外(键)码:表中的一个(或多个)属性,它引用某个其他表(特殊情况下,也可以是外键所在的表)的主键,当然,也可以是候选键,但多数情况下是主键

    三、关系型数据库的特征

    1.关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项

    2.关系模型的完整性约束

    实体完整性:指一个表中的每一行必须是唯一的,即实体是可以唯一区分的 。若属性A是基本关系R的主键,则属性A不能取空值,另外不能存在属性A上分量相同的元组

    参照完整性:在关系数据库中用外键(foreign key,或外码)来实现参照完整性

    用户定义的完整性:此规则是针对某一应用环境的完整性约束条件,他反映了某一具体应用所涉及的数据应满足的要求。在实际系统中,这类完整性规则一般在建立库表的同时进行定义

    3.关系数据库的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合

    四、关系模型的优缺点

    优点

    1.建立在严格的数学概念的基础上

    2.概念单一。数据结构简单、清晰,用户易懂易用;实体和各类联系都用关系来表示。对数据的检索结果也是关系。

    3.关系模型的存取路径对用户透明;具有更高的数据独立性,更好的安全保密性;简化了程序员的工作和数据库开发建立的工作

    缺点

    1.存取路径对用户透明导致查询效率往往不如非关系数据模型

    2.为提高性能,必须对用户的查询请求进行优化增加了开发数据库管理系统的难度

    五、MySQL数据库存储引擎

    1.什么是存储引擎

    存储引擎是数据库管理系统用来从数据库创建、读取和更新数据的软件模块。在5.5版本之前MySQL的默认存储引擎是MyISAM,不支持事务处理等。在5.5及更高版本之后,默认存储引擎是InnoDB,支持锁、事务处理等机制

    2.MySQL默认存储引擎InnoDB

    (1)结构特点

    InnoDB 可以采用独立表空间来存储用户数据库,每一个表(关系)的存储文件有两种:

    ①.frm 是存储表的定义信息的文件

    ②.ibd 是表的数据和索引的文件

    (2)共享表空间

    InnoDB 采用共享表空间来存储系统的数据字典、临时表、事务状态等。系统的共享表空间对应于磁盘文件 idbdata1。对应的数据库是 information_schema

    DBA可以通过修改配置文件、特权命令等多种办法对MySQL服务器进行包括共享表空间在内的管理,保证系统顺利运行

    六、MySQL中的数据类型

    1.整型

    2.浮点数

    类型

    大小

    范围(有符号)

    范围(无符号)

    用途

    FLOAT

    4 字节

    (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

    0,(1.175 494 351 E-38,3.402 823 466 E+38)

    单精度
    浮点数值

    DOUBLE

    8 字节

    (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

    0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

    双精度
    浮点数值

    3.十进制

    类型

    占用空间大小

    范围(有符号)

    范围(无符号)

    用途

    DECIMAL

    对于DECIMAL(M,D) ,占用M+2个字节

    依赖于MD

    依赖于MD的值

    M的有效范围

    [165]

    D的有效范围

    [030],且 D<M

    固定精度的十进制数

    例如:

    amount DECIMAL(6,2);
    表示 名为amount的列最多可以存储6位数字,其中小数位数为2位; 因此,amount列的范围是从-9999.99到9999.99

    4.文本类型

    类型

    大小

    用途

    CHAR

    0-255字节

    定长字符串

    VARCHAR

    0-65535 字节

    变长字符串

    TINYTEXT

    0-255字节

    短文本字符串

    TEXT

    0-65 535字节

    长文本数据

    MEDIUMTEXT

    0-16 777 215字节

    中等长度文本数据

    LONGTEXT

    0-4 294 967 295字节

    极大文本数据

    注意事项:

    ①varchar每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)

    ②按照查询速度: char最快,varchar次之,text最慢

    ③char(n),varchar(m),数字n,m表示字符数,不是字节数

    5.二进制文本类型

    类型名称 说明 存储需求
    BIT(M) 位字段类型 大约 (M+7)/8 字节
    BINARY(M) 固定长度二进制字符串 M 字节
    VARBINARY (M) 可变长度二进制字符串 M+1 字节
    TINYBLOB (M) 非常小的BLOB L+1 字节,在此,L<2^8
    BLOB (M) 小 BLOB L+2 字节,在此,L<2^16
    MEDIUMBLOB (M) 中等大小的BLOB L+3 字节,在此,L<2^24
    LONGBLOB (M) 非常大的BLOB L+4 字节,在此,L<2^32

    注意:

    ①二进制文本类型存储时不编码,直接以二进制进行存储(即01)

    ②Mysql的InnoDB存储引擎,对值比较大的BLOB与TEXT,使用专门的“外部”存储区域来进行存储。此时每个值在行内会采用1~4个字节存储指针,指向在外部存储区域存储的实际值。数据超大时,会在磁盘存储临时表,导致整体速度下降

    6.其他常用数据类型

    类型

    大小
    (字节)

    范围

    格式

    用途

    DATE

    3

    1000-01-01/9999-12-31

    YYYY-MM-DD

    日期值

    TIME

    3

    '-838:59:59'/'838:59:59'

    HH:MM:SS

    时间值或持续时间

    YEAR

    1

    1901/2155

    YYYY

    年份值

    DATETIME

    8

    1000-01-01 00:00:00/9999-12-31 23:59:59

    YYYY-MM-DD HH:MM:SS

    混合日期和时间值

    TIMESTAMP

    4

    1970-01-01 00:00:00/2038

    结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038119日 凌晨 03:14:07

    YYYYMMDD HHMMSS

    混合日期和时间值,时间戳

    七、常见编码占用存储空间大小

    编码

    英文字符

    汉字(含繁体)

    ASCII

    一个字节

    两个字节

    UTF-8

    一个字节

    三个字节

    Unicode

    两个字节

    两个字节

  • 相关阅读:
    iview的table中嵌套input,select等(附带一个添加行,删除行的功能)
    解决iview的select既可以编辑又可以选择(在iview的select基础上修改)
    完成iview的下拉select既可以编辑内容又可以选择下拉选项的功能(借助iview的自动完成组件)
    页面加载完毕事件的使用方法
    iview的select变化的时候获取上一次选中的值
    使用iview文件上传的钩子函数时传递自定义参数问题
    vue中对象和数组无法触发双向绑定的情况以及解决方案
    单例模式,队列/栈
    Array的遍历
    类/对象 包含属性和方法(方法不是函数)
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700437.html
Copyright © 2011-2022 走看看