zoukankan      html  css  js  c++  java
  • 数据类型和运算符

    一、数据类型

    1、数值类型

    为每张表的每个字段选择合适的数据类型是数据库设计过程中一个重要的步骤。

    数字分为整数和小数。其中整数用整数类型表示,小数用浮点数类型和定点数类型表示。

    浮点数类型包括单精度浮点数 FLOAT 类型和双精度浮点数 DOUBLE 类型。定点数类型就是 DECIMAL 类型,DEC 和 DECIMAL 这两个定点数类型是同名词

    注意事项:
    数字类型的选择应遵循如下原则。
    1)选择最小的可用类型,如果改字段的值不会超过 127,则使用 TINYINT 比 INT 效果好。
    2)对于完全都是数字的,即无小数点时,可以选择整数类型,比如年龄。
    3)浮点类型用于可能具有的小数部分的数,比如学生成绩。
    4)在需要表示金额等货币类型时优先选择 DECIMAL 数据类型。

    2、日期时间类型

    MySQL 主要支持 5 种日期类型:DATE、TIME, YEAR、DATATIME 和 TIMESTAMP

    3、字符串类型

    字符串类型的数据分为普通的文本字符串类型(CHAR 和 VARCHAR)、可变类型(TEXT 和 BLOB)

    4、复合类型

    MySQL 数据库还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。

    Enum 类型的字段只允许从一个集合中取得某一个值,有点儿类似于单选按钮的功能。例如,一个人的性别从集合 {‘男’,‘女’} 中取值,且只能取其中一个值。

    Set 类型的字段允许从一个集合中取得多个值,有点儿类似于复选框的功能。例如,一个人的兴趣爱好可以从集合 {‘看电影’,‘购物’,‘听音乐’, ‘旅游’,‘游泳’} 中取值,且可以取多个值。

    5、二进制类型

    MySQL 主要支持 7 种二进制类型:binary、varbinary、bit、tinyblob、blob、mediumblob 和 longblob

    注:Text 与 blob 都可以用来存储长字符串,text 主要用来存储文本字符串,例如新闻內容、博客日志等数据;blob 主要用来存储二进制数据,例如图片、音频、视频等二进制数据。

    在真正的项目中,更多的时候需要将图片、音频、视频等二进制数据,以文件的形式存储在操作系统的文件系统中,而不会存储在数据库表中,毕竟,处理这些二进制数据并不是数据库管理系统的强项。

    6、合适的数据类型

    通常来说,数据类型的选择遵循以下原则:

    (1)在符合应用要求(取值范围、精度)的前提下,尽量使用 “短” 数据类型

    (2)数据类型越简单越好

    (3)尽量采用精确小数类型(例如 decimal),而不采用浮点数类型

    (4)在 MySQL 中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间

    (5)尽量避免 NULL 字段,建议将字段指定为 NOT NULL 约束

    二、运算符

    1、算术运算符

    算术运算符包括加、减、乘、除和取余运算。他们是最常用的、最简单的一类运算符

    2、比较运算符

    MySQL 数据库允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真返回 1,为假返回 0,不确定返回 NULL

    3、逻辑运算符

    逻辑运算符,也称为布尔运算符,判断表达式的真假。

    4、位运算符

    位运算符是将给定的操作数转化为二进制后,对各个操作数的每一位都进行指定的逻辑运算,得到的二进制结果转化为十进制数后就是位运算的结果。

  • 相关阅读:
    打印九九乘法表
    PAT (Basic Level) Practice (中文) 1091 N-自守数 (15分)
    PAT (Basic Level) Practice (中文)1090 危险品装箱 (25分) (单身狗进阶版 使用map+ vector+数组标记)
    PAT (Basic Level) Practice (中文) 1088 三人行 (20分)
    PAT (Basic Level) Practice (中文) 1087 有多少不同的值 (20分)
    PAT (Basic Level) Practice (中文)1086 就不告诉你 (15分)
    PAT (Basic Level) Practice (中文) 1085 PAT单位排行 (25分) (map搜索+set排序+并列进行排行)
    PAT (Basic Level) Practice (中文) 1083 是否存在相等的差 (20分)
    PAT (Basic Level) Practice (中文) 1082 射击比赛 (20分)
    PAT (Basic Level) Practice (中文) 1081 检查密码 (15分)
  • 原文地址:https://www.cnblogs.com/qiuxirufeng/p/9991505.html
Copyright © 2011-2022 走看看