Liny_@NotePad

沉迷ACG中

PL/SQL课堂练习(匿名块)

1、普通变量声明
 1)、声明3个变量:full_name varchar2(20),salary number(9,2),fdate date
 2)、用Select into语句从employees表为上面3个变量赋值,条件是rownum <= &_rownum
 3)、用DBMS_OUTPUT.PUT_LINE()打印三个变量值,结果如:Mickel.Jordon 's salary is $4680, Joined in 1987-07-12
 4)、另外声明常量PI,NUMBER(2,7)=3.1415926,声明变量flag BOOLEAN,默认值=FALSE,声明变量age NUMBER,无默认值
 5)、打印上述变量

  1.  
  2.    full_name VARCHAR2(20);
  3.    salary NUMBER(9,2);
  4.    fdate DATE;
  5.    pi CONSTANT NUMBER(8,7) := 3.1415926;
  6.    flag BOOLEAN := FALSE;
  7.    age NUMBER;
  8.  
  9.  
  10.    SELECT first_name||'.'||last_name, salary, hire_date
  11.    INTO full_name, salary, fdate
  12.    FROM employees
  13.    WHERE ROWNUM <= &_rownum;
  14.  
  15.    DBMS_OUTPUT.PUT_LINE(full_name||' ''s salary IS $'||salary||', Joined in '||to_char(fdate,'yyyy-MM-dd'));
  16.  
  17.    DBMS_OUTPUT.PUT_LINE('pi:'||pi);
  18.  
  19.    IF flag THEN
  20.       DBMS_OUTPUT.PUT_LINE('true');
  21.    ELSE
  22.       DBMS_OUTPUT.PUT_LINE('false');
  23.    END IF;
  24.  
  25.    DBMS_OUTPUT.PUT_LINE('age:'||age);
  26.  

数据库对象练习

【HR/HR】

1、用学生选课场景创建表:
 1.1
 Student(id,sno,sname,telnum,email)
 Course(id,cno,cname,teachername)
 studentcourse(id,s_id,c_id)

  1. CREATE TABLE student(
  2. id NUMBER,
  3. sno VARCHAR2 (15) NOT NULL,
  4. sname VARCHAR2 (20) NOT NULL,
  5. telnum VARCHAR2 (12),
  6. email VARCHAR2 (50)
  7. );
  8. CREATE TABLE course(
  9. id NUMBER,
  10. cno VARCHAR2 (6) NOT NULL,
  11. cname VARCHAR2 (30) NOT NULL,
  12. teachername VARCHAR2(20)
  13. );
  14. CREATE TABLE studentcourse(
  15. id NUMBER,
  16. s_id NUMBER,
  17. c_id NUMBER
  18. );

SQL练习

【SCOTT/TIGER】

7. 用Decode函数实现横表和竖表的转换

  1. SELECT deptno DEPARTMENT_ID,
  2.        COUNT(*) "部门人数",
  3.        SUM(DECODE(SIGN(sal-9000),-1,0,1)) "超高收入人数(>9000)",
  4.        SUM(DECODE(SIGN(sal-9000),-1,0,( DECODE(SIGN(sal-12000),1,0,1) ) )) "极高收入人数([9000,12000])",
  5.        SUM(DECODE(SIGN(sal-6000),-1,0,( DECODE(SIGN(sal-9000),1,0,1) ) )) "高收入([6000,9000])",
  6.        SUM(DECODE(SIGN(sal-3000),-1,0,( DECODE(SIGN(sal-6000),1,0,1) ) )) "一般收入([3000,6000])",
  7.        SUM(DECODE(SIGN(sal-3000),-1,1,0)) "低收入([<3000])"
  8.   FROM emp
  9.  GROUP BY deptno;

练习:SQL基础与常用单行函数

练习:创建一个新建tablespace的User

数据库设计中的14个技巧

转载自sirfei的CSDN空间:http://blog.csdn.net/sirfei/archive/2005/07/26/434994.aspx

从数据表中取出第n条到第m条的记录的方法

(MSSQL\ACCESS)

从publish 表中取出第 n 条到第 m 条的记录: SELECT TOP m-n+1 * FROM publish WHERE (id NOT IN (SELECT TOP n-1 id FROM publish)) id 为publish 表的关键字

(MYSQL)只需要 select * from publish limit n,m-n 就可以了 - -||