问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle 数据库如何建表?

发布网友 发布时间:2022-04-23 00:40

我来回答

2个回答

懂视网 时间:2022-04-08 00:59

必须在1–30 个字符之间 必须只能包含A–Z, a–z, 0–9, _, $, 和# 必须不能和用户定义的其他对象重名 必须不能是Oracle 的保留字 Oracle默认存储是都存为大写 数据库名只能是1~8位,datalink可以是128位,和其他一些特殊字符



CREATE TABLE语句

必须具备:     ?CREATETABLE权限     ?存储空间 必须指定:     ?表名     ?列名, 数据类型, 数据类型的大小

创建表的列的值的数据类型

技术分享


SQL> create table test1

  2  (tid number,tname varchar2(20));


表已创建。


Default值

l执行insert操作时,可以为其指定默认值 l值、表达式和SQL语句都可以作为默认值 l其他的列名或者是伪列都是非法的 l默认值的类型必须和该列的类型一致

CREATETABLE hire_dates
        (id          NUMBER(8),

         hire_date DATEDEFAULT SYSDATE);



SQL> create table test2

  2  (tid number,
  3   tname varchar2(20),
  4   birthday date default sysdate);


表已创建。


SQL> insert into test2(tid ,tname) values(1,‘Tom‘);


已创建 1 行。


SQL> select * from test2;


       TID TNAME                BIRTHDAY                                                                                                              
---------- -------------------- --------------                                                                                                        
         1 Tom                  27-3月 -12                                                                                                            


已选择 1 行。


查询结果作为新的表


使用ASsubquery 选项,将创建表和插入数据结合起来 指定的列和子查询中的列要一一对应 通过列名和默认值定义列


SQL> --创建表;显示员工的月薪,年薪和年收入
SQL> create table empincome
  2  as
  3  select empno,ename,sal,sal*12 annlsal ,sal*12+nvl(comm,0) income from emp;


表已创建。


SQL> select * from empincome;


     EMPNO ENAME        SAL    ANNLSAL     INCOME                                                                                                     
---------- ---------- ----- ---------- ----------                                                                                                     
      7369 SMITH        800       9600       9600                                                                                                     
      7499 ALLEN       1600      19200      19500                                                                                                     
      7521 WARD        1250      15000      15500                                                                                                     
      7566 JONES       2975      35700      35700                                                                                                     
      7654 MARTIN      1250      15000      16400                                                                                                     
      7698 BLAKE       2850      34200      34200                                                                                                     
      7782 CLARK       2450      29400      29400                                                                                                     
      7788 SCOTT       3000      36000      36000                                                                                                     
      7839 KING        5000      60000      60000                                                                                                     
      7844 TURNER      1500      18000      18000                                                                                                     
      7876 ADAMS       1100      13200      13200                                                                                                     


     EMPNO ENAME        SAL    ANNLSAL     INCOME                                                                                                     
---------- ---------- ----- ---------- ----------                                                                                                     
      7900 JAMES        950      11400      11400                                                                                                     
      7902 FORD        3000      36000      36000                                                                                                     
      7934 MILLER      1300      15600      15600                                                                                                     


已选择14行。




alter table语句修改表

使用ALTER TABLE语句可以:

l追加新的列 l修改现有的列 l删除一个列
SQL> --修改表
SQL> desc test2
 名称                                                                                是否为空? 类型
 ----------------------------------------------------------------------------------- -------- --------------------------------------------------------
 TID                                                                                          NUMBER
 TNAME                                                                                        VARCHAR2(20)
 BIRTHDAY                                                                                     DATE


SQL> --追加照片
SQL> alter table test2 add image blob;


表已更改。


SQL> --修改列
SQL> alter table test2 modify tname varchar2(40);


表已更改。


SQL> --删除列
SQL> alter table test2 drop column image;


表已更改。


SQL> --重命名
SQL> alter table test2 rename column tname to username;


表已更改。


SQL> desc test2
 名称                                                                                是否为空? 类型
 ----------------------------------------------------------------------------------- -------- --------------------------------------------------------
 TID                                                                                          NUMBER
 USERNAME                                                                                     VARCHAR2(40)
 BIRTHDAY                                                                                     DATE


SQL> host cls


删除表

l数据和结构都被删除 l所有正在运行的相关事物被提交 l所有相关索引被删除 lDROPTABLE 语句不能回滚,但是可以闪回

SQL> --删除表 drop table
SQL> select * from tab;


TNAME                          TABTYPE  CLUSTERID                                                                                                     
------------------------------ ------- ----------                                                                                                     
DEPT                           TABLE                                                                                                                  
EMP                            TABLE                                                                                                                  
BONUS                          TABLE                                                                                                                  
SALGRADE                       TABLE                                                                                                                  
EMP10                          TABLE                                                                                                                  
EMP20                          TABLE                                                                                                                  
TESTSAVEPOINT                  TABLE                                                                                                                  
TESTDELETE                     TABLE                                                                                                                  
TEST1                          TABLE                                                                                                                  
TEST2                          TABLE                                                                                                                  
EMPINCOME                      TABLE                                                                                                                  


已选择11行。


SQL> drop table test1;


表已删除。


SQL> select * from tab;


TNAME                          TABTYPE  CLUSTERID                                                                                                     
------------------------------ ------- ----------                                                                                                     
DEPT                           TABLE                                                                                                                  
EMP                            TABLE                                                                                                                  
BONUS                          TABLE                                                                                                                  
SALGRADE                       TABLE                                                                                                                  
EMP10                          TABLE                                                                                                                  
EMP20                          TABLE                                                                                                                  
TESTSAVEPOINT                  TABLE                                                                                                                  
TESTDELETE                     TABLE                                                                                                                  
TEST2                          TABLE                                                                                                                  
EMPINCOME                      TABLE                                                                                                                  
BIN$s9Jekm1bS3KsjXPzlTno6A==$0 TABLE               (放入了回收站)                                                                                                   


已选择11行。

查看回收站

SQL> --Oracle的回收站
SQL> --查看回收站
SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME                                                                                
---------------- ------------------------------ ------------ -------------------                                                                      
TEST1            BIN$s9Jekm1bS3KsjXPzlTno6A==$0 TABLE        2012-03-27:15:30:55                                                                      
SQL> drop table test2 purge;


表已删除。

清空回收站                                                          

SQL> --清空回收站
SQL> purge recyclebin
  2  ;


回收站已清空。


SQL> select * from tab;


TNAME                          TABTYPE  CLUSTERID                                                                                                     
------------------------------ ------- ----------                                                                                                     
DEPT                           TABLE                                                                                                                  
EMP                            TABLE                                                                                                                  
BONUS                          TABLE                                                                                                                  
SALGRADE                       TABLE                                                                                                                  
EMP10                          TABLE                                                                                                                  
EMP20                          TABLE                                                                                                                  
TESTSAVEPOINT                  TABLE                                                                                                                  
TESTDELETE                     TABLE                                                                                                                  
EMPINCOME                      TABLE                                                                                                                  


已选择9行。


通过回收站中的id来查找表


SQL> drop table EMPINCOME;


表已删除。


SQL> select * from tab;


TNAME                          TABTYPE  CLUSTERID                                                                                                     
------------------------------ ------- ----------                                                                                                     
DEPT                           TABLE                                                                                                                  
EMP                            TABLE                                                                                                                  
BONUS                          TABLE                                                                                                                  
SALGRADE                       TABLE                                                                                                                  
EMP10                          TABLE                                                                                                                  
EMP20                          TABLE                                                                                                                  
TESTSAVEPOINT                  TABLE                                                                                                                  
TESTDELETE                     TABLE                                                                                                                  
BIN$91xa7gtoQfiGlzbFlex5HQ==$0 TABLE                                                                                                                  


已选择9行。


SQL> select * from "BIN$91xa7gtoQfiGlzbFlex5HQ==$0";


     EMPNO ENAME        SAL    ANNLSAL     INCOME                                                                                                     
---------- ---------- ----- ---------- ----------                                                                                                     
      7369 SMITH        800       9600       9600                                                                                                     
      7499 ALLEN       1600      19200      19500                                                                                                     
      7521 WARD        1250      15000      15500                                                                                                     
      7566 JONES       2975      35700      35700                                                                                                     
      7654 MARTIN      1250      15000      16400                                                                                                     
      7698 BLAKE       2850      34200      34200                                                                                                     
      7782 CLARK       2450      29400      29400                                                                                                     
      7788 SCOTT       3000      36000      36000                                                                                                     
      7839 KING        5000      60000      60000                                                                                                     
      7844 TURNER      1500      18000      18000                                                                                                     
      7876 ADAMS       1100      13200      13200                                                                                                     


     EMPNO ENAME        SAL    ANNLSAL     INCOME                                                                                                     
---------- ---------- ----- ---------- ----------                                                                                                     
      7900 JAMES        950      11400      11400                                                                                                     
      7902 FORD        3000      36000      36000                                                                                                     
      7934 MILLER      1300      15600      15600                                                                                                     


已选择14行。


约束

l约束是表一级的限制 l如果存在依赖关系,约束可以防止错误的删除数据 l约束的类型: ?NOTNULL ?UNIQUE ?PRIMARYKEY ?FOREIGNKEY ?CHECK



约束规则:

用户可以自定义约束,也可以使用Oracle Server的sys_cn格式命名约束 约束创建的时机:      ?创建表的时候,同时创建约束      ?表结构创建完成后 约束可以定义在列一级,或者是表一级 通过数据字典查看约束

有关外键约束的一些知识:

     ?FOREIGNKEY:在子表中,定义了一个表级的约束      ?REFERENCES:指定表和父表中的列      ?ONDELETE CASCADE: 当删除父表时,级联删除子表记录      ?ONDELETE SET NULL: 将子表的相关依赖记录的外键值置为null


SQL> create table test3

  2  (tid number,
  3   tname varchar2(20),
  4   gender varchar2(4) check (gender in (‘男‘,‘女‘))
  5  );


表已创建。


SQL> insert into test3 values(1,‘Tom‘,‘男‘);


已创建 1 行。


SQL> insert into test3 values(2,‘Tom‘,‘啊‘);
insert into test3 values(2,‘Tom‘,‘啊‘)
*
第 1 行出现错误: 
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C005474) 


考虑所有约束创建一张表的实例演示


SQL> create table myperson
  2  (pid varchar2(18) constraint myperson_PK primary key,
  3   pname varchar2(20) constraint myperson_Name not null,
  4   email varchar2(20) constraint myperson_Email_U unique
  5                      constraint myperson_Email_N not null,
  6   gender varchar2(4) constraint myperson_Gender check (gender in (‘男‘,‘女‘)),
  7   deptno number constraint myperson_FK references dept(deptno) ON DELETE CASCADE
  8  );


表已创建。



rowid(行地址指针)

可以通过rowid来访问表中的记录



select rowid,deptno,dname,loc from dept
SQL> /


ROWID                  DEPTNO DNAME          LOC                                                                                                      
------------------ ---------- -------------- -------------                                                                                            
AAAM4oAAEAAAAAMAAA         10 ACCOUNTING     NEW YORK                                                                                                 
AAAM4oAAEAAAAAMAAB         20 RESEARCH       DALLAS                                                                                                   
AAAM4oAAEAAAAAMAAC         30 SALES          CHICAGO                                                                                                  
AAAM4oAAEAAAAAMAAD         40 OPERATIONS     BOSTON                                                                                                   


已选择4行。


SQL> spool off

Oracle学习(9):创建和管理表

标签:oracle   学习笔记   数据库   表   

热心网友 时间:2022-04-07 22:07

建表方法:

(1)在cmd里边更具需要进行创建

(2)在sql developer中进行创建,而对于在可视化界面sqldeveloper中创建时,也有两种方式,即一种是使用命令直接进行创建,另外一种是使用可视化界面按钮进行点击创建

下面就是创建的具体过程:

(1)首先我们进行数据的连接,在SQLdeveloper中进行操作,在使用sqldeveloper时需要下载sqldeveloper,点击此处可下载:下载sqldeveloper,下载安装之后,打开sqldeveloper软件,然后点击左上角的绿色的“+”,就会弹出如下图所示对话框,(在设置的时候首先需要对账户解锁,首次登陆最好使用管理员已解锁账号进行登录,登录方式与此类似)然后进行设置

(2)在连接成功之后我们能够看到如下所示界面

(3)开始创建表,我们进行创建一个有关新闻信息的简单表,其中包含信息如下所示:

(4)下面进行表的创建:左键点击要建表的数据库连接名打开,在“表(已过滤)”选项进行右键单击选择“新建表”,然后出现新建表对话框,具体步骤如下图所示:

(5)接着在弹出的对话框中进行设置表格式,具体步骤如下所示,对于需要添加字符的字段双击修改即可,然后进行保存:

(6)保存完之后,可在右侧看到如下所示表样:

(7)接这就让我们来进行数据的插入,如下代码所示:Insert into newmessage values( 1,1,1,1,'苏姑娘的新闻管理系统网站开始运营了','今天是公历2016年5月16日,星期一,苏姑娘的网站正式开始运营,其中,丰富的题材将是本网站的亮点', 'www.csdn.com含有很多好文章','苏姑娘','苏姑娘','admin',1,'2016年5月16日星期一',100,1,1);select * from newmessage; 插入后界面如下所示:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年9月走亲访友黄道吉日 2024年9月哪天适合走亲访友 2024年7月5日是走亲访友的黄道吉日吗 2024年7月5日适合走亲访友吗 交强险还需要交车船税吗 测评| 平安家易保(家财险):限商品房,自住版、房东版、租客版 女的23岁去读大学年龄是不是太大了? 请问中国石化怎么操作?23.00元买入的,能继续持有吗?中国石化的股改是怎... 600028我是21元买入的,现已经跌到15元多了,怎么办呀?赔死了!!_百度知 ... 请问600028中国石化现在还可以买吗? ...一个游戏机插在电视上耍的那种小游戏,超级玛丽,冒险岛等,你们还玩... 最难小游戏排行榜(十大最难玩的家庭小游戏) oracle11g中如何用语句创建一个数据库 在oracle数据库中创建表语句如何写? 电脑的显示屏能当电视看吗?我说的是没有主机。 电脑显示屏可以用做看电视吗 电脑显示屏可以看电视装电视吗? 电脑显示器可以用来看电视么 怎样用电脑显示器看电视?? 液晶电脑显示器能看电视节目吗? 电脑显示屏可以当电视看吗? 电脑显示器可用于放电视吗? 怎样把电脑显示屏当电视机看? 液晶电脑显示器可以当电视用吗? 电脑显示器能够连接网络电视盒收看电视吗? 台式电脑的显示器可以当电视用吗?须要加什么配置? 电脑显示器怎样连接看电视? 电脑显示器可以当电视用吗? word中怎么删除多余的空白页(前一张最后一行是表格)? 户外帐篷怎么收起来 如何收纳帐篷 word表格下面空白页怎么删除? Oracle 9i如何用SQL语句创建数据库? 怎样查看oracle中创建建表的sql语句? oracle创建数据库有几种方式? oracle数据库怎么命令创建数据库? oracle怎么用命令(sql语句)创建数据库? oracle中怎么创建数据库和表(普通表结构) 怎么给oracle数据库,创建表空间和用户 Oracle 11g 如何建立自己的数据库和表 oracle数据库建立临时表,sql语句 如何用oracle数据库中使用建表语句 增值税发票认证期限以及抵扣期限 2021年发票认证抵扣时间是多长? 增值税专用发票在认证以后,抵扣是否没有期限限制了 小漠淘宝店,地址是多少啊? 增值税专用发票认证后抵扣期多长 国服第一小漠淘宝店网址是多少啊? 增值税进项发票抵扣期限是多少天? lol小智和小漠被封杀内幕是什么? 增值税专用发票开出来多长时间内抵扣有效期? 小漠那个淘宝店是真的吗