回 帖 发 新 帖 刷新版面

主题:Oracle PL/SQL从入门到精通

Oracle PL/SQL从入门到精通

丁士锋  等编著













清 华 大 学 出 版 社
北  京
内 容 简 介
本书以面向应用为原则,深入浅出地介绍了Oracle平台上使用PL/SQL语言进行数据库开发的技术。通过大量的示例,详细介绍了PL/SQL的语言特性、使用技巧,同时配以两个在实际工作中的案例深入地剖析了使用PL/SQL进行Oracle开发的方方面面。
本书附带1张DVD光盘,内容为作者为本书录制的全程语音教学视频及本书所涉及的源代码。
本书分为5大篇共20章。涵盖的内容主要有PL/SQL语言基础、开发环境、变量与类型、控制语句、数据表的管理和查询、数据表的操纵、使用PL/SQL的记录与集合、各种内置函数、游标、事务处理、异常处理、子程序、包、面向对象的开发等技术点。通过示例性的代码,由浅入深,详细介绍了每一个技术要点在实际工作中的应用,对各种技术要点的应用场合进行了细致的分析。
本书适合于使用PL/SQL进行应用程序开发的人员、对软件开发有兴趣的学生及爱好者阅读和参考;对数据库管理员、企业IT运维人员也具有很强的指导作用。


本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
版权所有,侵权必究。侵权举报电话:010-62782989  13701121933

图书在版编目(CIP)数据

Oracle PL/SQL从入门到精通 / 丁士锋等编著. —北京:清华大学出版社,2012.6
ISBN 978-7-302-28103-0

Ⅰ. ①O…  Ⅱ. ①丁…  Ⅲ. ①关系数据库-数据库管理系统,Oracle  Ⅳ. ①TP311.138

中国版本图书馆CIP数据核字(2012)第030492号


责任编辑:夏兆彦
封面设计:
责任校对:徐俊伟
责任印制:

出版发行:清华大学出版社    
网    址:http://www.tup.com.cn, http://www.wqbook.com
地    址:北京清华大学学研大厦A座        邮    编:100084
社 总 机:010-62770175                邮    购:010-62786544
投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn
质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn
印 刷 者:
装 订 者:肖  米
经    销:全国新华书店
开    本:185mm×260mm     印    张:42.25       字    数:1055千字
          (附DVD 1张)
版    次:2012年6月第1版                  印    次:2012年6月第1次印刷
印    数:1~5000
定    价:25.00元
产品编号:045147-01
[b]当当地址:http://searchb.dangdang.com/?key=%20%20%20Oracle%20PL[/b]

回复列表 (共54个回复)

沙发


目    录
第1篇  PL/SQL开发入门
第1章  Oracle 11g数据库系统( 教学视频:40分钟)    2
1.1  关系型数据库系统介绍    2
1.1.1  什么是关系型数据模型    3
1.1.2  数据库系统范式    3
1.1.3  关系型数据库管理系统    4
1.1.4  使用SQL语句与数据库管理系统通信    5
1.2  初识Oracle 11g    7
1.2.1  Oracle 11g简介    8
1.2.2  Oracle 11g体系结构    9
1.2.3  如何创建数据库    10
1.2.4  比较Oracle数据库与SQL Server数据库    15
1.3  什么是PL/SQL    16
1.3.1  PL/SQL是一种语言    16
1.3.2  PL/SQL的执行环境    17
1.4  搭建PL/SQL开发环境    18
1.4.1  使用SQL*Plus    18
1.4.2  使用Oracle SQL Developer    22
1.4.3  PL/SQL Developer开发PL/SQL    27
1.4.4  Quest Toad开发PL/SQL    31
1.4.5  使用Oracle文档库    37
1.5  小结    38
第2章  PL/SQL基本概念( 教学视频:30分钟)    39
2.1  功能特点    39
2.1.1  结构化程序设计    39
2.1.2  与SQL语言整合    43
2.1.3  面向对象开发    44
2.1.4  模块化应用程序开发    45
2.1.5  提高应用程序性能    46
2.2  语言特性    47
2.2.1  PL/SQL块结构    47
2.2.2  变量和类型    52
2.2.3  程序控制语句    53
2.2.4  过程、函数与包    55
2.2.5  触发器    57
2.2.6  结构化异常处理    60
2.2.7  集合与记录    61
2.2.8  游标    63
2.2.9  动态SQL    64
2.3  编码风格    65
2.3.1  PL/SQL词法单位    65
2.3.2  缩进    70
2.3.3  标识符命名规则    71
2.3.4  大小写风格    71
2.3.5  使用工具格式化代码    72
2.4  小结    73
第3章  变量和类型( 教学视频:14分钟)    74
3.1  变量    74
3.1.1  变量的声明    74
3.1.2  变量的赋值    75
3.1.3  使用%TYPE    77
3.1.4  使用%ROWTYPE    77
3.1.5  变量的作用域和可见性    79
3.1.6  常量的定义    81
3.2  数据类型    82
3.2.1  字符类型    82
3.2.2  数字类型    88
3.2.3  日期和时间类型    91
3.2.4  布尔类型    95
3.2.5  LOB对象类型    95
3.2.6  引用类型    96
3.2.7  复合类型    98
3.2.8  用户自定义子类型    98
3.2.9  数据类型转换    100
3.3  运算符和表达式    102
3.3.1  运算符类型    102
3.3.2  运算符的优先级    106
3.3.3  表达式类型    107

板凳

3.4  小结    108
第4章  PL/SQL控制语句( 教学视频:13分钟)    109
4.1  分支控制语句    109
4.1.1  IF-THEN-ELSE语句    109
4.1.2  IF-THEN-ELSIF语句    113
4.1.3  CASE语句    114
4.1.4  搜索CASE语句    116
4.2  循环控制语句    117
4.2.1  LOOP循环    118
4.2.2  使用EXIT退出循环    118
4.2.3  使用EXIT-WHEN退出循环    119
4.2.4  使用CONTINUE继续执行循环    120
4.2.5  WHILE-LOOP循环    121
4.2.6  FOR-LOOP循环    122
4.2.7  循环语句使用建议    124
4.3  顺序控制语句    125
4.3.1  GOTO语句和标签    125
4.3.2  NULL语句    127
4.4  小结    128
第2篇  PL/SQL开发基础
第5章  管理数据表( 教学视频:33分钟)    132
5.1  创建表    132
5.1.1  数据定义语言DDL    132
5.1.2  CREATE TABLE语句    134
5.1.3  在设计器中创建表    136
5.1.4  创建表副本    138
5.2  创建约束    138
5.2.1  创建主键约束    139
5.2.2  创建外键约束    140
5.2.3  创建检查约束    144
5.2.4  查看表约束    146
5.3  修改表    148
5.3.1  修改表列    149
5.3.2  修改约束    151
5.3.3  移除数据表    154
5.3.4  在设计器中修改表    154
5.4  索引    156
5.4.1  索引简介    156
5.4.2  索引原理    157
5.4.3  创建索引    158
5.4.4  修改索引    160
5.4.5  删除索引    162
5.5  使用视图    163
5.5.1  视图简介    163
5.5.2  创建视图    164
5.5.3  修改视图    168
5.5.4  删除视图    169
5.6  小结    170
第6章  查询数据表( 教学视频:33分钟)    171
6.1  简单查询    171
6.1.1  查询表数据    171
6.1.2  指定查询条件    175
6.1.3  排序    182
6.1.4  使用函数    184
6.1.5  统计函数    186
6.1.6  分组统计    188
6.1.7  HAVING子句    190
6.1.8  使用DUAL表    191
6.1.9  ROWNUM伪列    192
6.1.10  ROWID伪列    193
6.2  复杂查询    195
6.2.1  多表连接查询    195
6.2.2  使用子查询    200
6.2.3  表集合操作    203
6.2.4  层次化查询    207
6.3  小结    210
第7章  操纵数据表( 教学视频:27分钟)    211
7.1  插入记录    211
7.1.1  数据操纵语言DML    211
7.1.2  插入单行记录    212
7.1.3  插入默认值和NULL值    213
7.1.4  使用子查询插入多行数据    214
7.1.5  使用INSERT插入多表数据    215
7.2  更新记录    217
7.2.1  更新单行记录    217

3 楼

7.2.2  使用子查询更新记录    218
7.2.3  使用MERGE合并表行    220
7.3  删除记录    221
7.3.1  删除单行记录    221
7.3.2  使用子查询删除记录    222
7.3.3  使用TRUNCATE清除表数据    223
7.4  提交和回滚记录    224
7.4.1  提交更改    224
7.4.2  回滚更改    225
7.5  使用序列    226
7.5.1  序列简介    226
7.5.2  创建数据序列    227
7.5.3  NEXTVAL和CURRVAL伪列    230
7.5.4  使用数据序列    231
7.5.5  修改序列    232
7.5.6  删除序列    233
7.6  同义词    233
7.6.1  同义词简介    234
7.6.2  创建和使用同义词    234
7.7  小结    235
第8章  记录与集合( 教学视频:32分钟)    236
8.1  记录类型    236
8.1.1  记录类型简介    236
8.1.2  定义记录类型    238
8.1.3  记录类型赋值    239
8.1.4  操纵记录类型    243
8.1.5  使用嵌套记录    246
8.2  理解集合类型    247
8.2.1  集合简介    247
8.2.2  定义索引表    248
8.2.3  操纵索引表    249
8.2.4  定义嵌套表    252
8.2.5  操纵嵌套表    253
8.2.6  数据库中的嵌套表    254
8.2.7  定义变长数组    257
8.2.8  操纵变长数组    258
8.2.9  数据库中的变长数组    259
8.2.10  选择集合类型    260
8.3  使用集合方法    261
8.3.1  使用EXISTS方法    262
8.3.2  使用COUNT方法    262
8.3.3  使用LIMIT方法    263
8.3.4  FIRST和LAST方法    264
8.3.5  PRIOR和NEXT方法    264
8.3.6  EXTEND方法    265
8.3.7  TRIM方法    267
8.3.8  DELETE方法    268
8.3.9  集合的异常处理    269
8.3.10  使用批量绑定    270
8.3.11  使用BULK COLLECT    272
8.4  小结    273
第9章  SQL内置函数( 教学视频:26分钟)    274
9.1  基本函数    274
9.1.1  字符型函数    274
9.1.2  数字型函数    278
9.1.3  日期时间函数    279
9.1.4  类型转换函数    281
9.1.5  分组函数    286
9.1.6  其他函数    286
9.2  Oracle分析函数    290
9.2.1  什么是分析函数    290
9.2.2  基本语法    292
9.2.3  分析函数结构    293
9.2.4  分析函数列表    297
9.3  分析函数使用示例    301
9.3.1  记录排名    301
9.3.2  首尾记录查询    303
9.3.3  前后排名查询    303
9.3.4  层次查询    304
9.3.5  范围统计查询    305
9.3.6  相邻记录比较    306
9.3.7  抑制重复    306
9.3.8  行列转换查询    307
9.3.9  在PL/SQL中使用分析函数    309
9.4  小结    309
第10章  使用游标( 教学视频:20分钟)    310
10.1  游标基本结构    310
10.1.1  游标简介    310

4 楼

10.1.2  游标分类    312
10.1.3  定义游标类型    313
10.1.4  打开游标    315
10.1.5  使用游标属性    316
10.1.6  提取游标数据    319
10.1.7  批量提取游标数据    320
10.1.8  关闭游标    322
10.2  操纵游标数据    322
10.2.1  LOOP循环    322
10.2.2  WHILE循环    323
10.2.3  游标FOR循环    324
10.2.4  修改游标数据    325
10.3  游标变量    327
10.3.1  游标变量简介    327
10.3.2  声明游标变量类型    328
10.3.3  定义游标变量    328
10.3.4  打开游标变量    329
10.3.5  控制游标变量    330
10.3.6  处理游标变量异常    332
10.3.7  在包中使用游标变量    334
10.3.8  游标变量的限制    335
10.4  小结    336
第11章  事务处理和锁定( 教学视频:14分钟)    338
11.1  事务处理简介    338
11.1.1  什么是事务处理    338
11.1.2  使用COMMIT提交事务    340
11.1.3  使用ROLLBACK回滚事务    341
11.1.4  使用SAVEPOINT保存点    342
11.1.5  使用SET TRANSACTION设置事务属性    343
11.2  使用锁定    345
11.2.1  理解锁定    345
11.2.2  记录锁定    347
11.2.3  表锁定    347
11.2.4  使用LOCK TABLE    348
11.3  小结    349
第12章  异常处理机制( 教学视频:19分钟)    350
12.1  理解异常处理    350
12.1.1  异常处理简介    350
12.1.2  异常处理语法    353
12.1.3  预定义异常    355
12.2  自定义异常    357
12.2.1  声明异常    358
12.2.2  作用域范围    358
12.2.3  使用EXCEPTION_INIT    360
12.2.4  使用RAISE_APPLICATION_ERROR    361
12.2.5  抛出异常    364
12.2.6  处理异常    364
12.2.7  使用SQLCODE和SQLERRM    366
12.3  异常的传递    367
12.3.1  执行时异常传递    367
12.3.2  声明时异常传递    368
12.3.3  异常处理器中的异常    369
12.3.4  重新抛出异常    370
12.3.5  异常处理准则    371
12.4  小结    376
第3篇  PL/SQL进阶编程
第13章  PL/SQL子程序( 教学视频:18分钟)    378
13.1  子程序结构    378
13.1.1  子程序简介    378
13.1.2  子程序的优点    379
13.1.3  创建过程    380
13.1.4  创建函数    382
13.1.5  RETURN语句    384
13.1.6  查看和删除子程序    385
13.2  子程序参数    387
13.2.1  形参与实参    388
13.2.2  参数模式    389
13.2.3  形式参数的约束    391
13.2.4  参数传递方式    393
13.2.5  参数默认值    394
13.2.6  使用NOCOPY编译提示    395
13.3  子程序进阶技术    397
13.3.1  在SQL中调用子程序    397
13.3.2  嵌套子程序    398
13.3.3  子程序的前向声明    401
13.3.4  重载子程序    402

5 楼

13.3.5  子程序自治事务    403
13.3.6  递归调用子程序    405
13.3.7  理解子程序依赖性    407
13.3.8  子程序权限管理    410
13.4  小结    412
第14章  包( 教学视频:10分钟)    413
14.1  理解PL/SQL包    413
14.1.1  什么是包    413
14.1.2  包的优点    415
14.1.3  定义包规范    415
14.1.4  定义包体    417
14.1.5  调用包组件    419
14.1.6  编译和调试包    421
14.1.7  查看包的源代码    423
14.2  包的进阶技术    424
14.2.1  包重载    425
14.2.2  包初始化    428
14.2.3  包的纯度级别    430
14.2.4  包权限设置    432
14.2.5  在包中使用游标    433
14.3  管理数据库中的包    435
14.3.1  查看和删除包    435
14.3.2  检查包的依赖性    437
14.4  使用系统包    440
14.4.1  使用DBMS_OUTPUT包    440
14.4.2  使用DBMS_PIPE包    444
14.4.3  使用DBMS_ALTER包    450
14.4.4  使用DBMS_JOB包    453
14.5  小结    458
第15章  触发器( 教学视频:23分钟)    459
15.1  理解触发器    459
15.1.1  触发器简介    459
15.1.2  定义触发器    461
15.1.3  触发器的分类    462
15.2  DML触发器    463
15.2.1  触发器的执行顺序    463
15.2.2  定义DML触发器    464
15.2.3  调试触发器    467
15.2.4  使用语句触发器    468
15.2.5  使用OLD和NEW谓词    471
15.2.6  使用REFERENCING子句    473
15.2.7  使用WHEN子句    473
15.2.8  使用条件谓词    474
15.2.9  控制触发顺序    476
15.2.10  触发器限制    477
15.2.11  使用自治事务    478
15.3  替代触发器    480
15.3.1  替代触发器的作用    480
15.3.2  定义替代触发器    481
15.3.3  UPDATE与DELETE替代触发器    483
15.3.4  嵌套表替代触发器    486
15.4  系统事件触发器    488
15.4.1  定义系统触发器    488
15.4.2  触发器事件列表    490
15.4.3  触发器属性列表    492
15.4.4  属性函数使用示例    494
15.4.5  定义SERVERERROR触发器    495
15.4.6  触发器的事务与约束    498
15.5  触发器的管理    498
15.5.1  查看触发器源代码    498
15.5.2  删除和禁用触发器    499
15.5.3  名称与权限的管理    500
15.6  小结    502
第16章  动态SQL语句( 教学视频:17分钟)    503
16.1  理解动态SQL语句    503
16.1.1  动态SQL语句基础    503
16.1.2  动态SQL语句使用时机    504
16.1.3  本地动态SQL    506
16.2  使用EXECUTE IMMEDIATE    507
16.2.1  EXECUTE IMMEDIATE语法    507
16.2.2  执行SQL语句和PL/SQL语句块    508
16.2.3  使用绑定变量    510
16.2.4  使用RETURNING INTO子句    512
16.2.5  执行单行查询    513
16.2.6  指定参数模式    513
16.3  多行查询语句    514
16.3.1  使用OPEN-FOR语句    515
16.3.2  使用FETCH语句    516
16.3.3  关闭游标变量    517

6 楼

16.4  使用批量绑定    518
16.4.1  批量EXECUTE IMMEDIATE语法    518
16.4.2  使用批量FETCH语句    520
16.4.3  使用批量FORALL语句    521
16.5  动态SQL的使用建议    522
16.5.1  用绑定变量改善性能    522
16.5.2  使用重复占位符    523
16.5.3  使用调用者权限    524
16.5.4  传递NULL参数    525
16.5.5  动态SQL异常处理    526
16.6  小结    527
第4篇  PL/SQL高级编程
第17章  面向对象编程( 教学视频:24分钟)    530
17.1  对象基础    530
17.1.1  面向对象简介    530
17.1.2  什么是对象类型    531
17.1.3  PL/SQL中对象的组成结构    532
17.2  定义对象类型    533
17.2.1  定义对象类型    534
17.2.2  定义对象体    535
17.2.3  定义属性    536
17.2.4  定义方法    538
17.2.5  使用SELF关键字    539
17.2.6  定义构造函数    541
17.2.7  定义MAP和ORDER方法    542
17.2.8  使用对象类型    545
17.2.9  使用嵌套对象类型    547
17.2.10  对象继承    550
17.2.11  方法重载    552
17.3  管理对象表    553
17.3.1  定义对象表    553
17.3.2  插入对象表    554
17.3.3  检索对象表    556
17.3.4  更新对象表    560
17.3.5  删除对象表    561
17.3.6  创建对象列    562
17.3.7  使用对象视图    563
17.4  管理对象类型    565
17.4.1  查看对象类型    565
17.4.2  修改对象类型    567
17.5  小结    569
第18章  PL/SQL性能优化建议( 教学视频:14分钟)    570
18.1  了解PL/SQL程序性能    570
18.1.1  影响性能常见原因    570
18.1.2  使用DBMS_PROFILER包    573
18.1.3  使用DBMS_TRACE包    578
18.2  PL/SQL性能优化技巧    583
18.2.1  理解查询执行计划    583
18.2.2  连接查询的表顺序    586
18.2.3  指定WHERE条件顺序    586
18.2.4  避免使用*符号    587
18.2.5  使用DECODE函数    587
18.2.6  使用WHERE而非HAVING    588
18.2.7  使用UNION 而非OR    589
18.2.8  使用EXISTS而非IN    590
18.2.9  避免低效的PL/SQL流程控制语句    591
18.2.10  避免隐式类型的转换    592
18.3  小结    593
第5篇  PL/SQL案例实战
第19章  企业IC芯片欠料计算程序( 教学视频:28分钟)    596
19.1  系统设计    596
19.1.1  程序需求简介    596
19.1.2  数据表ER关系图    597
19.1.3  系统总体流程    599
19.1.4  示例环境的搭建    600
19.2  系统编码实现    601
19.2.1  创建包规范    601
19.2.2  初始化数据    603
19.2.3  获取IC芯片需求量    605
19.2.4  IC物料检查函数    606
19.2.5  获取已走货IC芯片数量    607
19.2.6  获取销售订单数量    608
19.2.7  计算企业IC芯片需求量    608

7 楼

19.2.8  预备下次计算数据    611
19.2.9  定义调用主程序    614
19.3  调试和部署应用程序    614
19.3.1  编译应用程序    614
19.3.2  调试应用程序    615
19.3.3  查看程序结果    617
19.3.4  部署到生产服务器    618
19.4  小结    619
第20章  PL/SQL邮件发送程序( 教学视频:33分钟)    620
20.1  系统设计    620
20.1.1  程序需求简介    620
20.1.2  使用UTL_ SMTP发送电子邮件    621
20.1.3  系统总体流程    624
20.1.4  示例环境的搭建    625
20.2  系统编码实现    627
20.2.1  认识MIME类型    627
20.2.2  实现MIME类型邮件发送    628
20.2.3  定义包规范    631
20.2.4  邮件初始化函数xm_init    634
20.2.5  发送并关闭连接xm_close    639
20.2.6  发送HTML邮件    639
20.2.7  发送邮件附件    641
20.2.8  发送Excel附件内容    643
20.2.9  写入工作簿wb_header    645
20.2.10  写入工作表xm_worksheet    646
20.2.11  写入表格行xm_ws_row    647
20.2.12  写入工作表尾信息    648
20.2.13  执行SQL语句写入工作表    650
20.3  编译和部署应用程序    652
20.3.1  编译与调试应用程序    652
20.3.2  验证测试结果    653
20.3.3  部署到生产服务器    655
20.4  小结    655

8 楼

第5章  管理数据表
数据库表是Oracle数据库存储中基本但重要的部分,许多其他的数据库对象,例如索引、视图都以表为基础。在开发人员使用关系型数据库管理数据时,实际上就是通过创建一个或多个表来实现存储、约束等功能。
5.1  创  建  表
表是Oracle存储数据的基本单元,表与现实世界中的对象具有对应关系,在设计数据表时,一般使用ER图来构造实体关系模型,ER图通常是对现实世界中的业务进行的建模。这些ER图在变成数据库对象时,最终要转换成表。
数据库表又可称为二维数据集合,表的结构由列(或字段)进行定义,列包含类型和一些约束信息,表行是这些列的数据,表中的行又称为记录,由一条记录来描述一个实例。

9 楼

5.1.1  数据定义语言DDL
用来创建表的SQL语言称为数据定义语言DDL,DDL的英文全称是Data Definition Language,主要用来操纵Oracle数据库的结构。可以使用DDL语句定义、修改和删除在Oracle中存在的每种类型的对象。
数据定义语言主要由CREATE、ALTER与DROP 3个语句组成。
1.CREATE语句
CREATE语句用来创建数据库对象,比如要创建数据库、数据表、索引或子程序、触发器等,根据创建的数据库对象的类型的不同,具有多种不同的参数。
例如可以使用CREATE TABLE创建一个数据库表,在下一小节会详细介绍创建的语法,或者可以使用CREATE DATABASE创建数据库,一些常见的使用CREATE语句的创建语法如下所示。

CREATE INDEX:创建数据表索引。 
CREATE PROCEDURE:创建存储过程。 
CREATE FUNCTION:创建用户函数。 
CREATE VIEW:创建视图。 
CREATE TRIGGER:创建触发器。

例如要创建一个公司的员工记录表,可以使用CREATE TABLE,建表示例如代码5.1所示。
代码5.1  使用DDL语句创建数据表
CREATE TABLE company_emp
(
  empno     NUMBER(4) PRIMARY KEY NOT NULL,     --员工工号
  ename     VARCHAR2(10 BYTE),                       --员工名称
  job       VARCHAR2(9 BYTE),                         --员工职位
  mgr       NUMBER(4),                                 --所属经理
  hiredate  DATE,                                       --雇佣日期
  sal       NUMBER(7,2),                                --员工工资
  comm      NUMBER(7,2),                              --员工描述
  deptno    NUMBER(2)                                  --部门编码
)

从代码中可以看到,在CREATE TABLE语句中,定义了数据表的表列及Oracle数据表字段类型,该语句执行后,就可以在当前用户方案下面看到company_emp表。
2.ALTER语句
ALTER语句用来修改数据库对象,比如可以修改表、视图、索引、触发器的定义等,由于ALTER只需要修改数据库对象的局部,因此不需要定义完整的数据库对象参数,可以根据要修改的幅度来决定使用的参数,例如要向前面创建的表company_emp中添加一个名为description的列,可以使用如下的代码:

ALTER TABLE company_emp ADD description VARCHAR2(200) NULL;
--向company_emp添加表列

上述代码中使用ALTER TABLE语句,向company_emp表添加了一个名为description的字段,该字段的类型为VARCHAR2(200),允许NULL值。
下面的代码同样使用ALTER TABLE语句来移除description字段:

ALTER TABLE company_emp DROP COLUMN description;   

上述代码中,使用了ALTER TABLE中的DROP COLUMN来移除description字段。
3.DROP语句
DROP语句主要用来移除数据库对象,比如可以移除表、视图、索引等数据库对象,只需要在DROP语句后面输入要移除的对象名称即可,是DDL语法中最简单的语句。
例如要移除company_emp这个数据表,可以使用如下的DROP语法: 

DROP TABLE company_emp;  --移除company_emp表

所有的DDL语句的一个必须牢记的特色就是每一条DDL语句都包含了一个隐式提交的事务语句,因此只要这些命令执行,系统就会向数据库提交更改,所有具有访问数据库对象权限的用户马上就可以看到DDL语句的执行效果。
注意:在PL/SQL语句块中,不能直接使用DDL语句,可以通过动态SQL语句的形式来执行SQL命令。

10 楼

5.1.2  CREATE TABLE语句
CREATE TABLE语句用来创建Oracle数据库表,创建数据库表最简单的形式是为CREATE TABLE语句指定一个表名称,然后是括号包含起来的字段名称和字段类型。例如要创建一个简单的名为workcenter的表,可以使用如下的语法,如代码5.2所示。
代码5.2  简单的CREATE TABLE用法
--创建表workcenter
CREATE TABLE workcenter            --指定表名称
(  
   id int,                            --添加编号字段
   name varchar2(200)               --添加名称字段
)

默认情况下,CREATE TABLE会将表创建在当前的方案下,如果想在其他方案中创建数据表,那么可以使用“方案名.表名称”这样的语法。例如如果想在HR方案中创建workcenter数据表,可以使用如下的语法:

--创建表workcenter
CREATE TABLE hr.workcenter       --指定表名称
(  
   id int,                          --添加编号字段
   name varchar2(200)              --添加名称字段
)

如果是使用scott用户登录,默认情况下是不能在hr方案之下创建表的,因此上述语句在执行时Oracle会触发ORA-01031异常。提示权限不足。Toad中的提示如图5.1所示。

我来回复

您尚未登录,请登录后再回复。点此登录或注册