摘要: 有四个规范<1>必须以字母开头<2>长度不能超过30字符<3>不能使用ORACLE保留字<4>只能使用如下字符 A-Z,a-z,0-9,$,#等.字符型CHAR 定长 最大2000字符。例子:CHAR(10) "小韩"前4个字符放"小韩",后添6个空格补全。VARCHAR2(20) 变长 最大4000字符。例子:VARCHAR2(10) '小韩' oracle分配4个字符。这样可以节省空间。CLOB 字符型大对象最大4G。数字型NUMBER 范围 10的-38次方 10的38次方。NUMBE 阅读全文
posted @ 2011-12-19 22:51 Hard-齐 阅读(114) 评论(0) 推荐(0) 编辑
摘要: ************************************创建一个新用户************************************一般是具有DBA(数据库管理员)的权限才能使用。注意:<1>ORACLE 有一个规定密码必须以数字开头。<2>ORACLE 创建的新用户连登陆权限都没有。语法: CREATE USER 用户名 IDENTIFIED BY 密码;例子: CREATE USER xiaoming IDENTIFIED BY m123;************************************给用户修改密码******** 阅读全文
posted @ 2011-12-17 20:16 Hard-齐 阅读(259) 评论(0) 推荐(0) 编辑
摘要: ****************使用表名%rowtype********************************给部门表插入记录****************DECLARE --定义部门表记录dept_record dept%ROWTYPE;BEGIN --初始化变量中的值 dept_record.deptno := 'cccc'; dept_record.dname := 'programer'; dept_record.loc := 'green'; INSERT INTO dept VALUES (dept_record.dept 阅读全文
posted @ 2011-12-15 23:33 Hard-齐 阅读(166) 评论(0) 推荐(0) 编辑
摘要: <1> ROLLUP();进行数据的汇总,并生成一行记录。SELECT deptno,SUM(sal) FROM emp GROUP BY ROLLUP(deptno);结果:<2> CUBE();会对每一个条件进行单独的汇总;--例子SELECT DEPTNO,JOB,SUM(sal),CASE WHEN GROUPING(deptno) = 0 AND GROUPING(job) = 1 THEN 'group by DEPTNO 后 sum(sal)' WHEN GROUPING(deptno) = 1 AND GROUPING(job) = 0 阅读全文
posted @ 2011-12-15 23:25 Hard-齐 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 问:存储过程可以做什么?答:存储过程可以封装比较复杂的SQL语句。或者是,我们可以通过存储过程完成一系列复杂任务的SQL写成独立的程序模块, 存储在服务器上,供我们多次调用。create or replace procedure findALL(o_return_int out NUMBER, o_return_string in OUT VARCHAR2) IS--定义一个游标CURSOR emp_cursor IS SELECT * FROM emp;--使用PL/SQL表,类似集合操作TYPE emp_table_type IS TABLE OF emp%ROWTYPE;--定义数组变量 阅读全文
posted @ 2011-12-14 22:53 Hard-齐 阅读(132) 评论(0) 推荐(0) 编辑
摘要: --根据员工号,查询员工薪水DECLARE V_EMPNO EMP.EMPNO%TYPE; V_SAL EMP.SAL%TYPE;BEGIN V_EMPNO := '7369'; SELECT SAL INTO V_SAL FROM EMP WHERE EMPNO = V_EMPNO; DBMS_OUTPUT.PUT_LINE(V_SAL);EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('员工编号有误');END;--基础for循环BEGIN FOR V_I IN 1 .. 10 LOOP DBMS 阅读全文
posted @ 2011-12-13 23:36 Hard-齐 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 对于rownum和row_number()over()函数并没有太大差异。row_number()函数的基本语法为:row_number() over(order by COLUMN_NAME) ,此函数还提供了排序的功能。如果是在分页的场合下,我们首推row_number()over()函数。我们已员工表为例子:--查询(薪水从高到底的)员工信息SELECT rownum,e.* FROM emp e ORDER BY sal;结果:--问题:为什么Order by以后行号(ROWNUM)是乱的。--原因:先分配了行号(ROWNUM),再根据sal排序。分页:<1>第一页数据SE 阅读全文
posted @ 2011-12-13 00:30 Hard-齐 阅读(798) 评论(0) 推荐(1) 编辑