关于SQL的学习记录(三、数据表)

本文详细介绍了SQL中的数据表及其数据类型,包括字符型、数字型、日期型和二进制型,同时讲解了MySQL、SQL Server和Oracle数据库中的特定数据类型。还提及了自定义数据类型以及数据表的基础知识,如记录、字段、表结构、E-R模型图和规范化范式。最后,简要概述了创建、修改、删除和重命名表的操作。
摘要由CSDN通过智能技术生成

数据表

SQL数据类型:
①字符型数据类型

  • 是数据库中最常用的数据类型之一, 有时人们将其称为:字符串。
  • 字符型数据可由字母(a-z,A-Z 大小写字母共52个)、数字(0-9共10个)、空白符(空格符,制表符,换行符等统称为空白符)、标点,特殊字符与汉字(在数据表中允许存储标点,特殊字符和汉字)组成。
    其中,空白符只在字符常量和字符串中有具体意义。在其他地方出现时(如SQL语句各关键字之间),只起间隔作用,编译程序对他们忽略。
  • 在SQL语言中,字符型数据被放在一对单引号(’ ',且必须是英文输入状态下的单引号)中,用于区别其他类型的数据。每个字符型数据都有长度,其长度是该字符型数据类型个数。(如:'home’的长度是4,'0123456’的长度是7,但每个汉字占两个字符的位置,所以’张三’的长度是4,不是2

②数字型数据

  • 就是通常所说的数字。
  • 可由0~59之间的数字、正负符号和小数点(.)组成。(如:100、3.14、-123等)
  • 数字型数据不允许北方在任何定界符之内。数字型数据除了以上的形式表示之外,还可以用浮点形式的科学计数法表示。(如:3.46E+03等)
  • 在具体的数据库系统中,数字型数据又被详细分为整数型数据、浮点型数据和货币型数据等。
  • 数字型数据也有长度。(如:100的长度为3,3.14的长度为4,包括小数点,-123的长度为3等)

③日期型数据

  • 用来表示日期和时间。(如:2021-09-01 12:00:00、2021年9月1日、01/SEP/2021、12:00:00等)

④二进制型数据

  • 在计算机中所有数据都被保存为二进制数据。(如以上的字符型数据、数字型数据和日期型数据等,在计算机中都是以二进制数据的形式存放的)
  • 此处所说的二进制数据则专指用来表示图形图像、视频动画和其他类型的文件等等。当前流行的所有数据可系统都支持二进制数据。(如:在SQL Server中提供了IMAGE数据类型,通常存放图片,在MySQL中提供了BLON和LONGBLOB数据类型,用来存放BLOBs数据等)

⑤自定义数据

  • 除了数据库系统提供的数据类型以外,用户还可以根据自己的需要自定义数据类型。SQL中的CREATE TYPE就是用于自定义数据类型的语句。
  • 不过,并非全部是数据库系统都支持CREATE TYPE语句。(如:SQL Server 2000中就不可以使用CREATE TYPE语句定义用户数据类型,从SQL Server 2008才开始支持该语句)

MySQL数据类型:
①数值类型

  • TINYINT:用于存放-128~127之间的所有正负整数。
    该类型的数据在内存中占用1个字节的空间,即使用8位二进制数表示,其中的1位二进制数表示整数值的正负号,其它7位表示整数值的长度和大小
  • TINYINT UNSIGNED:无符号的TINYINT类型,用于存放0~255之间的所有整数。
    该类型的数据在内存中占用1个字节的空间
  • SMALLINT:用于保存-32768~32767之间的所有正负整数。
    该类型的数据在内存中占用2个字节的空间
  • SMALLINT UNSIGNED:无符号的SMALLINT类型,用于存放0~65535之间的所有整数。
    该类型的数据在内存中占用2个字节的空间
  • MEDIUMINT:用于存储-8388608~8388607之间的所有正负整数。
    该类型的数据在内存中占用3个字节的空间
  • MEDIUMINT UNSIGNED:无符号的MEDIUMINT类型,用于存放0~16777215之间的所有整数。
    该类型的数据在内存中占用3个字节的空间
  • INTINTEGER:用于存放-2147483648~2147483647之间的所有正负整数。
    该类型的数据在内存中占用4个字节的空间
  • INT UNSIGNEDINTEGER UNSIGNED:无符号的INTINTEGER类型,用于存放0~4294967295之间的所有整数。
    该类型的数据在内存中占用4个字节的空间
  • BIGINE:用于存放-9223372036854775808~9223372036854775807之间的所有正负整数。
    该类型的数据在内存中占用8个字节的空间
  • BIGINT UNSIGNES:无符号的 BIGINE类型,用于存放0~18446744073709551615之间的所有整数。
    该类型的数据在内存中占用8个字节的空间
  • FLOAT:用于存放数据范围为-3.402823466E+38 ~ -1.175494351E-38,0,1.175494351E-38 ~ 3.402823466E+38之间的浮点数。
    该类型的数据在内存中占用4个字节的空间
  • DOUBLEDOUBLE PRECISIONREAL:用于存放数据范围为-1.7976931348623157E+308 ~ -2.2250738585072014E-308,0,2.2250738585072014E-308 ~ 1.7976931348623157E+308之间的浮点数。
    该类型的数据在内存中占用8个字节的空间
  • DECIMAL[(M,[D])]NUMERIC(M,D):由M(整个数字的长度,包括小数点坐标的位数和小数点右边的位数,但不包括负号和小数点)和D(小数点右边的位数)决定的数字数据类型。M默认为10,D默认为0。
    例:DECIMAL[(5,[2])]NUMERIC(5,2)的表示范围是-999.99~999.99

②字符串类型

  • CHAR(M) [BINARY]NCHAR(M) [BINARY]:用于保存定长的字符串
    M:表示字符串的最大长度,其范围是1~255,字符串中的每个字符占用1个字节的存储空间。
    BINARY:表示不分大小写字母。没有BINARY项,则默认BINARY项。
    NCHAR:表示使用默认的字符集。
    当输入的字符串个数小于M,则数据库系统将以空格补足,但在取出来时末尾的空格将自动去掉。
  • [NATIONAL] VARCHAR(M) [BINARY]:用于存放变长的字符串,占用的存储空间范围为0~255字节。
    M:表示字符串的最大长度,其范围是1~255,字符串中的每个字符占用1个字节的存储空间。
    BINARY:表示不分大小写字母。没有BINARY项,则默认BINARY项。
    当输入的字符串个数小于M,则数据库系统将以空格补足,但在取出来时末尾的空格将自动去掉。
  • TINYBLOB:用于保存不超过255个字符的二进制字符串,所占用的存储空间范围为0~255字节。
  • BLOB:用于存储二进制的长文本数据,所占用的存储空间范围为0~65535字节。
  • MEDIUMBLOB:用于存储二进制形式的中等长度的长文本数据,所占用的存储空间范围为0~16777215字节。
  • LONGBLOB:用于保存二进制形式的极大长度的长文本数据,所占用的存储空间范围为0~4294967295字节。
  • TINYTEXT:用于存储短文字字符串,所占用的存储空间范围为0~255字节。
  • TEXT:用于存储长文本数据,所占用的存储空间范围为0~65535字节。
  • MEDIUMTEXT:用于存储中等长度的长文本数据,所占用的存储空间范围为0~16777215字节。
  • LONGTEXT:用于保存极大长度的长文本数据,所占用的存储空间范围为0~4294967295字节。
    平时用的最多的是CHARVARCHAR类型,偶尔用到TEXT类型

③日期与时间类型

  • DATE:用于存储日期数据,日期数据的范围为1000-01-01至9999-12-31。
    每个DATE类型的数据占用3字节存储空间,其输入格式为“年-月-日(YYYY-MM-DD)”
  • DATETIME:用于存储混合日期和时间数据,日期和时间数据的范围为1000-01-01 00:00:00至9999-12-31 23:59:59。
    每个 DATETIME类型的数据占用8字节的存储空间,其输入格式为“年-月-日 时-分-秒(YYYY-MM-DD HH:MM:SS)”
  • TIME:用于存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值