精华内容
下载资源
问答
  • --主键create table emp (id number constraint id_pr primary key,name1 varchar(8));create table emp9 (id number,name1 varchar(8),constraint aba_pr primary key(id,name1));--外键create table emp1(id ...

    --主键

    create table emp (id number constraint id_pr primary key,name1 varchar(8));

    create table emp9 (id number,name1 varchar(8),constraint aba_pr primary key(id,name1));

    --外键

    create table emp1(id number references emp(id),name varchar(8));

    --复合外键

    create table emp0(id number,name varchar(8),constraint fk_nam1e foreign key(id,name) references emp9(id,name1));

    --主键另外写法

    create table emp2(id number,id1 number,constraint pk_id primary key(id),constraint fk_name foreign key(id1) references emp(id))

    --check 约束的写法

    create table emp4(id number check(id in(1,2,3)),name varchar(8));

    create table userInfo (

    id number(6) primary key,--主键

    name varchar2(20) not null,--非空

    sex number(1),age number(3) default 18,birthday date,address varchar2(50),email varchar2(25) unique,--唯一

    tel number(11),deptno number(2) references dept(deptno)—外键

    );

    带约束名称:

    create table userInfo (

    id number(6) constraint id_pk primary key,name varchar2(20) constraint name_nn not null,sex number(1),email varchar2(25) constraint email_uqe unique,tel number(11),deptno number(2) constraint dept_deptno_ref references dept(deptno)

    );

    列模式:

    create table userInfo (

    id number(6),name varchar2(20),email varchar2(25),deptno number(2),constraint id_pk primary key (id),--也可以两个以上,联合主键

    constraint dept_deptno_ref foreign key (deptno) references dept(deptno),constraint emial_name_uqe unique (email,name)

    );

    4、创建索引

    普通索引:create index idx_dpt_dname on dept(dname);

    联合索引:create index idx_dept_dname_deptno on dept(dname,deptno);

    --唯一索引

    create unique index idx_emp_ename on scott.emp(ename);

    --反向键索引

    create index idx_emp_rev_no on scott.emp(empno) reverse;

    --位图索引

    create bitmap index idx_emp_name on scott.emp(dname);

    --索引组织表,一定要有主键

    create table tab (

    id int primary key,name varchar2(20)

    ) organization index;

    --索引组织表的insert效率非常低

    --分区表索引

    create index idx_name on table(col) local/global;

    --索引分区

    提示:当给表创建主键或唯一键约束时,系统也会创建一个约束给该字段;同样创建索引也会占用数据库空间;索引在访问、查询的时候效率有提高,但是在修改表的时候效率就会降低;

    5、创建序列

    create sequence seq;

    select seq.nextval from dual;

    insert into tab values(sql.nextval,‘music’);

    create sequence seqtab

    start with 2 –从2开始

    increment by 3—每次加3

    nomaxvalue—没有最大值

    minvalue 1—最小值1

    nocycle—不循环

    nocache;--不缓存

    --修改序列 ,不能修改起始值

    alter sequence seqtab

    maxvalue 1000;

    6、创建同义词

    同义词,顾名思义就是说别名、或是另一个名字。

    create synonym scott_emp for scott.emp;

    create public synonym scott_dept for scott.dept;

    select * from scott_emp;

    select * from scott_dept;

    7、创建表空间

    create tablespace HooMS

    datafile 'E:\HooMS.dbf'

    size 5M

    autoextend on next 2M maxsize 10M;

    --创建用户、分配可以操作表空间

    create user hoo

    identified by hoo

    default tablespace HooMS

    temporary tablespace temp;

    --创建表空间

    create tablespace myMS

    datafile 'c:\myMS.dbf'

    size 1M

    autoextend on;

    --扩展表空间--修改表空间大小

    alter database

    datafile 'c:\myMS.dbf'

    resize 2M;

    --扩展表空间--添加数据文件

    alter tablespace myMS

    add datafile 'c:\myMS_2.dbf'

    size 1M;

    --设置dbf文件自动增长

    alter database

    datafile 'c:\myMS_2.dbf'

    autoextend on next 2M maxsize 4M;

    --表空间重命名

    alter tablespace myMS

    rename to hooMS;

    --分离表空间(脱机)

    alter tablespace hooMS

    offline temporary;

    --归档模式下脱机

    alter tablespace hooMS

    offline immediate;

    --使表空间联机

    alter tablespace hooMS online;

    --删除无数据的表空间

    drop tablespace hooMS;

    --删除带数据的表空间

    drop tablespace hooMS

    including contents;

    总结

    以上是编程之家为你收集整理的Oracle建表、索引、主键全部内容,希望文章能够帮你解决Oracle建表、索引、主键所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • --主键create table emp (id number constraint id_pr primary key ,name1 varchar(8));create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));--外键create table emp1(id ...

    --主键

    create table emp (id number constraint id_pr primary key ,name1 varchar(8));

    create table emp9 (id number ,name1 varchar(8) ,constraint aba_pr primary key(id,name1));

    --外键

    create table emp1(id number references emp(id),name varchar(8));

    --复合外键

    create table emp0(id number ,name varchar(8) ,constraint fk_nam1e foreign key(id,name) references emp9(id,name1));

    --主键另外写法

    create table emp2(id number,name varchar(8),id1 number, constraint pk_id primary key(id),constraint fk_name foreign key(id1) references emp(id))

    --check 约束的写法

    create table emp4(id number check(id in(1,2 ,3)),name varchar(8));

    不带约束名称的:

    create table userInfo (

    id number(6) primary key,--主键

    name varchar2(20) not null,--非空

    sex number(1),

    age number(3) default 18,

    birthday date,

    address varchar2(50),

    email varchar2(25) unique,--唯一

    tel number(11),

    deptno number(2) references dept(deptno)—外键

    );

    带约束名称:

    create table userInfo (

    id number(6) constraint id_pk primary key,

    name varchar2(20) constraint name_nn not null,

    sex number(1),

    age number(3) default 18,

    birthday date,

    address varchar2(50),

    email varchar2(25) constraint email_uqe unique,

    tel number(11),

    deptno number(2) constraint dept_deptno_ref references dept(deptno)

    );

    列模式:

    create table userInfo (

    id number(6),

    name varchar2(20),

    sex number(1),

    age number(3) default 18,

    birthday date,

    address varchar2(50),

    email varchar2(25),

    tel number(11),

    deptno number(2),

    constraint id_pk primary key (id),--也可以两个以上,联合主键

    constraint dept_deptno_ref foreign key (deptno) references dept(deptno),

    constraint emial_name_uqe unique (email, name)

    );

    Alter模式:

    alter table userInfo add(msn varchar2(20));

    alter table userInfo modify(msn varchar2(25));

    alter table userInfo drop(msn);

    alter table userInfo drop constraint id_pk;

    alter table userInfo add constraint id_pk primary key (id);

    3、创建视图

    create table v$_dept_view

    as

    select deptno, dname from dept;

    --重新编译视图

    alter view v$_dept_view compile;

    提示:视图一般是一个表或多个表的查询或子查询,这样可以减少代码量,但同时增加了对数据库视图的维护程度,如:某个表字段被删除或是修改,视图也要重新创建或修改,同时占用了数据库的一部分空间;视图就是一个虚拟的表格;

    4、创建索引

    普通索引:create index idx_dpt_dname on dept(dname);

    联合索引:create index idx_dept_dname_deptno on dept(dname, deptno);

    --唯一索引

    create unique index idx_emp_ename on scott.emp(ename);

    --反向键索引

    create index idx_emp_rev_no on scott.emp(empno) reverse;

    --位图索引

    create bitmap index idx_emp_name on scott.emp(dname);

    --索引组织表,一定要有主键

    create table tab (

    id int primary key,

    name varchar2(20)

    ) organization index;

    --索引组织表的insert效率非常低

    --分区表索引

    create index idx_name on table(col) local/global;

    --索引分区

    提示:当给表创建主键或唯一键约束时,系统也会创建一个约束给该字段;同样创建索引也会占用数据库空间;索引在访问、查询的时候效率有提高,但是在修改表的时候效率就会降低;

    5、创建序列

    create sequence seq;

    select seq.nextval from dual;

    insert into tab values(sql.nextval, ‘music’);

    create sequence seqtab

    start with 2 –从2开始

    increment by 3—每次加3

    nomaxvalue—没有最大值

    minvalue 1—最小值1

    nocycle—不循环

    nocache;--不缓存

    --修改序列 ,不能修改起始值

    alter sequence seqtab

    maxvalue 1000;

    6、创建同义词

    同义词,顾名思义就是说别名、或是另一个名字。

    create synonym scott_emp for scott.emp;

    create public synonym scott_dept for scott.dept;

    select * from scott_emp;

    select * from scott_dept;

    7、创建表空间

    create tablespace HooMS

    datafile 'E:\HooMS.dbf'

    size 5M

    autoextend on next 2M maxsize 10M;

    --创建用户、分配可以操作表空间

    create user hoo

    identified by hoo

    default tablespace HooMS

    temporary tablespace temp;

    --创建表空间

    create tablespace myMS

    datafile 'c:\myMS.dbf'

    size 1M

    autoextend on;

    --扩展表空间--修改表空间大小

    alter database

    datafile 'c:\myMS.dbf'

    resize 2M;

    --扩展表空间--添加数据文件

    alter tablespace myMS

    add datafile 'c:\myMS_2.dbf'

    size 1M;

    --设置dbf文件自动增长

    alter database

    datafile 'c:\myMS_2.dbf'

    autoextend on next 2M maxsize 4M;

    --表空间重命名

    alter tablespace myMS

    rename to hooMS;

    --分离表空间(脱机)

    alter tablespace hooMS

    offline temporary;

    --归档模式下脱机

    alter tablespace hooMS

    offline immediate;

    --使表空间联机

    alter tablespace hooMS online;

    --删除无数据的表空间

    drop tablespace hooMS;

    --删除带数据的表空间

    drop tablespace hooMS

    including contents;

    展开全文
  • 到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
  • 这种方式的效果alter的方式是一样的 以上内容就是来自于小编为大家分享的关于Oracle如何添加主键约束方面的知识,同时也希望小编所为大家分享的知识能够为大家起到帮助,那么如果大家还想要了解更关于其他方面的...

    工具/材料

    SQL Developer 操作方法 01

    首先打开SQL Developer软件,找一个没有主键约束的表,如下图所示

    621f517043e318286828ff481a2b336c.png 02

    然后我们新建一个查询,在界面中输入如下的约束修改语句,如下图所示,主要通过add constranint来添加约束

    921a9b08bdb7c4251a70aa161a283e15.png 03

    编写完约束添加语句以后,点击工具栏中的执行按钮,如下图所示,如果输出栏显示已变更则证明主键约束创建成果

    161014424b40ad99bac98e33fcb4e6b8.png 04

    然后我们进入STUDENT表的约束添加页中可以看到,我们加的主键约束已经添加进去了,如下图所示

    514191f62e25c87efa6acc0aad2c81f0.png 05

    另外,创建表的时候可以直接添加主键约束,如下图所示,直接在表创建语句中添加constraint即可

    38d36dd42e5c07a2902d1d2994a3e712.png 06

    表创建完以后,记得在左侧刷新数据库信息,如下图所示,因为你创建的信息不刷新的话不会更新

    9dd98697b22ae76b7aae84080363e6cd.png 07

    最后打开你所创建的表,看到你添加的主键约束已经加入进来了,这种方式的效果alter的方式是一样的

    9236f8e7287bf63a8c2a8c264fbcf2f1.png

    以上内容就是来自于小编为大家分享的关于Oracle如何添加主键约束方面的知识,同时也希望小编所为大家分享的知识能够为大家起到帮助,那么如果大家还想要了解更多关于其他方面的知识,也欢迎小编对站长进行留言,我们将会听取用户们的建议,让本站越做越好。

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。

    展开全文
  • 小知识点:dual是一伪表,是一张只有一字段,一行记录的表。不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们想得到的信息,并要通过select 完成时,就要借助一对象,这对象,就是dual;--1、创建序列...

    小知识点:dual是一个伪表,是一张只有一个字段,一行记录的表。

    不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们想得到的信息,并要通过select 完成时,就要借助一个对象,这个对象,就是dual;

    --1、创建序列

    create sequence seq_test

    increment by 1

    -- 每次加几个

    start with 1

    -- 从1开始计数

    nomaxvalue

    -- 不设置最大值

    nocycle

    -- 一直累加,不循环

    cache 10

    --缓存数量

    --2、直接使用序列

    insert into test values(SEQ_TEST.NEXTVAL,'刘备',27);

    insert into test values(SEQ_TEST.NEXTVAL,'张飞',28);

    -- id name age

    -------------------------------------

    -- 1 刘备 27

    -- 2 张飞 28

    --3、创建触发器隐式使用序列

    create trigger trg_test before insert on test

    for each row

    begin

    select seq_test.nextval into :new.id from dual;

    end;

    --使用时不再明式调用序列

    insert into test(name,age) values('刘备2',27);

    insert into test(name,age) values('张飞2',28);

    -- id name age

    -------------------------------------

    -- 1 刘备 27

    -- 2 张飞 28

    -- 3 刘备2 27

    -- 4 张飞2 28

    -- 一、语法: -- CREATE SEQUENCE 序列名 -- [INCREMENT BY n] -- [START WITH n] -- [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] -- [{CYCLE|NOCYCLE}] -- [{CACHE n|NOCACHE}]; -- -- 1、INCREMENT BY:用于定义序列的步长,如果省略,则默认为1,如果出现负值, -- 则代表Oracle序列的值是按照此步长递减的。 -- 2、START WITH :定义序列的初始值(即产生的第一个值),默认为1。 -- 3.1、MAXVALUE: 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项, -- 代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大 -- 值是10的27次方;对于递减序列,最大值是-1。 -- 3.2、MINVALUE:定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项, -- 代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方; -- 对于递增序列,最小值是1。 -- 4、CYCLE和NOCYCLE: 表示当序列生成器的值达到限制值后是否循环。 -- CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达 -- 到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。 -- 如果不循环,达到限制值后,继续产生新值就会发生错误。 -- 5、CACHE(缓冲):定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。 -- 对序列进行内存缓冲,可以改善序列的性能。 -- -- 二、修改SEQUENCE -- 必须是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence。 -- 可以alter除start值以外的所有sequence参数.如果想要改变start值, -- 必须 drop sequence 再 re-create . -- Alter sequence 的例子 -- ALTER SEQUENCE emp_sequence -- INCREMENT BY 10 -- MAXVALUE 10000 -- CYCLE -- 到10000后从头开始 -- NOCACHE ; -- 三、删除SEQUENCE: DROP SEQUENCE SEQ_test;

    总结

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • 最简单的答案就是你的语法不正确。您必须指定DISABLE。NOVALIDATE禁用主键的验证,在视图中这是默认设置,因此会自动包含;...有上创建一视图约束了很大的限制,并因为它依赖于下面的表格是不是真的值得的,因为...
  • Oracle生成唯一主键

    2020-12-14 10:40:36
    -- 初始值 为TEST_USER表创建一个主键ID字段自动增长的触发器 CREATE OR REPLACE TRIGGER TRIGGER_TEST_USER_ID BEFORE INSERT -- 添加数据前 ON TEST_USER -- 触发器作用的对象 FOR EACH ROW -- 指定创建的是行级...
  • 表格1:tid(主键)//这里没有外键表2:sid(主键)//这里也没有外键表3:TidSidiid(primary key)foreign key(Tid,Sid) references table1(tid).table2(sid)In table3 i want to make a composite foreign key or ...
  • 修改字段名称alter table xgj rename column old_name to new_name;修改字段类型alter table tablename modify (column datatype ...栗子假设表xgj,有一字段为name,数据类型char(20)。create table xgj( id nu...
  • oracle设置主键的要领:1、在建立表时定义... oracle设置主键的要领:一、什么是主键主键(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条纪录。所谓的复合主键,就是指你表的主键含有一个以...
  • oracle如何设置主键

    2021-04-30 08:18:09
    oracle设置主键的方法:1、在创建表时...oracle设置主键的方法:一、什么是主键主键(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。所谓的复合主键,就是指你表的主键含有一个以上...
  • Oracle创建主键的三种方式

    千次阅读 2021-03-05 10:11:58
    Oracle中创建主键,可以有几种方式。第一种,在建表的时候同时指定主键,SQL> create table t_pk_01 (id number, constraint pk_id...
  • Oracle主键的设置

    2021-05-01 02:59:18
    一、自增长主键 --首先建一表TEST有两种方法可以设置Oracle主键,一种是自增长主键,另一种就是生成唯一序列。一、自增长主键--首先建一表TESTcreate table TEST(NID int PRIMARY KEY,test1 varchar2(20),test2...
  • oracle主键的设置方法

    2021-05-02 03:29:52
    主键:1.主键约束: 一个表只能有一个主键约束。...3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束;主键所有字段都是not null,unique可以是null;相同点在于都能保证唯一...
  • Oracle主键和联合主键

    千次阅读 2019-04-03 08:11:59
    一条记录通常都是由多个字段所组成的。 例如,employees表的四行记录: 每一条记录都包含者若干个已经定义好的字段。同一个表的所有记录都有相同的字段定义。 对于关系表,有一个非常重要的约束,就是任意两条...
  • 需求:现在有张表中是联合主键,但是现在要改成只有一字段是主键。解决方法:先删除这张表的联合主键,再重新创建这张表的主键,sql测试脚本如下--创建测试表create table test_wxh(t_id number(16) not null,t_...
  • SYS@orcl1>create table test_index as select * from dba_tables where rowNum<30;Table created.SYS@orcl1>insert into test_index select * from dba_tables where rowNum<28;27 rows created.SYS@o....
  • Oracle】 设置主键

    千次阅读 2020-12-22 10:09:56
    请移步原文:https://www.php.cn/oracle/455511.html oracle设置主键的方法: ... 主键(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。 所谓的复合主键,就是指...
  • --查询某个表是否有唯一主键select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = ‘P‘ and au.table_name =‘表名‘--查询某个...
  • 一个表中不能有多个独立的主键,但是一个表中可以有联合主键(即多个字段组合)。 一、查看主键 SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE='P' AND TABLE_NAME='你要查看的表名' AND OWNER=USER; ...
  • Oracle 添加主键和索引

    千次阅读 2021-05-08 00:35:31
    数据的主键和索引一般情况下都是必须的,特别是表有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率;一、创建表的同时创建主键约束(1)无命名create table student (studentid int primary key...
  • Oracle数据库联合主键

    千次阅读 2018-09-13 01:25:03
    而且,一张表只能包含一个主键。 2、作用:  数据表的联合主键组合不允许重复,即同一行的数据,联合主键所属的列数据组合不能相同。  用来通过多个字段值去确定本条数据的唯一性 3、规...
  • Oracle中创建表的主键

    2021-05-06 05:56:45
    我有一sales_person_type定义如下:Oracle中创建表的主键CREATE OR REPLACE TYPE sales_person_type UNDER person_type (salesAppointments sales_person_appointments);这是被定义为这样的person_type的子类:...
  • (一)主键的定义可以唯一标识一行数据,主键由一列或列组成。这些列要求非空且唯一。(二)测试--创建一表,并设置一组合主键drop table TEST_CON;create table TEST_CON(id int,name varchar2(20),description ...
  • oracle主键和复合主键(联合主键

    千次阅读 2019-09-02 17:57:03
    性能上的一些区别 1.主键和复合主键,查询性能相同(索引高度相同,恰当的...2.主键和复合组件,(update,insert)性能不同(因为复合主键会用更的块来创建索引,所以update,insert性能低) 复合主键的原理 ...
  • 1、主键约束作用:确保表中每一行数据是唯一的,要求非空且唯一2、一张表中只能设置一个主键约束;主键约束可以由多个字段构成(联合主键或复合主键)。1、在创建表时设置主键约束CREATE TABLE table_name (column1 ...
  • Oracle创建主键自增表(sql语句实现)及触发器应用1、创建表复制代码 代码如下:createtableTest_Increase(useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/usernamevarchar2(20));2、创建自动增长序列复制代码 ...
  • #创建一自增的序列 create sequence demo_seq increment by 1 start with 1 nomaxvalue nominvalue nocache; #给表创建触发器 create or replace trigger demo_seq before insert on TEST_USER for each row...
  • ORACLE主键自增

    万次阅读 2018-08-23 19:01:14
    Oracle实现主键自增
  • 一、忽略主键(这里假设id为主键) insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(table_name(id)) */ into table_name( id, column_2, column_3 ) VALUES ( 772768211081887744, '1604110389', '6212142500000000151' ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,985
精华内容 43,194
关键字:

oracle多个主键