没有合适的资源?快使用搜索试试~ 我知道了~
李兴华oralce笔记是上课时一个个敲出来的,非常详细,有需要的进店下载
资源推荐
资源详情
资源评论
Oracle 的数据类型:加粗字体( ctrl+B )
使用 ctrl+/ 可以快速的弹出一个虚拟符号键盘:
? (alt + 9999)
如果只想复制表的结构到另一张表, 而不复制任何的数据, 则可以使用一个永远查询不到结
果的查询来执行;
Create table empnull as select * from emp where 1=2;
为表重命名:
在 oracle 数据库中, 所有的数据实际上都是通过数据字典保存的, 例如:select * from tab ;
以上就是一个数据字典,而在 oracle 数据库中,提供了三种类型的数据字典,最常用的是
dbo、user 、所以下面查询一个 user_tables 数据字典;
Select * from user_tables ;
也就是说 oracle 中的所有数据都是按照文件保存的,那么所有的内容都会在数据字典中注
册,既然这样,修改表名称就相当于修改一条数据而已:
Rename 旧的表名称 to 新的表名称;
如果希望彻底释放掉一张表所占用的全部资源 (表空间、 索引等等) 就可以使用截断表的语
法,语法如下:
Truncate table 表名称;
在 oracle10G 中,为了防止用户的误删除表的操作, 专门提供了回收站的功能, 用户所删除
的表默认情况下回在一个回收站之中保存, 而用户也可以通过回收站进行表的恢复, 所以此
技术成为闪回( flashback );
可以通过如下名称查看回收站中的表:
Show RECYCLEBIN;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
MEMBER BIN$r34Nm9OVRxqjy8Jwh1KWJw==$0 TABLE 2012-01-25:10:28:51
可以通过如下的命令恢复别删除的表:
FLASHBACK TABLE 表名称 TO BEFORE DROP;
例如恢复上面的 member表:
NO. 数据类型 关键字 描述
1 字符串 Varchar2(n) N表示该字符串所能储存的最大长度;
2 整数 Number(n) 表示最多为 n 位的整数,有时候也可以用 int 代替;
3 小数 Number(n,m) N为小数, n-m 为整数位,有时也可以使用 float 代
替;
4 日期 Date 存放日期和时间
5 大文本 Clob 可以存储海量文字,最大 4G;
6 大对象 Blob 存放二进制数据,例如电影图片等;
Flashback table member TO before drop ;
当然呢,也可以直接删除掉回收站中的而一些数据表,语法如下:
Purage table 表名称 ;
比如删除回收站中的 member表:
Purge table member ;
SQL> purge table member;
表已清除。
也可以清空回收站;
PURGE RECYCLEBIN;
如果希望删除的时候不进入回收站,则可以加一个 purge 关键字;
Drop table myemp purge;
表结构的修改:
添加列: Alter table add (列 1 类型)等和创建类似;
如果希望修改已经存在的列:
Alter table modify ();和创建表类似;
但是表结构能不修改就不修改, 因为世界上性能最好的 DB2是不允许修改表结构的; 如果遇
到要修改表结构的时候,把表删除,然后重新建立;
唯一约束: UNIQUE
Unique 对于插入多行为 null 的值的处理理解为不重复,因为这里不知道它的具体值;
主键约束: PRIMARY KEY;
主键约束 =非空约束 +唯一约束;
设置为主键之后,不允许为空,而且不允许重复;作为数据的唯一标记出现;
从正常的开发而言, 一张表一般只设置一个主键, 但是从 SQL语法来看, 一张表可以设置多
个主键,称为复合主键:
Create table member(Mid number,Name varchar2(50) not null,Constraint pk_mid_name
primary key(mid,name));
检查约束:
Check
Create table member(Mid number,Name varchar2(50) not null,
Sex varchar2(10) not null,
Age number(3) ,
Constraint pk_mid_name primary key(mid),
Constraint ck_sex check (sex in( ‘男’ , ’女’ , ’中’ )),
Constraint ck_age check (age between 0 and 200)
);
Drop table member;
Drop table book;
Create table member(mid number,name varchar2(50) not null,
Constraint pl_mid primary key(mid)
);
Create table book(bid number,title varchar2(50) not null,mid number,
Constraint pk_bid primary key(bid),
Constraint fk_mid foreign key(mid) references member(mid)
);
笔记 1 部分:
1、使用 host 可以引用 windows 系统的 copy 命令等:
Host copy d:\demo.sql d:\hello.txt
2、scott 用户的表结构:
可以使用以下命令查看所有表:
Select * from tab ;
可以使用以下命令查看表结构:
Desc 表名称;
雇员表(以下)
No. 名称 类型 描述
1 EMPNO NUMBER(4) 雇员的编号,由四位数字组成
2 ENAME VARCHAR2(10) 雇员的姓名,由十位字符组成
3 JOB VARCHAR2(9) 雇员的职位
4 MGR NUMBER(4) 雇员对应的领导编号,领导也是雇员
5 HIREDATE DATE 雇员的雇佣日期
6 SAL NUMBER(7,2) 基本工资,其中两位小数,五位整数
7 COMM NUMBER(7,2) 奖金,佣金(销售人员独有的)
8 DEPTNO NUMBER(2) 雇员所在的部门编号
以下表存放工资数据,基本上用不到;
工资登记表:
NO. 名称 类型 描述
1 GRADE NUMBER 工资的等级
2 LOSAL NUMBER 此登记的最低工资
3 HISAL NUMBER 此等级的最高工资
SQL> select ' 雇员编号是: '||empno||' 的雇员姓名是 :'||ename||', 基本工资是: '||sal||',
职位是 '||job||'!' 雇员信息 from emp;
雇员信息
--------------------------------------------------------------------
雇员编号是: 7369 的雇员姓名是 :SMITH, 基本工资是: 800, 职位是 CLERK!
雇员编号是: 7499 的雇员姓名是 :ALLEN, 基本工资是: 1600, 职位是 SALESMAN!
雇员编号是: 7521 的雇员姓名是 :WARD,基本工资是: 1250, 职位是 SALESMAN!
雇员编号是: 7566 的雇员姓名是 :JONES,基本工资是: 2975, 职位是 MANAGER!
雇员编号是: 7654 的雇员姓名是 :MARTIN,基本工资是: 1250, 职位是 SALESMAN!
雇员编号是: 7698 的雇员姓名是 :BLAKE, 基本工资是: 2850, 职位是 MANAGER!
雇员编号是: 7782 的雇员姓名是 :CLARK,基本工资是: 2450, 职位是 MANAGER!
雇员编号是: 7788 的雇员姓名是 :SCOTT,基本工资是: 3000, 职位是 ANALYST!
雇员编号是: 7839 的雇员姓名是 :KING, 基本工资是: 5000, 职位是 PRESIDENT!
雇员编号是: 7844 的雇员姓名是 :TURNER,基本工资是: 1500, 职位是 SALESMAN!
雇员编号是: 7876 的雇员姓名是 :ADAMS,基本工资是: 1100, 职位是 CLERK!
在 oracle 中所有的数据都是区分大小写的;大小写错误可能查询不出相应的数据;
以下三个查询语句的结构是相同的:
Select * from emp where job!= ’CLERK’;
Select * from emp where job<> ’CLERK’;
Select * from emp where not job= ’CLERK’ -- 这三种语法都可以在 SQL Server 中使用;
对 between and 求反:
Select * from emp where not sal between 1500 and 3000
Between and 不只是对数据,对日期也一样进行操作;
Select * from emp where hiredate between ’01-1 月-1981 ’ and ’31-12 月-81 ’
Set linesize 300;
Set pagesize 200;
★ 对于 like 操作符,不止可以用于字符串型的数据,而且可以用于其他类型的数据;
★ Order by 子句是写在所有语句最后的子句;
★ INITCAP 函数,将字符串首字母变为大写;→而所有剩余的字母会变成小写;
★ Oracle 数据库中为了查询的方便, 专门提供了一个 dual 的虚拟表, 这样 from 后边便可
以跟这个表名进行查询;
★ Select * from emp where ename=UPPER( ‘&hh’); 中的单引号中间的字符表示一个变
量,下一步系统会让用户输入该变量的值,然后系统进行查询:结果图如下:
★ SQL> select * from emp where ename=upper('&hh');
★ 输入 hh 的值 : smith
★ 原值 1: select * from emp where ename=upper('&hh')
★ 新值 1: select * from emp where ename=upper('smith')
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ----------
----------
7369 SMITH CLERK 7902 17-12 月-80 800 20
★ 字符串操作有两种方式:
语法一: substr( 字符串,开始点 ) 表示截取该字符串从开始点一直到结尾的部分;
语法二: substr (字符串,开始点,结束点)
截取字符串倒数三个字符:
除了可以用 length (字符串) -2 以外,还可以使用负数表示:
SQL> select substr(ename,-3) from emp;
SUBSTR
------
ITH
LEN
ARD
NES
TIN
AKE
ARK
OTT
ING
NER
剩余21页未读,继续阅读
资源评论
分时岁月
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功