黑马程序员c语言教程:oracle简介

上传人:xiao****1972 文档编号:84791130 上传时间:2019-03-04 格式:DOCX 页数:6 大小:45.04KB
返回 下载 相关 举报
黑马程序员c语言教程:oracle简介_第1页
第1页 / 共6页
黑马程序员c语言教程:oracle简介_第2页
第2页 / 共6页
黑马程序员c语言教程:oracle简介_第3页
第3页 / 共6页
黑马程序员c语言教程:oracle简介_第4页
第4页 / 共6页
黑马程序员c语言教程:oracle简介_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《黑马程序员c语言教程:oracle简介》由会员分享,可在线阅读,更多相关《黑马程序员c语言教程:oracle简介(6页珍藏版)》请在金锄头文库上搜索。

1、9. 通过子查询建表 通过子查询建表的例子 SQLCREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date FROM s_emp WHERE dept_id = 41; SQL CREATE TABLE A as select * from B where 1=2; 只要表的结构. 10. 用子查询建表的注意事项 可以关连多个表及用集合函数生成新表,注意选择出来的字段必须有合法的字段名称,且不能重复。 用子查询方式建立的表,只有非空NOT NULL的约束条件能继承过来, 其它的约束条件和默认值都没有继承过来. 根据需要,可以

2、用alter table add constraint 再建立其它的约束条件,如primary key等. 11. Foreign Key的可选参数ON DELETE CASCADE 在创建Foreign Key时可以加可选参数: ON DELETE CASCADE它的含义是如果删除外键主表里的内容,子表里相关的内容将一起被删除. 如果没有ON DELETE CASCADE参数,子表里有内容,父表里的主关键字记录不能被删除掉. 12. 如果数据库表里有不满足的记录存在,建立约束条件将不会成功. 13. 给表创建和删除同义词的例子 SQL CREATE SYNONYM d_sum 2 FOR d

3、ept_sum_vu; SQL CREATE PUBLIC SYNONYM s_dept 2 FOR alice.s_dept; SQL DROP SYNONYM s_dept; 十、ORACLE里的数据字典 1. 什么是数据字典?ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库 的产生而产生, 随着数据库的变化而变化, 体现为sys用户下所有的一些表和视图. 2. 数据字典里存了以下内容: 用户信息 用户的权限信息 所有数据对象信息表的约束条件统计分析数据库的视图等 不能手工修改数据字典里的信息. 16 J2EE zxw 3. 常用的数据字典 Dictionary 存放所有数据

4、表,视图,同义词名称和解释 Dict_columns 数据字典里字段名称的和解释 Dba_users 用户 Dba_tablespaces 表空间 Dba_data_files 数据库的文件 Dba_free_space 空闲表空间 Dba_rollback_segs 回滚段 User_objects 数据对象 User_constraints 约束条件 User_sequences 序列号 User_views 视图 User_indexes 索引 User_synonyms 同义词 Session_roles 用户的角色 User_role_privs 用户的角色权限 User_sys_p

5、rivs 用户的系统权限 User_tab_privs 用户的表级权限 V$session 实时用户情况 V$sysstat 实时系统统计 V$sesstat 实时用户统计 V$sgastat 实时SGA使用 V$locked_object 实时锁 V$controlfile 控制文件 V$logfile 日志文件 V$parameter 参数文件 4. 数据字典的分类 数据字典四大类别 User_ 用户下所有数据库对象 All_ 用户权限范围内所有的数据库对象 Dba_ 所有的数据库对象 V$Content$nbsp; 统计分析数据库的视图 赋于oem_monitor权限非DBA用户也可查询

6、V$*视图 5. 查询数据字典 SQL select * from dictionary where instr(comments,index)0; SQL select constraint_name, constraint_type, 2 search_condition, r_constraint_name 3 from user_constraints 4 where table_name = &table_name; 十一. 控制数据 1 、INSERT(往数据表里插入记录的语句) SQL insert into 表名(字段名1, 字段名2, ) values ( 值1, 值2, )

7、; SQL insert into 表名(字段名1, 字段名2, ) select (字段名1, 字段名2, ) from 另外的表名 where 条件; 可以用&标记变量的方法多次输入记录 快速插入数据的方法, 一般用于大于128M的数据转移 SQL insert /*+ append */ into 表名 select * from 另外的用户名 .另外的表名 WHERE 条件; SQL commit; 注意事项: 用INSERT /*+ APPEND */ 的方法会对target_tablename产生级别为6的独占锁, 如果运行此命令时还有对target_tablename的DML操作

8、会排队在它后面, 对OLTP系统在用的表操作是不合适的。 17 J2EE zxw 2. 插入字符串类型的字段的注意事项: 字符串类型的字段值必须用单引号括起来, 例如: GOOD DAY 如果字段值里包含单引号 需要进行字符串转换, 我们把它替换成两个 单引号 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验 标记是NULL, user 标明当前用户 日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒 用字符串转换成日期型函数TO_DATE(2001-08-01,YYYY-MM-DD) TO_DATE( )还有很多种日期格式, 可以参看ORACLE DOC.

9、 年-月-日 小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS NSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型, 方法借用ORACLE里自带的DBMS_LOB程序包. 3、UPDATE (修改数据表里记录的语句) SQL UPDATE 表名 SET 字段名1=值1, 字段名2=值2, WHERE 条件; 如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验; 值N超过定义的长度会出错, 最好在插入前进行长度校验. 新功能,可以修改子查询后的结果集 例子:SQL update

10、 (select * from s_dept) set id=50 where id=60; 4、DELETE (删除数据表里记录的语句) SQL DELETE FROM 表名 WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些 被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空间 SQL TRUNCATE TABLE 表名; 此操作不可回退. 5、 SQL语句的分类 数据定义语言(DDL):create、alter、drop(创建、修改结构、删除)(其他:rename)

11、 数据操纵语言(DML):insert、delete、select、update(增、删、查、改)(其他:truncate) 数据控制语言(DCL):grant、revoke(授权、回收)、set role 事务控制:commit、rollback、savepoint(其他:lock table、set constraint、set transaction) 审计控制:audit、noaudit 系统控制:alter system 会话控制:alter session 其他语句:comment(添加注释)、explain plan、analyze、validate、call 6、ORACLE里

12、事务控制 Commit 提交事务 Rollback 回退事务 Savepoint 设置断点, 在事务中标记位置, 事务结束, 断点释放 事务结束的情况遇到commit或者rollback遇到DDL和DCL语句发现错误,如死锁用户退出 SQL*PLUS系统重启或崩溃 7. DML操作的注意事项 18 J2EE zxw 以上SQL语句对表都加上了行级锁, 确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效, 否则改变不一定写入数据库里.行级锁也未能得到释放. 如果想撤回这些操作, 可以用命令 ROLLBACK 复原. 在运行INSERT, DELETE 和 UPDATE 语句前最好估算一下可能操作的记录范围, 应该把它限定在较小 (一万条记录) 范围内,. 否则ORACLE处理这个事物用到很大的回退段. 程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些SQL语句分段分次完成, 其间加上COMMIT 确认事物处理. 太过频繁的commit不好

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号