oracle
Posted moonok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle相关的知识,希望对你有一定的参考价值。
oracle
1. python连接oracle
使用cx_Oracle 模块连接
# -*- coding: utf-8 -*-
import cx_Oracle #引用模块cx_Oracle
conn= cx_Oracle.connect(‘root‘, ‘root‘, ‘localhost:1521/oracle‘)#连接数据库
c=conn.cursor() #获取cursor
sql=‘select * from student‘
x=c.execute(sql) #使用cursor进行各种操作
y=x.fetchall()
print y
c.close() #关闭cursor
conn.commit() #提交
conn.close()
2.数据类型
2.1 字符类
- char 长度固定,最多容纳2000个字符
- varchar2(20) 长度可变,最多容纳4000个字符。
varchar和varchar2 必须指定长度,不然会报错
2.2 数字型
- number可以表示整数,也可以表示小数]
- number(5,2)表示一位小数有5位有效数,2位小数
- number(5)表示一个5位整数
2.3 日期类型
- date 包含年月日和时分秒 oracle默认格式1-1月-1999
timestamp 这是oracle9i对date数据类型的扩展。可以精确到毫秒。
2.4 图片
blob 二进制数据
3. 创建表
create table employee(
sex VARCHAR(20),
name VARCHAR(30),
id number(20),
age NUMBER(40)
);
3.1 插入数据
3.1.1 所有字段都插入
insert into "employee" VALUES(‘male‘,‘Angle‘,34,65);
3.1.2 -插入部分字段
insert into "TEST" (sex,name,age) VALUES(‘female‘,‘Adfds‘,42);
3.1.3 查询表里某个值为null的记录
select * from test where id is null
3.1.4 查xun 1982以后入职的员工信息
to_data(value,pattern),value是时间参数,pattern是时间的格式 函数
select ename,hiredate from emp where hiredate>to_date(‘1982/1/1‘,‘yyyy/mm/dd‘)
3.1.4 插入空值
insert into "TEST"(SEX, name, id, age) values (‘a004‘, ‘ewf‘, null, null);
3.1.5 修改一个字段
UPDATE "TEST" set name=‘fgfd‘ where id=34
3.1.6 修改多个字段
UPDATE "TEST" set name=‘342‘,sex=‘fdgsergytrsh‘ where id=34
3.2 -修改表
3.2.1添加一个字段
alter table test add (classid number(2));
3.2.2 修改一个字段的长度
alter table test modify (classid varchar2(12));
3.3 删除表的结构和数据;
drop table student;
3.4 删除所有记录,表结构还在,写日志,可以恢复的,速度慢
delete from test
3.5 LIKE%
- 如何使用like操作符
- %:表示0到多个字符
_:表示任意单个字符
问题:如何显示首字符为S的员工姓名和工资?
select ename,sal from emp where ename like ‘S%‘;
如何显示第三个字符为O的所有员工的姓名和工资?
select ename,sal from emp where ename like ‘__O%‘;
3.6 where条件中使用in 问题
select * from emp where empno in (7844, 7839, 123, 456);
3.7 sql语句有引号的处理
sql语句如果有引号, 则sql字符串用双引号,内部的引号用单的就可以
sql="select * from emp where (sal > 500 or job = ‘MANAGER‘) and ename like ‘J%‘"
3.8 数据分组
- 1 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)
- 2 如果在select语句中同时包含有group by, having, order by 那么它们的顺序是group by, having, order by
- 3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出现在group by子句中,否则就会出错。
3.9 多表查询
select e.ename,e.sal,d.dname from emp e,dept d where e.DEPTNO=d.DEPTNO
求和
select sum(sal) from EMP
或者
select sum(r.sal) from EMP r
以上是关于oracle的主要内容,如果未能解决你的问题,请参考以下文章
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段
续:纠正:ubuntu7.04可以安装,而且完美的安装 ! for《Oracle-10.2.0.1,打补丁10.2.0.5:在 debian 版本4不含4以上,及 ubuntu 7.04不含(代码片段