Oracle用户与空间

笔记时间:2016年10月31日


  1. Oracle内事问百度外事问谷歌

表操作
  1. 创建表:
  2. create table table_name(表名)(
  3. name varcha2(30),
  4. //default sysdate 为时间字段添加默认值
  5. //获取当前日期的函数:sysdate
  6. regdate date default sysdate
  7. .....
  8. );
  9. 修改表结构:
  10. 添加字段:
  11. alter table table_name(表名) add column_name(字段名称) datatype(数据类型);
  12. 修改字段数据类型(长度或直接更换数据类型):
  13. alter table table_name(表名) modify column_name(字段名称) datatype(数据类型);
  14. 删除字段:
  15. alter table table_name(表名) drop column column_name(字段名称);
  16. 修改字段名:
  17. alter table table_name(表名) rename column column_name(原字段名) to new_column_name(新字段名)
  18. 修改表名:
  19. rename table_name(原表名) to new_table_name(新表名)
  20. 删除表:
  21. 删除表内全部数据不删除表(截断表):
  22. truncate table table_name(表名)
  23. 删除表:
  24. drop table table_name
  25. 表内数据操作:
  26. 添加数据:
  27. insert into table(表名) (column1(字段名1),column2(字段名2))(不写默认所有) values (value1(对应字段名1的值),value2(对应字段名2的值))
  28. 复制表数据:
  29. 在创建时复制:
  30. create table table_new(表名) as select *|(某些字段) from table_name(表名);
  31. 在添加时复制:
  32. insert info table_new(表名) (字段)|(默认不写全部) select (字段)|* from table_name(表名);
  33. 修改数据:
  34. 修改全部:
  35. update table_name set column(字段)=value(值);
  36. 以条件修改:
  37. update table_name set column(字段)=value(值) where column = value;
  38. 删除数据:
  39. 删除表的全部数据:
  40. delete from table_name(表名);
  41. 条件删除数据:
  42. delete from table_name(表名) where column(字段)=value(值)
  43. 约束:
  44. 约束定义规则、确保完整性。
  45. 非空约束:
  46. 创建表时设置非空约束:
  47. create table table_name(表名) (
  48. //datetype 后添加约束
  49. name varcha2(20) not null,
  50. ....
  51. )
  52. 修改表时添加非空约束:
  53. alter table table_name(表名) modiby column(字段) datetype(数据类型) not null;
  54. 修改表时取出非空约束:
  55. alter table table_name(表名) modiby column(字段) datetype(数据类型) null;
  56. 主键约束:primary key
  57. 主键约束是唯一的并且不可为空.
  58. 一张表只可以设计一个主键约束.
  59. 主键约束可以由多个字段构成(联合主键或符合主键)
  60. 创建表时设置主键约束:
  61. create table table_name(表名)(
  62. id number primary key,
  63. ...
  64. );
  65. 创建表时设置多个字段的主键约束(表级约束)
  66. create table table_name(表名)(
  67. id number,
  68. name varcha2(10),
  69. ....
  70. constraint constraint_name(约束的名字:一般以pk开头_其他字段) primary key (column1(字段),column2(字段))
  71. );
  72. 修改表时设置主键约束(可以多个可以单个):
  73. later table table_name(表名) add constraint constraint_name(约束名) primary key (column_name1(字段1),column_name2(字段2));
  74. 删除主键约束:
  75. //禁用约束
  76. alter table table_name(表名) disable constraint constraint_name(约束名);
  77. //启动约束
  78. alter table table_name(表名) enable constraint constraint_name(约束名);
  79. //删除约束1
  80. alter table table_name(表名) drop constaint constraint_name(约束名);
  81. //删除约束2
  82. alter table table_name(表名) drop primary key;(cascade可以级联删除,关联外键)
  83. 外键约束:foreign key
  84. //外键约束字段类型必须与主表的类型一致
  85. 创建表时设置外键约束:
  86. create table table_name1(从表名1) (
  87. column1(字段) datetype(数据类型) references table_name2(主表名2) (字段),
  88. ...
  89. );
  90. 创建表尾部时设置外键约束:
  91. create table table_name1(从表名1)(
  92. column1(字段) datetype(数据类型) primary key,
  93. column2(关联主表字段) datetype(数据类型),
  94. constraint fk_(约束名_字段名) foreign key (column2(从表字段名)) references table_name2(主表名2) (column2(主表关联字段))
  95. //可加级联删除
  96. no delete cascade
  97. );
  98. 修改表时设置外键约束:
  99. later table table_name1(从表名1) add constraint fk_(约束名_字段名) foreign key (column2(从表字段名)) references table_name2(主表名2) (column2(主表关联字段))
  100. //可加级联删除
  101. no delete cascade
  102. 删除外键约束:
  103. //禁用约束
  104. alter table table_name(表名) disable constraint constraint_name(约束名);
  105. //启动约束
  106. alter table table_name(表名) enable constraint constraint_name(约束名);
  107. //删除约束1
  108. alter table table_name(表名) drop constaint constraint_name(约束名);
  109. 唯一约束:unique
  110. 唯一约束允许有一个空值
  111. 唯一约束可以在每张表中有多个
  112. 创建表时设置唯一约束:
  113. create table table_name(表名)(
  114. column1(字段名) datetype(数据类型) unique,
  115. ....
  116. );
  117. 创建表时设置唯一约束:表级约束
  118. create table table_name(表名)(
  119. column1(字段名) datetype(数据类型) ,
  120. ....,
  121. constraint constraint_name(约束名) unique(column(字段名))
  122. );
  123. 修改表时设置唯一约束:
  124. alter table table_name(表名) add constraint constraint_name(约束名) unique(column(字段名));
  125. 删除唯一约束:
  126. //禁用约束
  127. alter table table_name(表名) disable constraint constraint_name(约束名);
  128. //启动约束
  129. alter table table_name(表名) enable constraint constraint_name(约束名);
  130. //删除约束
  131. alter table table_name(表名) drop constaint constraint_name(约束名);
  132. 检查约束:check
  133. 检查约束会使表中的值更具有实际意义
  134. 使赋予的值满足一定条件更有实际意义
  135. 创建表时设置检查约束:
  136. create table table_name(表名)(
  137. column_id(字段名) datetype(数据类型),
  138. column(字段名) datetype(数据类型) check(column > 0)
  139. );
  140. 创建表时设置表级检查约束:
  141. create table table_name(表名)(
  142. column_id(字段名) datetype(数据类型),
  143. column(字段名) datetype(数据类型) ,
  144. constraint constraint_name check(column > 0)
  145. );
  146. 修改表时设置检查约束:
  147. alter table table_name(表名) add constrint constrint_name(约束名) check(column > 0);
  148. 删除检查约束:
  149. //禁用约束
  150. alter table table_name(表名) disable constraint constraint_name(约束名);
  151. //启动约束
  152. alter table table_name(表名) enable constraint constraint_name(约束名);
  153. //删除约束1
  154. alter table table_name(表名) drop constaint constraint_name(约束名);
  155. 约束总结:
  156. 一张表只能有一个主键约束,主键约束可以由多个字段组成。
  157. 外键约束是涉及到多表关联.
  158. 非空约束只能设置列级,不能设置表级.
  159. 数据字典查找约束名字:
  160. desc user_constraint
  161. select constraint_name,constraint_type,table_name from user_constrint where table_name = '表名'
  162. 更改约束名称:
  163. alter table table_name(表名) rename constraint old_name(原约束名) to new_name(新约束名)