数据库SQL--数据表与索引(二)

本文介绍了数据库中的数据表概念,包括行、列和记录、字段,详细阐述了SQL中的字符型、数字型、日期时间型和二进制数据类型,并列举了MySQL和SQLite3的具体数据类型示例。此外,还提及了表结构的设计,如字段约束和表约束,以及索引在提高查询效率中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.数据表( )

  1. 数据表是数据库中最基本的用于存储数据的对象,可以认为数据表是以行和列组成的二维表格,通常把行称为记录,列称为字段。
  2. SQL中的常用数据类型
  • 字符型数据:大小写字母,数字,空白符(空格符,制表符,换行符),
                          标点,特殊字符与汉字
    注意:
    (1) 空白字符仅在字符串常量中有意义,在其他地方出现时,只起间隔作用,编译器会自动忽略,仅增加可读性.
    (2) 字符型数据都被放在’ ’ 内部,如’home’,‘张三’,‘123456’,'123_&&%*'都是字符型数据,每个字符型数据都有长度,长度是字符个数(汉字每个字长度为2)

  • 数字型数据:可以是0-9数字,可以正负符号与小数点,也可以浮点形式的科学计数法。如100,23.988,-123,3.46E+03
    注意:
    (1) 对于数字若没有界定符’'则是数字型数据,有界定符如’1222’则是字符型数据
    (2) 在具体的数据库中,数字型数据往往被分为整数型,浮点型,货币型等数据。

  • 日期时间数据:如2018-1-1 12:40:32 2018年8月1日 01/JAN/2018等形式

  • 二进制数据:用于保存图形图像,动画视频及其他类型文件,如sql server提供的image数据类型,mysql中的blob数据类型等等

  • 自定义数据类型:create type(但不是所有数据库都支持)

  1. 具体数据库中使用的数据类型
    (1)Mysql的数据类型
    字符类型:
    char(M):保存定长的字符串,M表示最大长度范围1-255,当输入的字符串小于M时,在数据库系统中使用空格补齐,但在取出时将末尾空格去掉
    varchar(M):保存变长的字符串
    blob:存储二进制文本数据,不超过65535个字节
    tinyblob:保存二进制文本数据,不超过255个字节
    mediumblob:保存二进制文本数据,不超过16777215个字节
    longblob:不超过4294967295字节
    text:保存长文本数据。不超过65535个字节
    tinytext:保存长文本数据,不超过255个字节
    mediumtext:保存文本数据,不超过16777215个字节
    longtext:保存文本数据,不超过4294967295字节

    (2) 数值类型:
    int或integer:占用四个字节,存放-2147483648~2147483647之间的正负整数
    tinyint:占用一个字节,存放-128-127之间的正负整数
    tinyint unsigned:0~255
    float:占用四个字节
    double:占用八个字节
    numeric(M,D):M是整个数字的宽度(包括小数点及小数点左右的位数,不包括正负
                              号)D是小数点右边的位数,这是一种由M和D决定的数据类型。

    (3) 日期与时间类型
    date类型:占用三个字节空间,存储日期类型。
                      输入格式YYYY-MM-DD,如2023-3-2
    datetime类型:占用八个字节空间,存储日期和时间类型。
                             输入格式YYYY-MM-DD HH:MM:SS
    time类型:占用三个字节,存储时间类型。
                      输入格式HH:MM:SS
    year类型:占用一个字节,存储年份数据。
                      输入格式YYYY
    timestamp类型:占用八个字节,
                                输入格式YYYY-MM-DD HH:MM:SS

(2)Sqlite3的数据类型

  • NULL 值是一个 NULL 值。
  • INTEGER 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节- 中。
  • REAL 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
  • TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
  • BLOB 值是一个 blob 数据,完全根据它的输入存储。
    其中时间类型被存储为以下三种格式
    TEXT              格式为 “YYYY-MM-DD HH:MM:SS.SSS” 的日期。
    REAL              从公元前 4714 年 11 月 24 日格林尼治时间的正午开始算起的天数。
    INTEGER       从 1970-01-01 00:00:00 UTC 算起的秒数。
  1. 数据表基础
    一个数据表由表结构和其内的数据组成
  • 表结构主要为表名,字段名,字段的数据类型,字段的大小,另外也有如字段约束,表约束等(可选项)
  • 其内的数据即记录,要求每个字段中的数据必须是相同的数据类型
  1. 表的逻辑设计
    E-R模型图完成逻辑设计,是关系模式设计合理,减少冗余,提高查询效率
    任务:确定数据依赖,消除冗余关系,确定范式级别等
    (暂时用不到,后续补充…)

  2. 表的索引
    大型数据库最主要的对象,用途减少定位和查询数据所需的IO操作,加快数据库查询速度,但一般只有大型数据库管理者才会使用索引,小型数据库用途不大。
    举个例子:索引就相当书的页码,一个字一个字的查某行必然不如直接索引到某一页再查速度快。
    (暂时用不到,后续补充…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值