• oralce常用对象


    表是oracle数据库最基本的对象

    在oracle数据库中,存储用户数据可以使用普通表,分区表,索引表,簇表。

    sql 数据库中,存储用户数据可以

    DDL:

    1 /*
    2 建表格式
    3 create table [schema.]table_name
    4 (
    5 column_name datatype [default expr]
    6 [,……]
    7 );
    8 */
    9
    10 create table dept01
    11 (
    12 dno number(2),
    13 name varchar2(10),
    14 loc varchar2(20)default '呼和浩特'
    15 );
    16
    17
    18 insert into dept01(dno,name)
    19 values(10,'技术处');
    20
    21 select * from dept01;
    22
    23 /*
    24 增加列:
    25 alter table table_name add
    26 (
    27 column datatype [default expr]
    28 [,column datatype ……]
    29 );
    30 */
    31
    32 alter table dept01 add
    33 (
    34 eee number(4)
    35 );
    36
    37 /*
    38 修改列定义:
    39 alter table table_name modify
    40 (
    41 column datatype [default expr]
    42 [,column datatype ……]
    43 );
    44 */
    45 alter table dept01 modify
    46 (
    47 eee varchar2(15) default 'break'
    48 );
    49
    50
    51 /*
    52 删除列:
    53 alter table table_name drop (column);
    54 */
    55
    56 alter table dept01 drop column eee;
    57
    58 /*
    59 修改列名
    60 alter table table_name rename column column_name to new_column_name;
    61 */
    62
    63 alter table dept01 rename column eee to aaa;
    64
    65 /*
    66 修改表名:
    67 rename object_name to new_object_name;
    68 */
    69
    70 rename dept01 to deptt;
    71
    72
    73 select *from deptt;
    74
    75
    76
    77 /*
    78 增加注释
    79 comment on table table_name is 'text';
    80 comment on column table_name.column is 'text';
    81 */
    82
    83 comment on table deptt is '系别名';
    84
    85 comment on column deptt.name is '名字';
    86
    87 -----------------------------------------------------------
    88 /*截断表和删除表
    89 */
    90 ----截断表格式:(删除所有数据,也可以用delete 不同点是delete 可以回退,这个不可以)
    91 truncate table table_name;
    92
    93 执行如下:
    94 truncate table deptt;
    95
    96 ----删除表
    97 drop table table_name[cascade constraints] [purge];
    98 --cascade constraints用于指定级联删除从表的外部键约束,purge用于指定彻底删除表,即当删除主表时,必须指定cascade constraints子句
    99 drop table deptt;
    100
    101
    102 ----恢复被删除表
    103 --当执行drop table 语句删除表时,oracle会将删除表存放到数据库回收站,从10g开始,使用flashback table可以快速恢复被删除表
    104 --语法如下:
    105 flashback table table_name to before drop;
    106
    107 flashback table deptt to before drop;
    108
    109
    110 select * from deptt;
    111 ----------------------------------------------
    112
    113 --显示表信息
    114 user_tables
    115 --该数据字典视图用于显示当前用户的所有表信息
    116
    117 --select deptt from user_tables;
    118
    119 --user_objects该数据字典视图用于显示当前用户的所有数据库对象
    120
    121 --user_tab_comments该数据字典用于显示当前用户所有表的注释
    122
    123 --user_col_comments用于显示当前用户所有表列的注释
    124
    125
    126
    127 --------------------------------------------------约束----------------------------------------------
    128
    129 /*
    130 约束包括not null ,unique, primary key , foreign key 以及 check
    131 1) not null:用于确保列不能为null
    132
    133 2) unique(唯一约束):用于唯一地标识列的数据。默认情况下oracle会自动基于唯一约束死建立唯一索引,并且索引名与约束名完全一致
    134
    135 3) primary key(主键约束):用于唯一地标识表行的数据,当定义主键约束之后,主键约束列的列值不仅不能重复,而且也不能为null
    136
    137 4) foreign key(外部键约束):用于定义主从表之间的关系。外部键约束要定义在从表上,但主表必须具有主键约束或唯一约束。
    138 当定义了外部键约束之后,要求外部键列的数据必须在主表键列中存在,或者为null。
    139
    140 5) check(检查约束):用于强制表行数据必须要满足的条件。
    141 */
    142
    143
    144 ----------------------------------------------
    145
    146 /*
    147 定义约束
    148
    149 create table[schema.]table_name
    150 (
    151 column_name datatype [default expr] [column_constraint],
    152 ……
    153 [table_constraint][,……]
    154 );
    155 列级约束:
    156 column [constraint constraint_name] constraint_type
    157 表级约束:
    158 column,……,
    159 [constraint constraint_name] constraint_type
    160 (column, ...)
    161 */
    162
    163 --!)定义not null约束
    164 create table emp01
    165 (
    166 eno int not null,
    167 name varchar2(10) constraint nn_name not null,
    168 salary number(6,2)
    169 );
    170 --正确如下:
    171 insert into emp01
    172 values(1,'aa',1000);
    173
    174 --有错
    175 insert into emp01
    176 values(1,null,1000);
    177
    178
    179 -----------------------------------------------------
    180
    181 --2)定义unique约束
    182 create table emp02
    183 (
    184 eno int,
    185 name varchar2(10),
    186 salary number(6,2),
    187 constraint u_name unique(name)
    188 );
    189
    190 insert into emp02
    191 values(1,'scott',1000);
    192 insert into emp02
    193 values(2,'scott',1000);
    194 --不能重新插入,用于唯一标示
    195 ----------------------------------------------------
    196
    197 --3)定义primary key 约束
    198 create table dept04
    199 (
    200 dno int primary key,
    201 dname varchar2(10),
    202 loc varchar2(20)
    203 );
    204
    205 insert into dept04
    206 values(1,'sales','dallas');
    207 insert into dept04
    208 values(1,'admin','dallas');
    209 ---插入有错,主键不能重复
    210
    211 drop table dept04;
    212 -----------------------------------------------------------
    213 --4)定义foreign key约束
    214
    215 create table emp04
    216 (
    217 eno int ,
    218 name varchar2(10),
    219 salary number(6,2),
    220 dno int constraint ck_dno references dept04(dno)
    221 );
    222
    223 insert into emp04
    224 values(111,'scott',1000,2);
    225 insert into emp04
    226 values(111,'scott',1000,2);
    227 ---插入出错,违反完整约束条件
    228
    229 ---------------------------------------------------------
    230
    231 --5)定义check约束
    232
    233 create table emp05
    234 (
    235 eno int,
    236 name varchar2(10),
    237 salary number(6,2),
    238 check(salary between 1000 and 5000)
    239 );
    240
    241 insert into emp05
    242 values(1111,'scott',800);
    243 --违反条件约束
    244
    245 --------------------------------------------------------
    246
    247 --6) 定义复合约束
    248
    249 create table item
    250 (
    251 order_id number(3),
    252 item_id number(3),
    253 product varchar2(20),
    254 primary key(order_id,item_id)
    255 );
    256
    257 ---------------------维护约束----------------------------------
    258
    259 --1)增加约束
    260 /*
    261 如果增加unique, primary key, foreign key,和check约束,那必须使用alter table 语句的add子句
    262 如果增加not null约束,那么必须使用alter table语句的modify子句。
    263 */
    264
    265 alter table table add[constraint conatraint_name]
    266 constraint_type (column,...);
    267
    268 alter table table modify column
    269 [constraint constraint_name] not null;
    270
    271 ----1增加not null约束
    272 alter table emp02 modify name not null;
    273
    274 ----2增加unique约束
    275 alter table emp04 add constraint u_emp04 unique(name);
    276
    277 ----3增加primary key约束
    278 alter table dept01 add primary key(dno);
    279
    280 ----4增加foreign key约束
    281 alter table emp01 add dno number(2) references dept01(dno);
    282 -----------------------------------------------------------------------------------------------------------------------------------
    283
    284 select * from emp01;
    285
    286 select * from dept01;
    287
    288 ----5增加check约束
    289 alter table emp01 add check(salary between 800 and 5000);
    290
    291
    292 --2)修改约束名
    293 --格式如下:
    294 alter table table rename constraint old_constraint_name
    295 to new_constraint_name;
    296
    297 --3)删除约束
    298
    299 --格式如下:
    300 alter table table drop
    301 constraint constraint_name | primary key [cascade];
    302
    303 --4)禁止约束
    304
    305 --格式如下:
    306 alter table table disable constraint constraint_name [cascade];
    307
    308 --5激活约束
    309
    310 --格式如下:
    311 alter table table enable constraint constraint_name;
    312
    313 --------------------------------------------------------------------
    314
    315 --显示约束信息
    316
    317 /*
    318 1,user_constraints :存在于dd之中,可以显示当前用户的所有约束信息
    319
    320 2,user_cons_columns: 用于显示当前用户约束所对应的表列
    321
    322 */
  • 相关阅读:
    HDU 1284 思维上的水题
    Buy Tickets POJ
    K-th Number Poj
    主席树入门+博客推荐
    Greg and Array CodeForces 296C 差分数组
    三连击 P1008 洛谷 python写法
    Lost Cows POJ 2182 思维+巧法
    Bash and a Tough Math Puzzle CodeForces 914D 线段树+gcd数论
    Can you answer these queries? HDU 4027 线段树
    敌兵布阵 HDU 1166 线段树
  • 原文地址:https://www.cnblogs.com/zerocc/p/2024693.html
Copyright © 2020-2023  润新知