学习笔记之Oracle(简单应用)
2014-12-02 16:53
459 查看
Oracle
1. Oracle数据库的数据类型:
a) Char:定长,浪费空间,但是速度快
b) varchar(长度)
c) clob
d) number(长度)
e) date:默认格式为‘dd-mm月-yy’,可以用命令修改,临时有效:
altersession set nls_date_format=‘yyyy-mm-dd’
f) timestamp:比date更精确
g) blob:二进制格式的数据,如:图片、音乐、视频
2. 表的管理:
a) 创建表:create table 表名(列名 数据类型,....):还可以用查询的结果创建表:create table
表名(列名,列名,...)as select 字段名,字段名,...from 表名;
b) 添加字段:alter table 表名add(字段名 数据类型)
c) 改变字段:alter table 表名modify(字段名 数据类型)
d) 删除字段:alter table 表名drop colum 字段名
e) 重命名表:rename 表名 to 新表名
f) 删除表:drop table 表名
3. 数据管理:
a) 插入数据:insertinto 表名 values(数据,数据,....):还可以用查询的结果进行批量插入数据:insertinto
表名(字段名,字段名,...) select语句;
b) 插入空值:insert into 表名values(数据,null,....)
c) 查询空值:select * from 表名where 字段名 is null
d) 查询非空值:select * from 表名where 字段名 is not null
e) 修改某些字段:update表名 set 字段名=数据,字段名=数据,...where 条件:还可以用查询的结果进行更新数据:update表名 set(字段名,字段名,...)=(select语句) where 条件
f) 删除数据:
①. delete from 表名;(删除所有数据,如果删数据之前通过命令‘savapoint 保存点名称’设置了保存点,然后可以通过命令‘rollback to 保存点名称’)
②. truncate table 表名;(数据不可恢复,速度快)
4. 表查询:
a) 查看表结构:desc 表名;
b) 去重复行查询:select distinct 列名 from 表名;
c) 取别名:select 字段名表达式 “别名”,字段名,... from 表名;
d) 处理结果中的null值:使用函数nvl(字段名,为null时默认值)
e) like的使用:like 'XXX' %-匹配多个字符,_-匹配单个字符
f) in的使用:in (XXX,XXX,xXX)
g) 多个条件之间用and、or连接
h) order by的使用:order by 字段名 desc(降序)/asc(升序)
i) to_date()函数的使用
j) max(),min(),av g(),count(),sum()分组函数的使用
k) group by...having的使用:group by 字段名,字段名;(可以根据多个字段进行分组)
l) between...and的使用:字段名 between XXX and XXX;
m) all的使用:字段名 > all(sql语句)(效率低,一般可以用max()函数替换)
n) any的使用:字段名 > any(sql语句)(效率低,一般可以用min()函数替换)
o) 多值匹配:(字段名,字段名,...)=(sql子句)
p) 可将查询结果看做一张子表(嵌套视图),并必须取别名:select 字段名、字段名、.... from 表名 a1,(select语句)a2 where 条件语句;
q) 总结:
①. 分组函数只能出现在选择列表、having子句、order by子句中
②. 如果在select语句中同时用到groupby、having、order by,那么他们出现的顺序是group by、having、orderby
③. 在选择列中有字段名、表达式、分组函数,那么这些字段和表达式必须有一个出现在group by子句中,否则报错
5. oracle分页(比其他数据库复杂):
a) rownum的使用:select * from (select a1.*,rownum rn from 表名 a1 where rownum<21) where rn>10;(每页显示10条数据,第二页)
如果要排序的话,将最里层的"表名"换成一个“嵌套视图”:select * from (select a1.*,rownum rn from (select * from 表名 order by 字段名) a1 where rownum<21) wherern>10;
b) 另外可以用rowid和分析函数实现分页,不过难以理解。
6. 合并查询结果(oracle特有的):
a) 取并集:select语句 unionselect语句
b) 取两个结果的和: select语句 union all select语句
c) 取交集:select语句 intersectselect语句
d) 取差集:select语句 minusselect语句
7. 创建数据库:
一般使用oracle提供的工具创建数据
8. oracle的事务:
a) 设置保存点:savapoint 保存点名称;
b) 回退事务:rollback to 保存点名称;
c) 提交事务:commit;
d) 取消所有事务:rollback;
9. 只读事务:
set transaction readonly;
10. sql函数:
a) 字符函数:
①. lower(字符串):变小写
②. upper(字符串):变大写
③. length(字符串):求长度
④. substr(字符串,起始点,截取长度):截取
⑤. replace(原字符串,被替换部分,替换部分)
b) 数学函数:
cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round...
①. round(n,[m]): 四舍五入
②. trunc(n,[m]):截取数字
③. mod(m,n):取模运算
④. floor(m):<=m的整数
⑤. ceil(m):>=m的整数
c) 日期函数:
oracle
默认的时间的格式“DD-MM月-YY”
①. sysdate:select sysdate from daul;(返回系统的时间)
②. add_months(d,n):在d的基础上加n年
③. last_day(d):返回指定日期所在月的最后一天
d) 转换函数:
①. to_char:将日期格式化时常用到(to_char(sysdate,'yyyy-mm-ddhh24:mi:ss')),或者加货币单位时(to_char(sal,'L99999.99'))
9 显示数字,并忽略O
0 显示数字,不足补0
$ 在数字前加美元符号
L 在数字前加本地货币符号
C 在数字前加国际货币符号
G 在指定位置显示组分隔符
D 显示小数点
②. to_date:
e) 系统函数:
①. sys_context('userenv',?):
②. terminal:当前回话的终端的标示符
③. language:语言
④. db_name:数据库的名称
⑤. nls_date_format:当前客户的日期格式
⑥. session_user:当前的会话的数据库用户名
⑦. current_schema:方案名
⑧. host:主机名
11. oracle的约束:
a) not null:alter table 表名 modify字段名 not null;
b) unique:alter table 表名 add constraint 约束名 unique(字段名);
c) primary key
d) foreign key
e) check: alter table 表名 add constraint 约束名check(字段名 in('XXX','XXX'));
f) 删除约束:alter table 表名drop constraint 约束名; (删除主键时,altertable 表名 drop primary key cascade)
1. Oracle数据库的数据类型:
a) Char:定长,浪费空间,但是速度快
b) varchar(长度)
c) clob
d) number(长度)
e) date:默认格式为‘dd-mm月-yy’,可以用命令修改,临时有效:
altersession set nls_date_format=‘yyyy-mm-dd’
f) timestamp:比date更精确
g) blob:二进制格式的数据,如:图片、音乐、视频
2. 表的管理:
a) 创建表:create table 表名(列名 数据类型,....):还可以用查询的结果创建表:create table
表名(列名,列名,...)as select 字段名,字段名,...from 表名;
b) 添加字段:alter table 表名add(字段名 数据类型)
c) 改变字段:alter table 表名modify(字段名 数据类型)
d) 删除字段:alter table 表名drop colum 字段名
e) 重命名表:rename 表名 to 新表名
f) 删除表:drop table 表名
3. 数据管理:
a) 插入数据:insertinto 表名 values(数据,数据,....):还可以用查询的结果进行批量插入数据:insertinto
表名(字段名,字段名,...) select语句;
b) 插入空值:insert into 表名values(数据,null,....)
c) 查询空值:select * from 表名where 字段名 is null
d) 查询非空值:select * from 表名where 字段名 is not null
e) 修改某些字段:update表名 set 字段名=数据,字段名=数据,...where 条件:还可以用查询的结果进行更新数据:update表名 set(字段名,字段名,...)=(select语句) where 条件
f) 删除数据:
①. delete from 表名;(删除所有数据,如果删数据之前通过命令‘savapoint 保存点名称’设置了保存点,然后可以通过命令‘rollback to 保存点名称’)
②. truncate table 表名;(数据不可恢复,速度快)
4. 表查询:
a) 查看表结构:desc 表名;
b) 去重复行查询:select distinct 列名 from 表名;
c) 取别名:select 字段名表达式 “别名”,字段名,... from 表名;
d) 处理结果中的null值:使用函数nvl(字段名,为null时默认值)
e) like的使用:like 'XXX' %-匹配多个字符,_-匹配单个字符
f) in的使用:in (XXX,XXX,xXX)
g) 多个条件之间用and、or连接
h) order by的使用:order by 字段名 desc(降序)/asc(升序)
i) to_date()函数的使用
j) max(),min(),av g(),count(),sum()分组函数的使用
k) group by...having的使用:group by 字段名,字段名;(可以根据多个字段进行分组)
l) between...and的使用:字段名 between XXX and XXX;
m) all的使用:字段名 > all(sql语句)(效率低,一般可以用max()函数替换)
n) any的使用:字段名 > any(sql语句)(效率低,一般可以用min()函数替换)
o) 多值匹配:(字段名,字段名,...)=(sql子句)
p) 可将查询结果看做一张子表(嵌套视图),并必须取别名:select 字段名、字段名、.... from 表名 a1,(select语句)a2 where 条件语句;
q) 总结:
①. 分组函数只能出现在选择列表、having子句、order by子句中
②. 如果在select语句中同时用到groupby、having、order by,那么他们出现的顺序是group by、having、orderby
③. 在选择列中有字段名、表达式、分组函数,那么这些字段和表达式必须有一个出现在group by子句中,否则报错
5. oracle分页(比其他数据库复杂):
a) rownum的使用:select * from (select a1.*,rownum rn from 表名 a1 where rownum<21) where rn>10;(每页显示10条数据,第二页)
如果要排序的话,将最里层的"表名"换成一个“嵌套视图”:select * from (select a1.*,rownum rn from (select * from 表名 order by 字段名) a1 where rownum<21) wherern>10;
b) 另外可以用rowid和分析函数实现分页,不过难以理解。
6. 合并查询结果(oracle特有的):
a) 取并集:select语句 unionselect语句
b) 取两个结果的和: select语句 union all select语句
c) 取交集:select语句 intersectselect语句
d) 取差集:select语句 minusselect语句
7. 创建数据库:
一般使用oracle提供的工具创建数据
8. oracle的事务:
a) 设置保存点:savapoint 保存点名称;
b) 回退事务:rollback to 保存点名称;
c) 提交事务:commit;
d) 取消所有事务:rollback;
9. 只读事务:
set transaction readonly;
10. sql函数:
a) 字符函数:
①. lower(字符串):变小写
②. upper(字符串):变大写
③. length(字符串):求长度
④. substr(字符串,起始点,截取长度):截取
⑤. replace(原字符串,被替换部分,替换部分)
b) 数学函数:
cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round...
①. round(n,[m]): 四舍五入
②. trunc(n,[m]):截取数字
③. mod(m,n):取模运算
④. floor(m):<=m的整数
⑤. ceil(m):>=m的整数
c) 日期函数:
oracle
默认的时间的格式“DD-MM月-YY”
①. sysdate:select sysdate from daul;(返回系统的时间)
②. add_months(d,n):在d的基础上加n年
③. last_day(d):返回指定日期所在月的最后一天
d) 转换函数:
①. to_char:将日期格式化时常用到(to_char(sysdate,'yyyy-mm-ddhh24:mi:ss')),或者加货币单位时(to_char(sal,'L99999.99'))
9 显示数字,并忽略O
0 显示数字,不足补0
$ 在数字前加美元符号
L 在数字前加本地货币符号
C 在数字前加国际货币符号
G 在指定位置显示组分隔符
D 显示小数点
②. to_date:
e) 系统函数:
①. sys_context('userenv',?):
②. terminal:当前回话的终端的标示符
③. language:语言
④. db_name:数据库的名称
⑤. nls_date_format:当前客户的日期格式
⑥. session_user:当前的会话的数据库用户名
⑦. current_schema:方案名
⑧. host:主机名
11. oracle的约束:
a) not null:alter table 表名 modify字段名 not null;
b) unique:alter table 表名 add constraint 约束名 unique(字段名);
c) primary key
d) foreign key
e) check: alter table 表名 add constraint 约束名check(字段名 in('XXX','XXX'));
f) 删除约束:alter table 表名drop constraint 约束名; (删除主键时,altertable 表名 drop primary key cascade)
相关文章推荐
- oracle 最简单的学习笔记,增删改查,PLSQL基本语法,游标,函数,存储过程的实现
- 重新整理后的Oracle OAF学习笔记——4.应用构建基础之实现视图
- Silverlight学习笔记(二):创建Hello World 简单基础应用
- 【算法学习笔记】53.单调队列的简单应用 SJTU OJ 1034 二哥的金链
- Chrome扩展,应用开发学习笔记之1---从简单的时钟入手
- c++pirmer 学习笔记之指针简单应用。
- Linux——bash应用技巧简单学习笔记
- DayDayUP之HTML5学习笔记 三 article、hgroup、figure、figcaption、dialog标签简单应用
- jQuery EasyUI学习笔记_1.easyui简介和简单应用
- C++学习笔记--线程简单应用
- Maven学习笔记(一) 安装和构建简单应用
- jQuery EasyUI学习笔记_1.easyui简介和简单应用
- [Oracle]学习Oracle数据库的简单笔记(未完待续)
- Bootstrap学习笔记之下载及简单应用
- MSSQL和ORACLE 简单对比学习笔记
- 重新整理后的Oracle OAF学习笔记——3.应用构建基础之实现模型
- mybatis学习笔记2-SQL的简单应用
- ios学习笔记block回调的应用(一个简单的例子)
- Cocos2d-x学习笔记(六) 定时器Schedule的简单应用
- IOS学习笔记之二:Object C的简单应用(对比Java)