Sql 表属性数据类型
我需要一个帮助来选择SQL表中的数据类型。 属性需要取4个选项,例如,我想用属性Sql 表属性数据类型,sql,oracle,Sql,Oracle,我需要一个帮助来选择SQL表中的数据类型。 属性需要取4个选项,例如,我想用属性status创建表,但我不知道它必须是什么数据类型,以及如何实现choose的4个选项 CREATE TABLE status ( USERNAME type_of_data (options: offline, online, away, busy) ); 我无法为每个选项再创建4个表。 有可能吗?如果没有,那更好的办法是什么 Thx您可以使用oracle中的VARCHAR或VARCHAR2数据类型来存储状
status
创建表,但我不知道它必须是什么数据类型,以及如何实现choose的4个选项
CREATE TABLE status (
USERNAME type_of_data (options: offline, online, away, busy)
);
我无法为每个选项再创建4个表。有可能吗?如果没有,那更好的办法是什么
Thx您可以使用
oracle
中的VARCHAR
或VARCHAR2
数据类型来存储状态列
据
VARCHAR2数据类型存储可变长度的字符串。什么时候
创建具有VARCHAR2列的表时,指定最大值
字符串长度(以字节或字符为单位)介于1和4000字节之间
VARCHAR2列
您可以为Status定义一个表,该表有两列(ID(int)、Status(VARCHAR(100))用(脱机、联机、离开、忙碌)填充您的表行,以便在其他表中将它们的ID用作外键 它将是:
CREATE TABLE [dbo].[TBL_STATUS](
[ID] [int] IDENTITY(1,1) NOT NULL,
[STATUS] [nvarchar](100) NOT NULL,
CONSTRAINT [PK_TBL_STATUS] PRIMARY KEY CLUSTERED
(
[ID] ASC
)
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[TBL_USER](
[ID] [int] IDENTITY(1,1) NOT NULL,
[USER_ID] [int] NULL,
[USERNAME] [nvarchar](200) NULL,
[STATUS_ID] [int] NULL,
CONSTRAINT [PK_TBL_USER] PRIMARY KEY CLUSTERED
(
[ID] ASC
)
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TBL_USER] WITH CHECK ADD CONSTRAINT [FK_TBL_USER_TBL_STATUS] FOREIGN KEY([STATUS_ID])
REFERENCES [dbo].[TBL_STATUS] ([ID])
GO
ALTER TABLE [dbo].[TBL_USER] CHECK CONSTRAINT [FK_TBL_USER_TBL_STATUS]
GO
似乎您需要一个检查约束:
CREATE TABLE status
(
USERNAME varchar(100) not null,
type_of_data varchar(20) not null,
constraint check_type check (type_of_data in ('offline', 'online', 'away', 'busy'))
);
上面创建了一个包含两列的表。一列名为username
,没有任何限制(强制的除外),另一列名为type\u of_data
您可以在数据的类型'offline'
,'online'
,'away'
和'busy'
您还应该找到该表的主键。可能是
username
,或者您需要向其中添加一个identity
列来生成主键。我不知道属性是什么意思。在您发布的代码中,您正在创建一个名为status
的数据库表,其中包含一个名为USERNAM的列E
并且该值必须是“脱机”、“联机”、“外出”和“忙碌”中的一个。那么,你是在问什么是列USERNAME
的合适数据类型,它将强制它只接受四个可用选项中的一个?这就是我的意思。x,我想这就是我需要的,使用约束检查如何准确地做到这一点?我想找到一些关于状态的信息,但没有找到任何内容,给出的第一个示例通过@a_horse_和_no_name,也很好,但我必须在不使用check的情况下执行,因此我认为您的示例非常符合我的需要。Thx