zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    jquery 点击图片弹出遮罩层查看大图
    js 禁止复制粘贴
    如何设置ASP.NET页面的运行超时时间
    Asp.net中DataBinder.Eval用法的总结
    C#中DateTime的缺陷与代替品DateTimeOffset的对吧
    itextsharp html转成pdf 特殊符号异常处理
    C#中DateTime和DateTimeOffset的对比
    最新版本sublime text3注册码
    System.Web.Optimization找不到引用
    nodejs npm常用命令
  • 原文地址:https://www.cnblogs.com/monkey-moon/p/9526059.html
Copyright © 2011-2022 走看看