《SQL入门经典》笔记(第二章:建立数据库之数据类型)

“建立数据库”包括五个内容:定义数据结构、管理数据库对象、规格化过程、操作数据以及管理数据库事务


1. 什么是数据类型?

数据类型用于指定特定列所包含数据的规则,它决定了数据保存在列里的方式。SQL最基本的数据类型有字符串、数值、日期和时间(其实每个实现都有自己的数据类型集)。

2. 隐式转换/显式转换:

在一些RDBMS实现里,一些数据类型可以根据其格式自动转化为其他数据类型,这种转换被称为隐式转换,表示数据库会自动完成转换。

相对应的(不能由主机RDBMS隐式转换的)被称作显式转换。显式转换需要调用SQL函数,例如CAST或CONVERT:

SELECT CAST('12/27/1994' AS DATETIME) AS MYDATE

3. 定义长字符:

CHARACTER(n)

n为数字,定义字段里能够保存到最多字符数量。

有的SQL使用CHAR来存定长数据。

不足长度的字符使用空格填满。

不要使用定长数据类型保存不定长度的数据(如地址),浪费。

4. 变长字符串:

CHARACTER VARYING(n)

n依然是最大字符数。

常见的变长类型有:CARCHAR(ANSI标准,MS SQL 和 MYSQL使用), CARINARY(Oracle使用), VARCHAR2(Oracle使用)

5. 大对象类型:

用于保存比变长更长的数据,超过了VARCHAR长度,比如现在常见的BLOB和TEXT数据类型。BLOB是二进制大对象,适合存储二进制媒体文件(图像和MP3等);TEXT是加长版VARCHAR,常用来保存HTML输入等。在数据库里保存这种类型的数据可以实现站点的动态更新。

6. 数值型:

NUMBER, INTEGER, REAL, DECIMAL等。

SQL数值标准:

  • BIT(n)
  • BIT VARYING(n)
  • DECIMAL(p, s)(四舍五入)
  • INTEGER
  • SMALLINT
  • BIGINT
  • FLOAT(p, s)(有效位数和标度都可变并没有限制的小数数值)
  • DOUBLE PRECISION(p, s)(双精度浮点数,有效位数22-53)
  • REAL(s)(单精度浮点数,有效位数1-21)

p是字段的最大长度(有效位数);s表示小数点后位数。

SQL的一个通用实现是NUMERIC, 符合ANSI标准,最大限制为99,999.

7. 日期和时间类型:

标准SQL支持DATETIME, 包含DATE, TIME, DATETIME(包含YEAR, MONTH, DAY, HOUR, MINUTE, SECOND), TIMESTAMP

8. 直义字符串:

直义字符串就是一系列字符(例如电话号码),由用户或程序明确指定。列本身的值通常不确定,因为都是具体数值。

9. 自定义类型:

用户可以自定义数据类型(根据已有类型建立新类型):

CREATE TYPE PERSON AS OBJECT
(NAME VARCHAR(30),
SSN VARCHAR(9));

CREATE TABLE EMP_PAY
(EMPLOYEE PERSON,
SALSARY DECIMAL(10,2),
HIRE_DATE DATE;
)

10. 域:

域是能够被使用的有效数据类型的集合。创建域之后可以添加约束,约束与数据类型共同作用。

CREATE DOMAIN MONEY_D AS NUMBER(8,2)

ALTER DOMAIN MONEY_D
ADD CONSTRAINT MONEY_CON1
CHECK (VALUE>5)

CREATE TABLE EMP_PAY
(EMP_ID NUMBER(9),
EMP_NAME VARCHAR2(30),
PAY_RATE MONEY_D;
)

猜你喜欢

转载自blog.csdn.net/weixin_39965890/article/details/82526598
今日推荐