在sql中怎样设置主键语法
答案:4 悬赏:60 手机版
解决时间 2021-11-08 13:29
- 提问者网友:萌卜娃娃
- 2021-11-07 17:19
在sql中怎样设置主键语法
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-11-07 17:28
创建表
--------------------------------------------------------------------------------
CREATE TABLE TABLE_NAME(
column1 DATATYPE [NOT NULL] [PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...
[constraint <约束名> 约束类型 (要约束的字段名)... ]
);
说明:
TABLE_NAME --表名.
column1,column2 --列的名称 不能取关键字
DATATYPE --是Oracle的数据类型,可以查看附录.
NOT NULL /NULL --不可以/可以允许资料有空的.NULL一般省略.
PRIMARY KEY --是本表的主键。
CONSTRAINT --是对表里的字段添加约束.(约束类型有 Check,Unique,Primary key,not null,Foreign key)。
示例:
CREATE TABLE student(
s_id number(8) PRIMARY KEY,
s_name varchar2(20) NOT NULL,
s_sex varchar2(8) ,
clsid number(8) ,
CONSTRAINT u_1 UNIQUE(s_name),
CONSTRAINT c_1 CHECK (s_sex in ('MALE','FEMALE'))
);
表级约束
如 设置 两列不能同时为空
ALTER TABLE tablename ADD CONSTRAINT check_name CHECK (col1 is not null or col2 is not null) ;
复制表
--------------------------------------------------------------------------------
CREATE TABLE TABLE as
(需注意的是复制表不能复制表的约束);
示例:
CREATE TABLE test AS SELECT * FROM emp;
会将表emp的数据一并复制到test中,但约束没有复制.
如果只复制表的结构不复制表的数据则:
CREATE TABLE test as (SELECt * FROM emp WHERe 1=2);
或者
CREATE TABLE test as (SELECt * FROM emp WHERe FALSE);
--------------------------------------------------------------------------------
CREATE TABLE TABLE_NAME(
column1 DATATYPE [NOT NULL] [PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...
[constraint <约束名> 约束类型 (要约束的字段名)... ]
);
说明:
TABLE_NAME --表名.
column1,column2 --列的名称 不能取关键字
DATATYPE --是Oracle的数据类型,可以查看附录.
NOT NULL /NULL --不可以/可以允许资料有空的.NULL一般省略.
PRIMARY KEY --是本表的主键。
CONSTRAINT --是对表里的字段添加约束.(约束类型有 Check,Unique,Primary key,not null,Foreign key)。
示例:
CREATE TABLE student(
s_id number(8) PRIMARY KEY,
s_name varchar2(20) NOT NULL,
s_sex varchar2(8) ,
clsid number(8) ,
CONSTRAINT u_1 UNIQUE(s_name),
CONSTRAINT c_1 CHECK (s_sex in ('MALE','FEMALE'))
);
表级约束
如 设置 两列不能同时为空
ALTER TABLE tablename ADD CONSTRAINT check_name CHECK (col1 is not null or col2 is not null) ;
复制表
--------------------------------------------------------------------------------
CREATE TABLE TABLE as
(需注意的是复制表不能复制表的约束);
示例:
CREATE TABLE test AS SELECT * FROM emp;
会将表emp的数据一并复制到test中,但约束没有复制.
如果只复制表的结构不复制表的数据则:
CREATE TABLE test as (SELECt * FROM emp WHERe 1=2);
或者
CREATE TABLE test as (SELECt * FROM emp WHERe FALSE);
全部回答
- 1楼网友:深街酒徒
- 2021-11-07 21:02
如果只是简单需要主键约束,其实可以直接写在你要设置字段后面就可以了。
- 2楼网友:低血压的长颈鹿
- 2021-11-07 20:00
CREATE TABLE table_name
(
column1 data_type,
column2 data_type,
column3 data_type
)
CREATE UNIQUE INDEX PK_ table_name ON table_name
(column1 )
ALTER TABLE table_name ADD (
CONSTRAINT PK_table_name
PRIMARY KEY
(column1 )
USING INDEX PK_table_name
ENABLE VALIDATE);
(
column1 data_type,
column2 data_type,
column3 data_type
)
CREATE UNIQUE INDEX PK_ table_name ON table_name
(column1 )
ALTER TABLE table_name ADD (
CONSTRAINT PK_table_name
PRIMARY KEY
(column1 )
USING INDEX PK_table_name
ENABLE VALIDATE);
- 3楼网友:佘樂
- 2021-11-07 18:38
create table table_name
(
column1 data_type,
column2 data_type,
column3 data_type
......
primary key (column_name1,column_name2...)
)
(
column1 data_type,
column2 data_type,
column3 data_type
......
primary key (column_name1,column_name2...)
)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯