Oracle02:Oracle的数据类型、建表建约束

1.1 Oracle数据类型

1字符类型

字符串数据类型还可以依据存储空间分为固定长度类型(CHAR) 和可变长度类型

( VARCHAR2 、NVARCHAR2)两种。

(1) CHAR类型

CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)

总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1

在Oracle中,一个中文字符占3个字节;一个英文字符或数字占一个字节

例如:char(3)  男、abc、123、a11

当存一个a时会自动补充两个空格

(2) VARCHAR2类型

VARCHAR2变长字符串,Oracle中特有,和mysql中的varchar一样,与CHAR类型不同,它不会使用空格填充至最大长度。VARCHAR2最多可以存储4000字节的信息。

在Oracle中,一个中文字符占3个字节;一个英文字符或数字占一个字节

例如:varchar2(6)  张三、123456、abcdef

当存“张”时,相当于长度变成了3

(3)NVARCHAR2类型

NVARCHAR2变长字符串这是一个包含UNICODE格式数据的变长字符串。NVARCHAR2 最多可以存储4000字节的信息。

在Oracle中UNICODE格式数据一个字符占一个字节,中英文都一样

例如:NVARCHAR2(3)  云南人、123、abc、a45

当存“云”时长度相当于变成了1

2数字类型

(1)NUMBER

NUMBER(P,S)是最常见的数字类型

P是Precision的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过38个有效数字

S是Scale的英文缩写,表示小数点数字的位数

例如:NUMBER(3)表示三位整数 123  001

NUMBER(3,1)表示有效数字三位,小数一位  21.1  35.9   42.0

(2)INTEGER类型

INTEGER是NUMBER的子类型,它等同于NUMBER (38,0) ,用来存储整数。若插

入、更新的数值有小数,则会被四舍五入

3浮点数.

(1)BINARY_ FLOAT类型

BINARY_ _FL0AT是32位、单精度浮点数字数据类型。可以支持至少6位精度每个

BINARY_ FLOAT的值需要5个字节,包括长度字节。

(2)BINARY DOUBLE

BINARY_ DOUBLE是为64位,双精度浮点数字数据类型。每个BINARY_ DOUBLE

的值需要9个字节,包括长度字节。

4日期类型

(1)DATE类型

DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。存储以下信息:世纪、年、月、日期、 小时、分钟和秒。 般占用7个字节的存储空间。

例如:2023/02/01 11:32:56

(2)TIMESTAMP类型

这是一个7字节或12字节的定宽日期时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒(毫秒),带小数秒的TIMESTAMP在小数点右边最多可以保留9位

(3)TIMESTAMP WITH TIME ZONE类型

这是TIMESTAMP类型的变种,它包含了时区偏移量的值。

(4)TIMESTAMP WITH LOCAL TIME ZONE类型

将时间数据以数据库时区进行规范化后进行存储

5L0B类型

(1)CLOB类型(Character Large Object)

二进制数据,存储单字节和多字节字符数据。最大长度4G

(2)BLOB类型(Binary Large Object)

它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,般是图像、声音、视频等文件。最大长度4G。

(3)NCLOB数据类型

存储UNICODE类型的数据,最大长度4G。

6 LONG & RAW & LONG RAW类型

(1)LONG类型

它存储变长字符串(超长字符串),最多达2G的字符数据(2GB是指2千兆字节,而不是2千兆字符)。

(2)LONG RAW类型

能存储2GB的原始二进制数据,可存放多媒体图象声音等。

(3)RAW类型

用于存储二进制或字符类型数据 ,必须制定长度 。这种数据类型存储的数据不会发生字符集转换。可存放多媒体图象声音等。

1.2 Oracle中创建表

1、Oracle表名命名规则

(1)必须以字母开头

(2)长度不能超过30个字符

(3)避免使用Oracle的关键字

(4)只能使用A-Z、a-Z、0-9、_#$

2、使用带有特殊符号的表名

Oracle在创建表时,表名会自动转换大写。Oracle 对表名大小写不敏感。

如果在定义表名时含有特殊符号,或者用小写字母来定义表名则需要在表名两侧添加双

引号。

3、在SQL Developer中图形化创建表的步骤

打开SQL Developer,使用已有用户登录,切换到My Object

在Tables上右键——NEW之后可以看到右边的内容,可以设置相应的用户,表名,表空间等

选项Columns上设置列的信息,Nullable项勾起来表示该列允许为空值

选项Keys可以设置相应的键

后面还可以设置用户自定义约束、索引、权限、触发器等等

在表上右键可以修改表结构和添加数据

Edit是修改表结构、Edit data是编辑数据,Query data是查看数据

4、在SQL Developer中使用SQL语句创建表

和mysql中创建表一样:

Create table 表名(

  字段名 数据类型(长度) 约束,

  字段名 数据类型(长度) 约束

);

Create table users(

  Id number(10) primary key,

  Name varchar2(20) not null

);

1.3 数据库中的约束

1、约束的作用

约束用于规定表中的数据规则,如果存在违反约束的数据行为,行为会被约束终止。

2、约束类型

  • 主键约束(Primay Key Constraint)

性,非空性。

  • 唯一约束(Unique Constraint )

性,可以空,但只能有一个。

  • 检查约束【用户自定义约束】( Check Constraint)

对该列数据的范围、格式的限制(如:年龄、性别等)。

  • 非空约束(Not Null Constraint )

该列不允许包含空值。

  • 外键约束(Foreign Key Constraint)

需要建立两表间的关系并引用主表的列。

3、SQL创建约束

  • 主键约束:可在建表时创建

alter table 表名 add constraint 主键名 primary key(主键字段名);

  • 外键约束:

alter table 表名 add constraint 外键名 foreign key(外键字段名) references 参考表名(参考主键字段名);

  • 唯一约束:

alter table 表名 add constraint 唯一约束名 unique( 约束字段名);

  • 默认约束:可在建表时创建

alter table 表名 Modify 字段名 数据类型(长度)  default('值);

  • 检查约束:

alter table 表名 add constraint 检查约束名 check(约束条件);

  • 添加注释:

表注释:comment on table 表名 is ‘注释名’;

列注释:comment on column 表名.列名 is ‘注释名’;

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值