Oracle创建表

一、新表不存在

  1. 1、基本语法
  2. create table 表名称
  3. (
  4. id varchar2(50) primary key ,
  5. name char(200 not null,
  6. phone number(11) unique,
  7. class carchar(10),
  8. foreign key (name)
  9. )
  10. tablespace USERS ----表放在USERS表空间
  11. pctfree 10 ----保留10%空间给更新该块数据使用
  12. initrans 1 -----初始化事物槽的个数
  13. maxtrans 255 ----最大事务槽的个数
  14. storage ----存储参数
  15. (
  16. initial 64K ---区段一次扩展64k
  17. next 1M
  18. minextents 1 ---最小区段数
  19. maxextents unlimited --最大区段无限制
  20. );
  1. 2、删除表之前备份数据(创建备份表)
  2. creact table 新表名称 as select 字段1,字段2 from 旧表名称
  3. create table 新表名称 as select * from 旧表名称 where 1=2; ---复制结构,不要数据
  4. 3、添加列 alter table 表名称 add (name varchar2(100),code varchar(20));
  5. 删除列 alter table 表名称 drop (name,code)
  6. 4、表重命名 rename table 新表名称 to 旧表名称;

varcha2 ----0-4000,可变长度
char() ----0-2000,固定长度,用空格在数据的右边补到固定长度
number(6,2) ---6位整数、2位小数
number(2) --2位整数
clob ---txt文本
blob ---图片、视频、声音等转换过来的二进制对象
date ---sysdate

5、其他注意

  1. 1、添加主键约束(将stuNo作为主键)
  2. alter table stuInfo
  3. add constraint PK_stuNo primary key (stuNo)
  4. 2、添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)
  5. alter table stuInfo
  6. add constraint FK_stuNo foreign key(stuNo) references stuinfo(stuNo)
  7. 3、添加唯一约束(身份证号唯一)
  8. alter table stuInfo
  9. add constraint UQ_stuID unique(stuID)
  10. 4、添加默认约束(如果地址不填 默认为“地址不详”)
  11. alter table stuInfo
  12. add constraint DF_stuAddress default (‘地址不详’) for stuAddress
  13. 5、添加检查约束 (对年龄加以限定 15-40岁之间)
  14. alter table stuInfo
  15. add constraint CK_stuAge check (stuAge between 15 and 40)
  16. 6、添加表注释:学生信息表
  17. comment on table STUINFO
  18. is '学生信息表';
  19. 7、添加列名称:学号
  20. comment on column STUINFO.stuid
  21. is '学号';
  22. comment on column STUINFO.stuname
  23. is '学生姓名';

新表存在

---1、两个表存在字段一样,复制数据

insert into 新表 select * from 旧表;

---2、新表只有旧表的部分字段,复制部分字段数据

insert into 新表 (field1,field2,…..) select field1,field2,field3 from 旧表;

---3、全部数据与结构

select * into 新表 from 旧表;

---4、结构

select * into 新表 from 旧表 where 1=2;

以上只复制数据和结构,不能复制约束/索引等信息

如果where条件满足时,查询结果有数据,即复制表数据

如果 where 条件不成立时,查询结果为空,只复制表结构,没有任务数据

如果新表与旧表字段不一致,要说明取旧表的哪些字段,赋予新表

【附录】、完成建表语句

  1. -- Create table
  2. create table TEST_TESTING_TEST
  3. (
  4. ID VARCHAR2(50) not null,
  5. TESTING_SITE_NAME VARCHAR2(60),
  6. TESTING_SITE_CODE VARCHAR2(50),
  7. TESTING_SITE_TYPE_NAME VARCHAR2(50),
  8. TESTING_SITE_TYPE_CODE VARCHAR2(50),
  9. TESTING_SITE_ADDRESS VARCHAR2(200),
  10. TESTING_REGION_CODE VARCHAR2(20),
  11. TESTING_REGION_NAME VARCHAR2(100),
  12. CONTACT_NAME VARCHAR2(50),
  13. CONTACT_PHONE VARCHAR2(30),
  14. TESTING_DEVICE_NUM INTEGER,
  15. TESTING_WORKER_NUM INTEGER,
  16. TESTING_DAY_MAX INTEGER,
  17. LONGITUDE VARCHAR2(16),
  18. LATITUDE VARCHAR2(16),
  19. CREATE_DATETIME VARCHAR2(50) not null,
  20. CITY_CODE VARCHAR2(50),
  21. CITY_NAME VARCHAR2(50),
  22. ETL_DATETIME VARCHAR2(50) not null,
  23. UPDATE_DATETIME TIMESTAMP(6) default sysdate,
  24. DELETE_FLAG VARCHAR2(2)
  25. )
  26. tablespace TS_IA_QYHSJC_DATA
  27. pctfree 10
  28. initrans 1
  29. maxtrans 255
  30. storage
  31. (
  32. initial 64
  33. next 8
  34. minextents 1
  35. maxextents unlimited
  36. );
  37. -- Add comments to the table
  38. comment on table TEST_TESTING_TEST
  39. is '核酸检测点信息';
  40. -- Add comments to the columns
  41. comment on column TEST_TESTING_TEST.ID
  42. is '唯一标识';
  43. comment on column TEST_TESTING_TEST.TESTING_SITE_NAME
  44. is '检测点名称';
  45. comment on column TEST_TESTING_TEST.TESTING_SITE_CODE
  46. is '检测点编码';
  47. comment on column TEST_TESTING_TEST.TESTING_SITE_TYPE_NAME
  48. is '检测点类型名称';
  49. comment on column TEST_TESTING_TEST.TESTING_SITE_TYPE_CODE
  50. is '检测点类型代码';
  51. comment on column TEST_TESTING_TEST.TESTING_SITE_ADDRESS
  52. is '检测点详细地址';
  53. comment on column TEST_TESTING_TEST.TESTING_REGION_CODE
  54. is '检测点区划编码';
  55. comment on column TEST_TESTING_TEST.TESTING_REGION_NAME
  56. is '检测点区划名称';
  57. comment on column TEST_TESTING_TEST.CONTACT_NAME
  58. is '检测点联系人';
  59. comment on column TEST_TESTING_TEST.CONTACT_PHONE
  60. is '检测点联系电话';
  61. comment on column TEST_TESTING_TEST.TESTING_DEVICE_NUM
  62. is '检测设备数量';
  63. comment on column TEST_TESTING_TEST.TESTING_WORKER_NUM
  64. is '检测点工作人员数量';
  65. comment on column TEST_TESTING_TEST.TESTING_DAY_MAX
  66. is '单日最大检测量';
  67. comment on column TEST_TESTING_TEST.LONGITUDE
  68. is '检测点经度信息';
  69. comment on column TEST_TESTING_TEST.LATITUDE
  70. is '检测点纬度信息';
  71. comment on column TEST_TESTING_TEST.CREATE_DATETIME
  72. is '创建时间';
  73. comment on column TEST_TESTING_TEST.CITY_CODE
  74. is '数据推送行政区划代码';
  75. comment on column TEST_TESTING_TEST.CITY_NAME
  76. is '数据推送行政区划名称';
  77. comment on column TEST_TESTING_TEST.ETL_DATETIME
  78. is '数据推送时间';
  79. comment on column TEST_TESTING_TEST.UPDATE_DATETIME
  80. is '更新时间';
  81. comment on column TEST_TESTING_TEST.DELETE_FLAG
  82. is '删除标志';
  83. -- Create/Recreate primary, unique and foreign key constraints
  84. alter table TEST_TESTING_TEST
  85. add primary key (ID)
  86. using index
  87. tablespace TS_IA_QYHSJC_DATA
  88. pctfree 10
  89. initrans 2
  90. maxtrans 255
  91. storage
  92. (
  93. initial 64K
  94. next 1M
  95. minextents 1
  96. maxextents unlimited
  97. );
  98. alter table TEST_TESTING_TEST
  99. add constraint UNIQUE_ID_CITY_CODE unique (ID, CITY_CODE)
  100. using index
  101. tablespace TS_IA_QYHSJC_DATA
  102. pctfree 10
  103. initrans 2
  104. maxtrans 255
  105. storage
  106. (
  107. initial 64K
  108. next 1M
  109. minextents 1
  110. maxextents unlimited
  111. );
免责声明:
1.本站所有内容只做学习和交流使用。 版权归原作者所有。
2.保证站内提供的所有可下载源码资源(软件等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。
3.本站部分内容均收集于网络!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。请联系站长邮箱:admin#ibian.online(#换成@)处理!
数据库

Oracle 基本查询

2025-2-21 10:57:05

数据库

将Oracle字段时间戳更新为当前日期

2025-2-21 11:02:17

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索