精华内容
下载资源
问答
  • setspace软件
    千次阅读 多人点赞
    2018-10-01 15:09:25

    在学校的时候就想好好汇总网上,软件开发程序猿英语学习的帖子了,IT行业英语还真是比较重要,还好没落下,自己平时也在学堂在线学习。
    下面纯属转载汇总,方便复习查找:

    IT软件开发常用英语词汇

    A
    abstract  抽象的
    
    abstract base class  抽象基类
    
    abstract class  抽象类
    
    abstraction  抽象、抽象物、抽象性
    
    access  存取、访问
    
    access function  访问函数
    
    access level  访问级别
    
    account  账户
    
    action  动作
    
    activate  激活
    
    actual parameter  实参
    
    adapter  适配器
    
    add-in  插件
    
    address  地址
    
    address space  地址空间
    
    ADO(ActiveX Data Object)  ActiveX数据对象
    
    advanced  高级的
    
    aggregation  聚合、聚集
    
    algorithm  算法
    
    alias  别名
    
    align  排列、对齐
    
    allocate  分配、配置
    
    allocator  分配器、配置器
    
    angle bracket  尖括号
    
    annotation  注解、评注
    
    API(Application Programming Interface)  应用(程序)编程接口
    
    appearance  外观
    
    append  附加
    
    application  应用、应用程序
    
    application framework  应用程序框架
    
    Approximate String Matching  模糊匹配
    
    architecture  架构、体系结构
    
    archive file  归档文件、存档文件
    
    argument  参数
    
    array  数组
    
    arrow operator  箭头操作符
    
    assert  断言
    
    assign  赋值
    
    assignment  赋值、分配
    
    assignment operator  赋值操作符
    
    associated  相关的、相关联的
    
    asynchronous  异步的
    
    attribute  特性、属性
    
    authentication service  验证服务
    
    authorization  授权
    
    B
    
    background  背景、后台
    
    backup  备份
    
    backup device  备份设备
    
    backup file  备份文件
    
    backward compatible  向下兼容
    
    base class  基类
    
    base type  基类型
    
    batch  批处理
    
    BCL(base class library)  基类库
    
    Bin Packing  装箱问题
    
    binary  二进制
    
    binding  绑定
    
    bit  位
    
    bitmap  位图
    
    block  块、区块、语句块
    
    boolean  布尔值
    
    border  边框
    
    bounds checking  边界检查
    
    boxing  装箱、装箱转换
    
    brace  大括号、花括号
    
    bracket  中括号、方括号
    
    breakpoint  断点
    
    browser applications  浏览器应用
    
    browser-accessible application  可经由浏览器访问的应用程序
    
    bug  缺陷错误
    
    build  编连(专指编译和链接)
    
    built-in  內建、内置
    
    bus  总线
    
    business  业务、商务
    
    business Logic  业务逻辑
    
    business rules  业务规则
    
    buttons  按钮
    
    by/through  通过
    
    byte  位单元
    
    C
    
    cache  告诉缓存
    
    calendar  日历
    
    Calendrical Calculations  日期
    
    call  调用
    
    call operator  调用操作符
    
    callback  回调
    
    candidate key  候选键
    
    cascading delete  级联删除
    
    cascading update  级联更新
    
    casting  转换、造型转换
    
    catalog  目录
    
    chain  链
    
    character  字符
    
    character format  字符格式
    
    character set  字符集
    
    check box  复选框
    
    check button  复选按钮
    
    CHECK constrains  CHECK约束
    
    checkpoint  检查点
    
    child class  子类
    
    class  类
    
    class declaration  类声明
    
    class definition  类定义
    
    class derivation list  类继承列表
    
    class factory  类厂
    
    class hierarchy  类层次结构
    
    class library  类库
    
    class loader  类装载器
    
    class template  类模板
    
    class template partial specializations  类模板部分特化
    
    classification  分类
    
    clause  子句
    
    cleanup  清理、清除
    
    client  客户、客户端
    
    client application  客户端应用程序
    
    client area  客户区
    
    client cursor  客户端游标
    
    client-server  客户机/服务器、客户端/服务器
    
    clipboard  剪贴板
    
    clone  克隆
    
    CLS(common language specification)  通用语言规范
    
    code access security  代码访问安全
    
    code page  代码页
    
    COFF(Common Object File Format)  通用对象文件格式
    
    collection  集合
    
    COM(Component Object Model)  组件对象模型
    
    combo box  组合框
    
    command line  命令行
    
    comment  注释
    
    commit  提交
    
    communication  通讯
    
    compatible  兼容
    
    compile time  编译期、编译时
    
    compiler  编译器
    
    component  组件
    
    composite index  复合索引、组合索引
    
    composite key  复合键、组合键
    
    composition  复合、组合
    
    concept  概念
    
    concrete  具体的
    
    concrete class  具体类
    
    concurrency  并发、并发机制
    
    configuration  配置、组态
    
    Connected Components  连通分支
    
    connection  连接
    
    connection pooling  连接池
    
    console  控制台
    
    constant  常量
    
    Constrained and Unconstrained Optimization  最值问题
    
    constraint  约束
    
    construct  构件、成分、概念、构造
    
    constructor  构造函数、构造器
    
    container  容器
    
    containment  包容
    
    context  环境、上下文
    
    control  控件
    
    copy  拷贝
    
    cover  覆盖、涵盖
    
    create/creation  创建、生成
    
    crosstab query  交叉表查询
    
    Cryptography  密码
    
    CTS(common type system)  通用类型系统
    
    cube  多维数据集
    
    cursor  光标、游标
    
    custom  定制、自定义
    
    D
    
    data  数据
    
    data connection  数据连接
    
    data dictionary  数据字典
    
    data file  数据文件
    
    data integrity  数据完整性
    
    data manipulation language(DML)  数据操作语言
    
    data member  数据成员、成员变量
    
    data source  数据源
    
    Data source name(DSN)  数据源名称
    
    data structure  数据结构
    
    Data Structures  基本数据结构
    
    data table  数据表
    
    data-bound  数据绑定
    
    database  数据库
    
    database catalog  数据库目录
    
    dtabase diagram  数据关系图
    
    database file  数据库文件
    
    database object  数据库对象
    
    database project  数据库工程
    
    database role  数据库角色
    
    database schema  数据库模式、数据库架构
    
    database script  数据库脚本
    
    datagram  数据报文
    
    dataset  数据集
    
    DBMS(database management system)  数据库管理系统
    
    DCOM(distributed COM)  分布式COM
    
    dead lock  死锁
    
    deallocate  归还
    
    debug  调试
    
    debugger  调试器
    
    decay  退化
    
    declaration  声明
    
    default  缺省、默认值
    
    DEFAULT constraint  默认约束
    
    default database  默认数据库
    
    default instance  默认实例
    
    default result set  默认结果集
    
    defer  推迟
    
    definition  定义
    
    delegate  委托
    
    delegation  委托
    
    deploy  部署
    
    derived class  派生类
    
    disign pattern  设计模式
    
    destroy  销毁
    
    destructor  析构函数、析构器
    
    device  设备
    
    DHTML(dynamic HyperText Markup Language)  动态超文本标记语言
    
    dialog  对话框
    
    Dictionaries  字典
    
    digest  摘要
    
    digital  数字的
    
    directive  指示符
    
    directory  目录
    
    disassembler  反编译器
    
    dispatch  调度、分派、派发
    
    distributed computing  分布式计算
    
    distributed query  分布式查询
    
    DNA(Distributed interNet Application)  分布式网间应用程序
    
    document  文档
    
    DOM(Document Object Model)  文档对象模型
    
    dot operator  点操作符
    
    double-byte character set  双字节字符集
    
    driver  驱动程序
    
    DTD(document type difinition)  文档类型定义
    
    dump  转储
    
    dump file  转储文件
    
    E
    
    e-business  电子商务
    
    efficiency  效率
    
    encapsulation  封装
    
    end user  最终用户
    
    end-to-end authentication  端对端身份验证
    
    engine  引擎
    
    entity  实体
    
    enum  枚举
    
    enumerators  枚举成员、枚举器
    
    equals  相等
    
    equality  相等性
    
    equality operator  等号操作符
    
    error log  错误日志
    
    escape character  转义符、转义字符
    
    escape code  转义码
    
    evaluate  评估
    
    event  事件
    
    event driven  事件驱动的
    
    event handler  事件处理器
    
    evidence  证据
    
    exception  异常
    
    exception declaration  异常声明
    
    exception handling  异常处理、异常处理机制
    
    exception specification  异常规范
    
    exception-safe  异常安全的
    
    exit  退出
    
    explicit  显式
    
    explicit specialization  显式特化
    
    explicit transaction  显式事务
    
    export  导出
    
    expression  表达式
    
    F
    
    fat client  胖客户端
    
    feature  特性、特征
    
    fetch  提取
    
    field  字段
    
    field length  字段长度
    
    file  文件
    
    filter  筛选
    
    finalization  终结
    
    finalizer  终结器
    
    firewall  防火墙 
    
    flag  标记
    
    flash memory  闪存
    
    flush  刷新
    
    font  字体
    
    foreign key  外键
    
    form  窗体
    
    fromal parameter  形参
    
    forward declaration  前置声明
    
    forward-only  只向前的
    
    forward-only cursor  只向前游标
    
    framework  框架
    
    full specialization  完全特化
    
    function  函数
    
    function call operator  函数调用操作符
    
    function object  函数对象
    
    function template  函数模板
    
    functionality  功能
    
    functor  仿函数
    
    G
    
    GC(Garbage collection)  垃圾回收机制、垃圾收集机制
    
    generate  生成
    
    generic  泛化的、一般化的、通用的
    
    generic algorithm  通用算法
    
    genericity  泛型
    
    getter  取值函数
    
    global  全局的
    
    global object  全局对象
    
    grant  授权
    
    group  组、群
    
    group box  分组框
    
    GUI  图形界面
    
    GUID(Globally Unique Identifier)  全球唯一标识符
    
    H
    
    handle  句柄
    
    handler  处理器
    
    hard disk  硬盘
    
    hard-coded  硬编码的
    
    hard-copy  截屏图
    
    hardware  硬件
    
    hash table  散列表、哈希表
    
    header file  头文件
    
    heap  堆
    
    help file  帮助文件
    
    hierarchical data  阶层式数据、层次式数据
    
    hierarchy  层次结构、继承体系
    
    high level  高阶、高层
    
    hook  钩子
    
    Host  宿主
    
    hot key  热键
    
    HTML  超文本标记语言
    
    HTTP  超文本传输协议
    
    HTTP pipeline  HTTP管道
    
    hyperlink  超链接
    
    I
    
    icon  图标
    
    IDE(Integreated Development Environment)  集成开发环境
    
    identifier  标识符
    
    IDL(Interface Definition Language)  接口定义语言
    
    idle time  空闲时间
    
    if and only if  当且仅当
    
    IL(Itermadiate Language)  中间语言、中介语言
    
    image  图像
    
    IME  输入法
    
    immediate base  直接基类
    
    immediate derived  直接派生类
    
    immediate updating  即时更新
    
    implement  实现
    
    implementation  实现、实现品
    
    implicit  隐式
    
    implicit transaction  隐式事务
    
    import  导入
    
    incremental update  增量更新
    
    Independent Set  独立集
    
    index  索引
    
    infinite loop  无限循环
    
    infinite recursive  无限递归
    
    information  信息
    
    inheritance  继承、继承机制
    
    initialization  初始化
    
    initialization list  初始化列表、初始值列表
    
    initialize  初始化
    
    inline  内联
    
    inline expansion  内联展开
    
    inner join  内连接
    
    instance  实例
    
    instantiated  具现化、实体化
    
    instantiation  具现化、具现化实体
    
    integrate  集成、整合
    
    integrity  完整性、一致性
    
    intetrity constraint  完整性约束
    
    interacts  交互
    
    interface  接口
    
    interoperability  互操作性、互操作能力
    
    interpreter  解释器
    
    introspection  自省
    
    invariants  不变性
    
    invoke  调用
    
    isolation level  隔离级别
    
    item  项、条款、项目
    
    iterate  迭代
    
    iteration  迭代
    
    iterative  反复的、迭代的
    
    iterator  迭代器
    
    J
    
    JIT compilation  JIT编译即时编译
    
    Job Scheduling  工程安排
    
    K
    
    key  键
    
    key colume  键列
    
    L
    
    left outer join  左向外连接
    
    level  阶、层例
    
    libaray  库
    
    lifetime  生命期、寿命
    
    Linear Programming  线性规划
    
    link  连接、链接
    
    linkage  连接、链接
    
    list  列表、表、链表
    
    list box  列表框
    
    literal constant  字面常数
    
    livelock  活锁
    
    load  装载、加载
    
    load balancing  负载平衡
    
    loader  装载器、载入器
    
    local  局部的
    
    local object  局部对象
    
    lock  锁
    
    log  日志
    
    login  登录
    
    login security mode  登录安全模式
    
    lookup table  查找表
    
    loop  循环
    
    loose coupling  松散耦合
    
    lvalue  左值
    
    M
    
    machine code  机器码、机器代码
    
    macro  宏
    
    maintain  维护
    
    managed code  受控代码、托管代码
    
    Managed Extensions  受控扩充件、托管扩展
    
    managed object  受控对象、托管对象
    
    manifest  清单
    
    many-to-many relationship  多对多关系
    
    many-to-one relationship  多对一关系
    
    marshal  列表
    
    Matching  匹配
    
    member  成员
    
    memeber access operator  成员取用运算子(有dot和arrow两种)
    
    memeber function  成员函数
    
    member initialization list  成员初始值列表
    
    memory  内存
    
    memory leak  内存泄漏
    
    menu  菜单
    
    message  消息
    
    message based  基于消息的
    
    message loop  消息环
    
    message queuing  消息队列
    
    metadata  元数据
    
    metaprogramming  元编程
    
    method  方法
    
    micro  微
    
    middle tier  中间层
    
    meddleware  中间件
    
    modeling  建模
    
    modeling language  建模语言
    
    modem  调制解调器
    
    modifier  修饰字、修饰符
    
    module  模块
    
    most derived class  最底层的派生类
    
    mouse  鼠标
    
    multi-tasking  多任务
    
    multi-thread  多线程
    
    multicase delegate  组播委托、多点委托
    
    multithreaded server application  多线程服务器应用程序
    
    multiuser  多用户
    
    multable  多变的
    
    mutex  互斥元、互斥体
    
    N
    
    named parameter  命名参数
    
    named pipe  命名管道
    
    namespace  命名空间
    
    native  原生的、本地的
    
    naive code  本地码、本机码
    
    nested class  嵌套类
    
    nested query  嵌套查询
    
    nested table  嵌套表
    
    network  网络
    
    network card  网卡
    
    Network Flow  网络流
    
    O
    
    object  对象
    
    object based  基于对象的
    
    object oriented  面向对象的
    
    ODBC data source  ODBC数据源
    
    ODBC driver  ODBC驱动程序
    
    one-to-many relationship  一对多关系
    
    ont-to-one relationship  一对一关系
    
    operating system  操作系统
    
    operation  操作
    
    operator  操作符、运算符
    
    option  选项
    
    outer join  外连接
    
    overflow  上限溢位
    
    overload  重载
    
    override  覆写、重载、重新定义
    
    P
    
    package  包
    
    packaging  打包
    
    palette  调色板
    
    parallel  并行
    
    parameter  参数、形式参数、形参
    
    parameter list  参数列表
    
    parameterize  参数化
    
    parent class  父类
    
    parentheses  圆括号
    
    parse  解析
    
    parser  解析器
    
    part  零件、部件
    
    partial specialization  局部特化
    
    pass by reference  引用传递
    
    pass by value  值传递
    
    pattern  模式
    
    persistence  持久性
    
    pixel  像素
    
    placeholder  占位符
    
    platform  平台
    
    Point Location  位置查询
    
    pointer  指针
    
    polymorphism  多态
    
    pooling  池化
    
    pop up  弹出式
    
    port  端口
    
    postfix  后缀
    
    precedence  优先序
    
    prefix  前缀
    
    preprocessor  预处理器
    
    primary key  主键
    
    primary table  主表
    
    primitive type  原始类型
    
    print  打印
    
    printer  打印机
    
    procedure  过程
    
    process  进程
    
    program  程序
    
    programmer  程序员
    
    programming  编程、程序设计
    
    progress bar  进度指示器
    
    project  项目、工程
    
    property  属性
    
    protocol  协议
    
    pseudo code  伪码
    
    Q
    
    qualified  合格的
    
    qualifier  修饰符
    
    quality  质量
    
    queue  队列
    
    R
    
    radio button  单选按钮
    
    random number  随机数
    
    Random Number Generation  随机数生成
    
    range  范围、区间
    
    rank  等级
    
    raw  未经处理的
    
    re-dirrection  重定向
    
    readOnly  只读
    
    record  记录
    
    recordset  记录集
    
    recursion  递归
    
    recursive  递归
    
    refactoring  重构
    
    refer  引用、参考
    
    reference  引用、参考
    
    reflection  反射
    
    refresh data  刷新数据
    
    registre  寄存器
    
    regular expression  正则表达式
    
    relational database  关系数据库
    
    remote  远程
    
    remote requset  远程请求
    
    represent  表述、表现
    
    resolution  解析过程
    
    resolve  解析、决议
    
    result set  结果集
    
    retrieve data  检索数据
    
    return  返回
    
    return type  返回类型
    
    return value  返回值
    
    revoke  撤销
    
    right outer join  右向外连接
    
    robust  健壮
    
    robustness  健壮性
    
    roll back  回滚
    
    roll forward  前滚
    
    routine  例程
    
    row  行
    
    rowset  行集
    
    RPC(remote procedure call)  RPC远程过程调用
    
    runtime  执行期、运行期、执行时、运行时
    
    rvalue  右值
    
    S
    
    Satisfiablity  可满足性
    
    save  保存
    
    savepoint  保存点
    
    SAX(Simple API for XML)
    
    scalable  可伸缩的、可扩展的
    
    schedule  调度
    
    scheduler  调度程序
    
    schema  模式、纲目结构
    
    scope  作用域、生存空间
    
    screen  屏幕
    
    scroll bar  滚动条
    
    SDK(sofeware delvelopment kit)  软件开发包
    
    sealed class  密封类
    
    search  查找
    
    Searching  查找
    
    semantics  语义
    
    sequential container  序列化容器
    
    serial  串行
    
    serialization/serialize  序列化
    
    server  服务器、服务端
    
    session  会话
    
    Set and String Problems  集合与串的问题
    
    Set Cover  集合覆盖
    
    Set Data Structures  集合
    
    Set Packing  集合配置
    
    setter  设值函数
    
    side effect  副作用
    
    signature  签名
    
    single-threaded  单线程
    
    slider  滑块
    
    slot  槽
    
    SMTP(Simple Mail Transfer Protocol)  简单邮件传输协议
    
    snapshot  截屏图
    
    snapshot  快照
    
    SOAP(simple object access protocol)  简单对象访问协议
    
    software  软件
    
    Sorting  排序
    
    source code  源码、源代码
    
    specialization  特化
    
    specification  规范、规格
    
    splitter  切分窗口
    
    SQL(Structured Query Language)  结构化查询语言
    
    stack  栈、堆栈
    
    standard library  标准库
    
    standard template library  标准模板库
    
    stateless  无状态的
    
    statement  语句、声明
    
    static cursor  静态游标
    
    static SQL statement  静态SQL语句
    
    status bar  状态条
    
    stored procedure  存储过程
    
    stream  流
    
    string  字符串
    
    String Matching  模式匹配
    
    stub  存根
    
    subobject  子对象
    
    subquery  子查询
    
    subscript operator  下标操作符
    
    support  支持
    
    suspend  挂起
    
    symbol  记号
    
    syntax  语法
    
    system databases  系统数据库
    
    system tables  系统表
    
    T
    
    table  表
    
    table-level constraint  表级约束
    
    target  目标
    
    task switch  工作切换
    
    TCP(transport control protocol)  传输控制协议
    
    template  模板
    
    temporary object  临时对象
    
    temporary table  临时表
    
    text  文本
    
    Text compression  压缩
    
    text file  文本文件
    
    thin client  瘦客户端
    
    third-party  第三方
    
    thread  线程
    
    thread-safe  线程安全的
    
    throw  抛出、引发
    
    trace  跟踪
    
    transaction  事务
    
    transaction log  事务日志
    
    transaction rollback  事务回滚
    
    traverse  遍历
    
    trigger  触发器
    
    type  类型
    
    U
    
    UML(unfied modeling language)  统一建模语言
    
    unary function  单参函数
    
    unary operator  一元操作符
    
    unboxing  拆箱、拆箱转换
    
    underflow  下限溢位
    
    Unicode  统一字符编码标准
    
    union query  联合查询
    
    unique constraints  unique约束
    
    unique index  唯一索引
    
    unmanaged code  非受控代码、非托管代码
    
    unmarshal  散集
    
    unqualified  未经限定的、未经修饰的
    
    URI(uniform resource identifier)  统一资源标识符
    
    URL(uniform resource locator)  统一资源定位器
    
    user  用户
    
    user interface  用户界面
    
    V
    
    value types  值类型
    
    variable  变量
    
    vector  向量
    
    vendor  厂商
    
    viable  可行的
    
    video  视频
    
    view  视图
    
    virtual function  虚函数
    
    virtual machine  虚拟机
    
    virtual memory  虚拟内存
    
    W
    
    web services   web服务
    
    where clause  where子句
    
    wildcard characters  通配符字符
    
    wildcard search  通配符搜索
    
    window  窗口
    
    window function  窗口函数
    
    window procedure  窗口过程
    
    windows authentication  window身份验证
    
    wizard  向导
    
    word  单词
    
    write enable  写启用
    
    write-only  只写
    
    WSDL(web service description language)  service描述语言
    
    X
    
    XML(eXtensible Markup Language)  可扩展标记语言
    
    XML Message Interface  XML消息接口
    
    XSD(XML Schema Definition)  XML模式定义语言
    
    XSL(eStensible Stylesheet Language)  可扩展样式表语言
    
    XSLT(eXtensible Stylesheet Language Transformation)  可扩展样式表语言转换
    

    程序员必须掌握的600个英语单词

    application 应用程式 应用、应用程序
    application framework 应用程式框架、应用框架 应用程序框架
    architecture 架构、系统架构 体系结构
    argument 引数(传给函式的值)。叁见 parameter 叁数、实质叁数、实叁、自变量
    array 阵列 数组
    arrow operator arrow(箭头)运算子 箭头操作符
    assembly 装配件
    assembly language 组合语言 汇编语言
    assert(ion) 断言
    assign 指派、指定、设值、赋值 赋值
    assignment 指派、指定 赋值、分配
    assignment operator 指派(赋值)运算子 = 赋值操作符
    associated 相应的、相关的 相关的、关联、相应的
    associative container 关联式容器(对应 sequential container) 关联式容器
    atomic 不可分割的 原子的
    attribute 属性 属性、特性
    audio 音讯 音频
    A.I. 人工智慧 人工智能
    background 背景 背景(用於图形着色) 后台(用於行程)
    backward compatible 回溯相容 向下兼容
    bandwidth 频宽 带宽
    base class 基础类别 基类
    base type 基础型别 (等同於 base class)
    batch 批次(意思是整批作业) 批处理
    benefit 利益 收益
    best viable function 最佳可行函式 最佳可行函式 (从 viable functions 中挑出的最佳吻合者)
    binary search 二分搜寻法 二分查找
    binary tree 二元树 二叉树
    binary function 二元函式 双叁函数
    binary operator 二元运算子 二元操作符
    binding 系结 绑定
    bit 位元 位
    bit field 位元栏 位域
    bitmap 位元图 位图
    bitwise 以 bit 为单元逐一┅
    bitwise copy 以 bit 为单元进行复制;位元逐一复制 位拷贝
    block 区块,区段 块、区块、语句块
    boolean 布林值(真假值,true 或 false) 布尔值
    border 边框、框线 边框
    brace(curly brace) 大括弧、大括号 花括弧、花括号
    bracket(square brakcet) 中括弧、中括号 方括弧、方括号
    breakpoint 中断点 断点
    build 建造、构筑、建置(MS 用语)
    build-in 内建 内置
    bus 汇流排 总线
    business 商务,业务 业务
    buttons 按钮 按钮
    byte 位元组(由 8 bits 组成) 字节
    cache 快取 高速缓存
    call 呼叫、叫用 调用
    callback 回呼 回调
    call operator call(函式呼叫)运算子调用操作符 ###### (同 function call operator)
    candidate function 候选函式 候选函数 ###### (在函式多载决议程序中出现的候选函式)
    chain 串链(例 chain of function calls) 链
    character 字元 字符
    check box 核取方块 (i.e. check button) 复选框
    checked exception 可控式异常(Java)
    check button 方钮 (i.e. check box) 复选按钮
    child class 子类别(或称为derived class, subtype) 子类
    class 类别 类
    class body 类别本体 类体
    class declaration 类别宣告、类别宣告式 类声明
    class definition 类别定义、类别定义式 类定义
    class derivation list 类别衍化列 类继承列表
    class head 类别表头 类头
    class hierarchy 类别继承体系, 类别阶层 类层次体系
    class library 类别程式库、类别库 类库
    class template 类别模板、类别范本 类模板
    class template partial specializations ###### 类别模板偏特化 类模板部分特化
    class template specializations ###### 类别模板特化 类模板特化
    cleanup 清理、善后 清理、清除
    client 客端、客户端、客户 客户
    client-server 主从架构 客户/服务器
    clipboard 剪贴簿 剪贴板
    clone 复制 克隆
    collection 群集 集合
    combo box 复合方块、复合框 组合框
    command line 命令列 命令行 (系统文字模式下的整行执行命令)
    communication 通讯 通讯
    compatible 相容 兼容
    compile time 编译期 编译期、编译时
    compiler 编译器 编译器
    component 组件 组件
    composition 复合、合成、组合 组合
    computer 电脑、计算机 计算机、电脑
    concept 概念 概念
    concrete 具象的 实在的
    concurrent 并行 并发
    configuration 组态 配置
    connection 连接,连线(网络,资料库) 连接
    constraint 约束(条件)
    construct 构件 构件
    container 容器 容器 ###### (存放资料的某种结构如 list, vector…)
    containment 内含 包容
    context 背景关系、周遭环境、上下脉络 环境、上下文
    control 控制元件、控件 控件
    console 主控台 控制台
    const 常数(constant 的缩写,C++ 关键字)
    constant 常数(相对於 variable) 常量
    constructor(ctor) 建构式 构造函数 ###### (与class 同名的一种 member functions)
    copy (v) 复制、拷贝 拷贝
    copy (n) 复件, 副本
    cover 涵盖 覆盖
    create 创建、建立、产生、生成 创建
    creation 产生、生成 创建
    cursor 游标 光标
    custom 订制、自定 定制
    data 资料 数据
    database 资料库 数据库
    database schema 数据库结构纲目
    data member 资料成员、成员变数 数据成员、成员变量
    data structure 资料结构 数据结构
    datagram 资料元 数据报文
    dead lock 死结 死锁
    debug 除错 调试
    debugger 除错器 调试器
    declaration 宣告、宣告式 声明
    deduction 推导(例:template argument deduction) 推导、推断
    default 预设 缺省、默认
    defer 延缓 推迟
    define 定义 预定义
    definition 定义、定义区、定义式 定义
    delegate 委派、委托、委任 委托
    delegation (同上)
    demarshal 反编列 散集
    dereference 提领(取出指标所指物体的内容) 解叁考
    dereference operator dereference(提领)运算子 * 解叁考操作符
    derived class 衍生类别 派生类
    design by contract 契约式设计
    design pattern 设计范式、设计样式 设计模式 ※ 最近我比较喜欢「设计范式」一词
    destroy 摧毁、销毁
    destructor 解构式 析构函数
    device 装置、设备 设备
    dialog 对话窗、对话盒 对话框
    directive 指令(例:using directive) (编译)指示符
    directory 目录 目录
    disk 碟 盘
    dispatch 分派 分派
    distributed computing 分布式计算 (分布式电算) 分布式计算 分散式计算 (分散式电算)
    document 文件 文档
    dot operator dot(句点)运算子 . (圆)点操作符
    driver 驱动程式 驱动(程序)
    dynamic binding 动态系结 动态绑定
    efficiency 效率 效率
    efficient 高效 高效
    end user 终端用户
    entity 物体 实体、物体
    encapsulation 封装 封装
    enclosing class 外围类别(与巢状类别 nested class 有关)外围类
    enum (enumeration) 列举(一种 C++ 资料型别) 枚举
    enumerators 列举元(enum 型别中的成员) 枚举成员、枚举器
    equal 相等 相等
    equality 相等性 相等性
    equality operator equality(等号)运算子 == 等号操作符
    equivalence 等价性、等同性、对等性 等价性
    equivalent 等价、等同、对等 等价
    escape code 转义码 转义码
    evaluate 评估、求值、核定 评估
    event 事件 事件
    event driven 事件驱动的 事件驱动的
    exception 异常情况 异常
    exception declaration 异常宣告(ref. C++ Primer 3/e, 11.3) 异常声明
    exception handling 异常处理、异常处理机制 异常处理、异常处理机制
    exception specification 异常规格(ref. C++ Primer 3/e, 11.4) 异常规范
    exit 退离(指离开函式时的那一个执行点) 退出
    explicit 明白的、明显的、显式 显式
    export 汇出 引出、导出
    expression 运算式、算式 表达式
    facility 设施、设备 设施、设备
    feature 特性
    field 栏位,资料栏(Java) 字段, 值域(Java)
    file 档案 文件
    firmware 韧体 固件
    flag 旗标 标记
    flash memory 快闪记忆体 闪存
    flexibility 弹性 灵活性
    flush 清理、扫清 刷新
    font 字型 字体
    form 表单(programming 用语) 窗体
    formal parameter 形式叁数 形式叁数
    forward declaration 前置宣告 前置声明
    forwarding 转呼叫,转发 转发
    forwarding function 转呼叫函式,转发函式 转发函数
    fractal 碎形 分形
    framework 框架 框架
    full specialization 全特化(ref. partial specialization)
    function 函式、函数 函数
    function call operator 同 call operator
    function object 函式物件(ref. C++ Primer 3/e, 12.3) 函数对象
    function overloaded resolution 函式多载决议程序 函数重载解决(方案)
    functionality 功能、机能 功能
    function template 函式模板、函式范本 函数模板
    functor 仿函式 仿函式、函子
    game 游戏 游戏
    generate 生成
    generic 泛型、一般化的 一般化的、通用的、泛化
    generic algorithm 泛型演算法 通用算法
    getter (相对於 setter) 取值函式
    global 全域的(对应於 local) 全局的
    global object 全域物件 全局对象
    global scope resolution operator 全域生存空间(范围决议)运算子 :: 全局范围解析操作符
    group 群组
    group box 群组方块 分组框
    guard clause 卫述句 (Refactoring, p250) 卫语句
    GUI 图形介面 图形界面
    hand shaking 握手协商
    handle 识别码、识别号、号码牌、权柄 句柄
    handler 处理常式 处理函数
    hard-coded 编死的 硬编码的
    hard-copy 硬拷图 屏幕截图
    hard disk 硬碟 硬盘
    hardware 硬体 硬件
    hash table 杂凑表 哈希表、散列表
    header file 表头档、标头档 头文件
    heap 堆积 堆
    hierarchy 阶层体系 层次结构(体系)
    hook 挂钩 钩子
    hyperlink 超链结 超链接
    icon 图示、图标 图标
    IDE 整合开发环境 集成开发环境
    identifier 识别字、识别符号 标识符
    if and only if 若且唯若 当且仅当
    Illinois 伊利诺 伊利诺斯
    image 影像 图象
    immediate base 直接的(紧临的)上层 base class。 直接上层基类
    immediate derived 直接的(紧临的)下层 derived class。 直接下层派生类
    immutability 不变性
    immutable 不可变(的)
    implement 实作、实现 实现
    implementation 实作品、实作体、实作码、实件 实现
    implicit 隐喻的、暗自的、隐式 隐式
    import 汇入 导入
    increment operator 累加运算子 ++ 增加操作符
    infinite loop 无穷回圈 无限循环
    infinite recursive 无穷递回 无限递归
    information 资讯 信息
    infrastructure 公共基础建设
    inheritance 继承、继承机制 继承、继承机制
    inline 行内 内联
    inline expansion 行内展开 内联展开
    initialization 初始化(动作) 初始化
    initialization list 初值列 初始值列表
    initialize 初始化 初始化
    inner class 内隐类别 内嵌类
    instance 实体 实例 ###### (根据某种表述而实际产生的「东西」)
    instantiated 具现化、实体化(常应用於 template) 实例化
    instantiation 具现体、具现化实体(常应用於 template) 实例
    integer (integral) 整数(的) 整型(的)
    integrate 整合 集成
    interacts 交谈、互动 交互
    interface 介面 接口
    for GUI 介面 界面
    interpreter 直译器 解释器
    invariants 恒常性,约束条件 约束条件
    invoke 唤起 调用
    iterate 迭代(回圈一个轮回一个轮回地进行) 迭代
    exception 异常情况 异常
    exception declaration 异常宣告(ref. C++ Primer 3/e, 11.3) 异常声明
    exception handling 异常处理、异常处理机制 异常处理、异常处理机制
    exception specification 异常规格(ref. C++ Primer 3/e, 11.4) 异常规范
    exit 退离(指离开函式时的那一个执行点) 退出
    explicit 明白的、明显的、显式 显式
    export 汇出 引出、导出
    expression 运算式、算式 表达式
    facility 设施、设备 设施、设备
    feature 特性
    field 栏位,资料栏(Java) 字段, 值域(Java)
    file 档案 文件
    firmware 韧体 固件
    flag 旗标 标记
    flash memory 快闪记忆体 闪存
    flexibility 弹性 灵活性
    flush 清理、扫清 刷新
    font 字型 字体
    form 表单(programming 用语) 窗体
    formal parameter 形式叁数 形式叁数
    forward declaration 前置宣告 前置声明
    forwarding 转呼叫,转发 转发
    forwarding function 转呼叫函式,转发函式 转发函数
    fractal 碎形 分形
    framework 框架 框架
    full specialization 全特化(ref. partial specialization)
    function 函式、函数 函数
    function call operator 同 call operator
    function object 函式物件(ref. C++ Primer 3/e, 12.3) 函数对象
    function overloaded resolution 函式多载决议程序 函数重载解决(方案)
    functionality 功能、机能 功能
    function template 函式模板、函式范本 函数模板
    functor 仿函式 仿函式、函子
    game 游戏 游戏
    generate 生成
    generic 泛型、一般化的 一般化的、通用的、泛化
    generic algorithm 泛型演算法 通用算法
    getter (相对於 setter) 取值函式
    global 全域的(对应於 local) 全局的
    global object 全域物件 全局对象
    global scope resolution operator 全域生存空间(范围决议)运算子 :: 全局范围解析操作符
    group 群组
    group box 群组方块 分组框
    guard clause 卫述句 (Refactoring, p250) 卫语句
    GUI 图形介面 图形界面
    hand shaking 握手协商
    handle 识别码、识别号、号码牌、权柄 句柄
    handler 处理常式 处理函数
    hard-coded 编死的 硬编码的
    hard-copy 硬拷图 屏幕截图
    hard disk 硬碟 硬盘
    hardware 硬体 硬件
    hash table 杂凑表 哈希表、散列表
    header file 表头档、标头档 头文件
    heap 堆积 堆
    hierarchy 阶层体系 层次结构(体系)
    hook 挂钩 钩子
    hyperlink 超链结 超链接
    icon 图示、图标 图标
    IDE 整合开发环境 集成开发环境
    identifier 识别字、识别符号 标识符
    if and only if 若且唯若 当且仅当
    Illinois 伊利诺 伊利诺斯
    image 影像 图象
    immediate base 直接的(紧临的)上层 base class。 直接上层基类
    immediate derived 直接的(紧临的)下层 derived class。 直接下层派生类
    immutability 不变性
    immutable 不可变(的)
    implement 实作、实现 实现
    implementation 实作品、实作体、实作码、实件 实现
    implicit 隐喻的、暗自的、隐式 隐式
    import 汇入 导入
    increment operator 累加运算子 ++ 增加操作符
    infinite loop 无穷回圈 无限循环
    infinite recursive 无穷递回 无限递归
    information 资讯 信息
    infrastructure 公共基础建设
    inheritance 继承、继承机制 继承、继承机制
    inline 行内 内联
    inline expansion 行内展开 内联展开
    initialization 初始化(动作) 初始化
    initialization list 初值列 初始值列表
    initialize 初始化 初始化
    inner class 内隐类别 内嵌类
    instance 实体 实例 ###### (根据某种表述而实际产生的「东西」)
    instantiated 具现化、实体化(常应用於 template) 实例化
    instantiation 具现体、具现化实体(常应用於 template) 实例
    integer (integral) 整数(的) 整型(的)
    integrate 整合 集成
    interacts 交谈、互动 交互
    interface 介面 接口
    for GUI 介面 界面
    interpreter 直译器 解释器
    invariants 恒常性,约束条件 约束条件
    invoke 唤起 调用
    iterate 迭代(回圈一个轮回一个轮回地进行) 迭代
    iterative 反覆的,迭代的
    iterator 迭代器(一种泛型指标) 迭代器
    iteration 迭代(回圈每次轮回称为一个 iteration) 迭代
    item 项目、条款 项、条款、项目
    laser 雷射 激光
    level 阶 层 (级) 例 high level 高阶 高层
    library 程式库、函式库 库、函数库
    lifetime 生命期、寿命 生命期、寿命
    link 联结、连结 连接,链接
    linker 联结器、连结器 连接器
    literal constant 字面常数(例 3.14 或 “hi” 这等常数值) 字面常数
    list 串列(linked-list) 列表、表、链表
    list box 列表方块、列表框 列表框
    load 载入 装载
    loader 载入器 装载器、载入器
    local 区域的(对应於 global) 局部的
    local object 区域物件 局部对象
    lock 机锁
    loop 回圈 循环
    lvalue 左值 左值
    macro 巨集 宏
    magic number 魔术数字 魔法数
    maintain 维护 维护
    manipulator 操纵器(iostream 预先定义的一种东西) 操纵器
    marshal 编列 列集 叁考 demarshal
    mechanism 机制 机制
    member 成员 成员
    member access operator 成员取用运算子(有 dot 和 arrow 两种) 成员存取操作符
    member function 成员函式 成员函数
    member initialization list 成员初值列 成员初始值列表
    memberwise 以 member 为单元┅、members 逐一┅ 以成员为单位
    memberwise copy 以 members 为单元逐一复制
    memory 记忆体 内存
    menu 表单、选单 菜单
    message 讯息 消息
    message based 以讯息为基础的 基於消息的
    message loop 讯息回圈 消息环
    method (java) 方法、行为、函式 方法
    meta- 超- 元- 例 meta-programming 超编程 元编程
    micro 微 微
    middleware 中介层 中间件
    modeling 模塑
    modeling language 塑模语言,建模语言
    modem 数据机 调制解调器
    module 模组 模块
    modifier 饰词 修饰符
    most derived class 最末层衍生类别 最底层的派生类
    mouse 滑鼠 鼠标
    mutable 可变的 可变的
    multi-tasking 多工 多任务
    namespace 命名空间 名字空间、命名空间
    native 原生的 本地的、固有的
    nested class 巢状类别 嵌套类
    network 网路 网络
    network card 网路卡 网卡
    object 物件 对象
    object based 以物件为基础的 基於对象的
    object file 目的档 目标文件
    object model 物件模型 对象模型
    object oriented 物件导向的 面向对象的
    online 线上 在线
    opaque 不透明的
    operand 运算元 操作数
    operating system (OS) 作业系统 操作系统
    operation 操作、操作行为 操作
    operator 运算子 操作符、运算符
    option 选项,可选方案 选项
    ordinary 常规的 常规的
    overflow 上限溢位(相对於 underflow) 溢出(underflow:下溢)
    overhead 额外负担、额外开销 额外开销
    overload 多载化、多载化、重载 重载
    overloaded function 多载化函式 重载的函数
    overloaded operator 多载化运算子 被重载的操作符
    overloaded set 多载集合 重载集合
    override 改写、覆写 重载、改写、重新定义 ###### (在 derived class 中重新定义虚拟函式
    package 套件 包
    pair 对组
    palette 调色盘、组件盘、工具箱
    pane 窗格 窗格 ###### (有时为嵌板之意,例 Java Content Pane)
    parallel 平行 并行
    parameter 叁数(函式叁数列上的变数) 叁数、形式叁数、形叁
    parameter list 叁数列 叁数列表
    parent class 父类别(或称 base class) 父类
    parentheses 小括弧、小括号 圆括弧、圆括号
    parse 解析 解析
    part 零件 部件
    partial specialization 偏特化(ref. C++ Primer 3/e, 16.10) 局部特化 ###### (ref. full specialization)
    pass by address 传址(函式引数的传递方式)(非正式用语)传地址
    pass by reference 传址(函式引数的一种传递方式) 传地址, 按引用传递
    pass by value 传值(函式引数的一种传递方式) 按值传递
    pattern 范式、样式 模式
    performance 效率、性能兼而有之 性能
    persistence 永续性 持久性
    pixel 图素、像素 像素
    placement delete ref. C++ Primer 3/e, 15.8.2
    placement new ref. C++ Primer 3/e, 15.8.2
    platform 平台 平台
    pointer 指标 指针 址位器(和址叁器 reference 形成对映,满好)
    poll 轮询 轮询
    polymorphism 多型 多态
    pop up 冒起式、弹出式 弹出式
    port 埠 端口
    postfix 后置式、后序式 后置式
    precedence 优先序(通常用於运算子的优先执行次序)
    prefix 前置式、前序式 前置式
    preprocessor 前处理器 预处理器
    prime 质数 素数
    primitive type 基本型别 (不同於 base class,基础类别)
    print 列印 打印
    printer 印表机 打印机
    priority 优先权 (通常用於执行绪获得 CPU 时间的优先次序)
    procedure 程序 过程
    procedural 程序性的、程序式的 过程式的、过程化的
    process 行程 进程
    profile 评测 评测
    profiler 效能(效率)评测器 效能(性能)评测器
    programmer 程式员 程序员
    programming 编程、程式设计、程式化 编程
    progress bar 进度指示器 进度指示器
    project 专案 项目、工程
    property 属性
    protocol 协定 协议
    pseudo code 假码、虚拟码、伪码 伪码
    qualified 经过资格修饰(例如加上 scope 运算子) 限定
    qualifier 资格修饰词、饰词 限定修饰词
    quality 品质 质量
    queue 伫列 队列
    radian 径度 弧度
    radio button 圆钮 单选按钮
    raise 引发(常用来表示发出一个 exception) 引起、引发
    random number 随机数、乱数 随机数
    range 范围、区间(用於 STL 时) 范围、区间
    rank 等级、分等(ref. C++Primer 3/e 9,15章) 等级
    raw 生鲜的、未经处理的 未经处理的
    record 记录 记录
    recordset 记录集 记录集
    recursive 递回 递归
    re-direction 重导向 重定向
    refactoring 重构、重整 重构
    refer 取用 叁考
    refer to 指向、指涉、指代
    reference (C++ 中类似指标的东西,相当於 “化身”) 引用、叁考 址叁器, see pointer
    register 暂存器 寄存器
    reflection 反射 反射、映像
    relational database 关联式资料库 关系数据库
    represent 表述,表现 表述,表现
    resolve 决议(为算式中的符号名称寻找 解析 对应之宣告式的过程)
    resolution 决议程序、决议过程 解析过程
    resolution 解析度 分辨率
    restriction 局限
    return 传回、回返 返回
    return type 回返型别 返回类型
    return value 回返值 返回值
    robust 强固、稳健 健壮
    robustness 强固性、稳健性 健壮性
    routine 常式 例程
    runtime 执行期 运行期、运行时
    common language runtime (CLR) 译为「通用语言执行层」
    rvalue 右值 右值
    save 储存 存储
    schedule 排程 调度
    scheduler 排程器 调度程序
    scheme 结构纲目、组织纲目
    scroll bar 卷轴 滚动条
    scope 生存空间、生存范围、范畴、作用域 生存空间
    scope operator 生存空间(范围决议)运算子 :: 生存空间操作符
    scope resolution operator 生存空间决议运算子 生存空间解析操作符 ###### (与scope operator同)
    screen 萤幕 屏幕
    search 搜寻 查找
    semantics 语意 语义
    sequential container 序列式容器 顺序式容器 ###### (对应於 associative container)
    server 伺服器、伺服端 服务器、服务端
    serial 串行
    serialization 次第读写,序列化 序列化 (serialize)
    setter (相对於 getter) 设值函式
    signal 信号
    signature 标记式、签名式、署名式 签名
    slider 滚轴 滑块
    slot 条孔、槽 槽
    smart pointer 灵巧指标、精灵指标 智能指针
    snapshot 萤幕快照(图) 屏幕截图
    specialization 特殊化、特殊化定义、特殊化宣告 特化
    specification 规格 规格、规范
    splitter 分裂视窗 切分窗口
    software 软体 软件
    solution 解法,解决方案 方案
    source 原始码 源码、源代码
    stack 堆叠 栈
    stack unwinding 堆叠辗转开解(此词用於 exception 主题) 栈辗转开解 *
    standard library 标准程式库
    standard template library 标准模板程式库
    statement 述句 语句、声明
    status bar 状态列、状态栏 状态条
    STL 见 standard template library
    stream 资料流、串流 流
    string 字串 字符串
    subroutine
    subscript operator 下标运算子 [ ] 下标操作符
    subtype 子型别 子类型
    support 支援 支持
    suspend 虚悬 挂起
    symbol 符号 记号
    syntax 语法 语法
    tag 标签 标记 索引标签,页签
    target 标的(例 target pointer:标的指标) 目标
    task switch 工作切换 任务切换
    template 模板、范本 模板
    template argument deduction 模板引数推导 模板叁数推导
    template explicit specialization 模板显式特化(版本) 模板显式特化
    template parameter 模板叁数 模板叁数
    temporary object 暂时物件 临时对象
    text 文字 文本
    

    软件开发中常见英文缩写和各类软件开发文档的英文缩写

    英文简写文档名称
    
    MRD market requirement document (市场需求文档)
    
    PRD product requirement document (产品需求文档)
    
    SOW 工作任务说明书
    PHB Process Handbook (项目过程手册)
    
    EST Estimation Sheet (估计记录)
    
    PPL Project Plan (项目计划)
    
    CMP Software Management Plan( 配置管理计划)
    
    QAP Software Quality Assurance Plan (软件质量保证计划)
    
    RMP Software Risk Management Plan (软件风险管理计划)
    
    TST Test Strategy(测试策略)
     
    WBS Work Breakdown Structure (工作分解结构)
    
    BRS Business Requirement Specification(业务需求说明书)
    
    SRS Software Requirement Specification(软件需求说明书)
    
    STP System Testing plan (系统测试计划)
    
    STC System Testing Cases (系统测试用例)
    
    HLD High Level Design (概要设计说明书)
    
    ITP Integration Testing plan (集成测试计划)
    
    ITC Integration Testing Cases (集成测试用例)
    
    LLD Low Level Design (详细设计说明书)
    
    UTP Unit Testing Plan ( 单元测试计划)
    
    UTC Unit Testing Cases (单元测试用例)
    
    UTR Unit Testing Report (单元测试报告)
    
    ITR Integration Testing Report (集成测试报告)
    
    STR System Testing Report (系统测试报告)
    
    RTM Requirements Traceability Matrix (需求跟踪矩阵)
    
    CSA Configuration Status Accounting (配置状态发布)
    
    CRF Change Request Form (变更申请表)
    
    WSR Weekly Status Report (项目周报)
    
    QSR Quality Weekly Status Report (质量工作周报)
    
    QAR Quality Audit Report(质量检查报告)
    
    QCL Quality Check List(质量检查表)
    
    PAR Phase Assessment Report (阶段评估报告)
    
    CLR Closure Report (项目总结报告)
    
    RFF Review Finding Form (评审发现表)
    
    MOM Minutes of Meeting (会议纪要)
    
    MTX Metrics Sheet (度量表)
    
    CCF ConsistanceCheckForm(一致性检查表)
     
    BAF Baseline Audit Form(基线审计表)
    
    PTF Program Trace Form(问题跟踪表)
    

    转自:

    1、https://www.cnblogs.com/anni-qianqian/p/5618693.html
    2、https://www.cnblogs.com/hdic/p/5996282.html
    3、https://www.cnblogs.com/chjbbs/p/6064465.html

    更多相关内容
  • 用【Mathematica数学软件...马尔可夫链(Markov Chain, MC)是概率论和数理统计中具有马尔可夫性质(Markov property)且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)
  • 软件测试必问必背面试题

    万次阅读 多人点赞 2020-10-30 22:16:29
    软件测试必问必背面试题 01 软件测试理论部分 1.1 测试概念 1. 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试 单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的...

    https://blog.csdn.net/weixin_45912307/article/details/108661479

    01 软件测试理论部分

    1.1 测试概念

    1. 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试

    • 单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码
    • 集成测试:通过测试发现与模块接口有关的问题
    • 系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件
    • 回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保证修改的正确性
    • 验收测试:这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。验收测试包括Alpha测试和Beta测试。
      • Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行。并且在开发者对用户的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题
      • Beta测试 :由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场。由用户记录在测试中遇到的一系列问题,并定期报给开发者。

    2. 什么是黑盒?什么是白盒?黑盒和白盒的测试方法分别有哪些?

    • 黑盒:黑盒测试也称功能测试或数据驱动测试。把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试
      • 常用的黑盒测试方法:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
    • 白盒测试:也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试
      • 常用白盒测试方法:
        • 静态测试:不用运行程序的测试;
        • 动态测试:需要执行代码,通过运行程序找到问题;
      • 逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖
        • 1.语句覆盖每条语句至少执行一次。
        • 2.判定覆盖每个判定的每个分支至少执行一次。
        • 3.条件覆盖每个判定的每个条件应取到各种可能的值。
        • 4.判定/条件覆盖同时满足判定覆盖条件覆盖。
        • 5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
        • 6.路径覆盖使程序中每一条可能的路径至少执行一次。

    3. 测试流程:

    • 需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测试->验收测试

    4. app测试性能指标

    • 内存
    • cpu
    • 流量
    • 启动速度

    5. web测试和app测试不同点

    • 系统架构方面:

      • web项目,一般都是b/s架构,基于浏览器的
      • app项目,则是c/s的,必须要有客户端,用户需要安装客户端。
        web测试只要更新了服务器端,客户端就会同步会更新。App项目 则需要客户端和服务器都更新。
    • 性能方面:

      • web页面主要会关注响应时间
      • 而app则还需要关心流量、电量、CPU、GPU、Memory等。
    • 兼容方面:

      • web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统方面的兼容
      • app测试则要看分辨率,屏幕尺寸,操作系统、网络
      • web测试是基于浏览器的所以不必考虑安装卸载。
      • 而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景:包括安装时的中断、弱网、安装后删除安装文件 。

    6. 缺陷按优先级分为哪些类型? p1-p5 面试重点

    • 缺陷必须立即解决
    • 缺陷要求正常排队等待修复
    • 缺陷可以在方便时被纠正
    • 下一个版本修复
    • 不修复

    7. 测试用例的内容是什么? 面试重点

    • 用例编号
    • 测试概述或用例标题
    • 测试步骤
    • 预期结果
    • 输入数据
    • 优先级
    • 前置条件等

    8. 测试结束的标准是什么? 面试重点

    • 全部测试用例都被执行完成
    • 未修改bug都被确认或置为应有状态,暂缓修改的问题都有详尽的解析
    • 测试报告编写完成
    • 测试收尾工作结束
    • 测试总结完成
    • 项目处于试运行或上线阶段
    • 在测试计划中定义结束的标准:在一定性能下平稳运行多少天、本版本没有严重bug,普通buh数量在多少个以下,bug修复百分之多少以上
      ;实际测试达到上述要求,由项目、开发、测试经理共同签字,认同测试结束,版本即可发布。

    1.2 软件开发模型

    软件生命周期: 从软件最初构思到最终消亡(退役)的过程。

    1. 软件生命周期

    立项 ---需求分析 ---设计、编码、测试 ---发布 ---运行维护 ---淘汰
    软件立项===》可行性研究 ===》需求分析 ===》概要设计 ===》详细设计 ===》编码实现 ===》单元测试 ===》集成测试 ===》系统测试 ===》验收测试 ==》运行维护

    2. 瀑布模型

    在这里插入图片描述

    缺点:
    	1. 各阶段划分完全固定,阶段之间产生大量文档,极大增加工作量
    	2. 由于开发模型是线性的,用户只有等到整个过程的末期才能看到开发结果,增加开发风险
    	3. 不适应用户需求变化
    
    3 . 快速原型模型(现在特别流行模式) Axure 软件

    在这里插入图片描述

    1. 原理:迅速搭建一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识,最后在确定需求基础上开发客户满意的软件产品
    2. 特点:`适合预先不能确切定义需求的软件系统的开发`
    3. 优点: ` 克服瀑布模型缺点,减少由于软件需求不明确带来的开发风险 `
    
    4. 增量模型(最常用开发模型之一)

    在这里插入图片描述
    分批次地分析、设计、编码和测试这些增量组件。

    5. 迭代模型 开发进度快

    在这里插入图片描述

    1. 原理
    	`强调开发的深入 ---优化过程
    	`开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程
    2. 优点
    	降低在一个增量上的开支风险
    	降低产品无法按照既定进度进入市场的风险
    	加快开发工作进度`
    	适应需求变化快的场景`
    
    6. 螺旋模型

    在这里插入图片描述

    1. 原理:
       兼顾了快速模型的迭代的特征以及瀑布模型的系统化与严格监控
    2. 优点
    	最大特点:引入其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减少损失
    	适合大型昂贵的系统级的软件应用
    

    1.3 软件测试模型

    1. v模型

    在这里插入图片描述

    1. 原理:揭示开发过程和测试过程中各阶段的对应关系
    2. 缺点与不足:
    	仅把测试过程作为需求分析、系统设计及编码之后的一个阶段,忽略了测试对需求分析、系统设计的验证
    	需求的满足情况一直到后期验收测试才被验证
    	没有体现出“尽早和不断地进行软件测试”原则
    
    2. w模型

    在这里插入图片描述

    1. 由两个 v 字模型组成,分别代表测试与开发过程,明确表示了测试与开发并行关系
    2. 优点:
    	测试活动与软件开发同步进行
    	测试对象不仅是程序,包括需求与设计
    	尽早发现软件缺陷可降低软件开发成本
    3. 局限性:无法支持迭代开发模型(没有循环过程)
    
    3. h模型

    在这里插入图片描述

    1. 将测试活动完全独立出来,形成一个完全独立的流程
    2. 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了
    3. 软件测试要尽早准备,尽早执行,不同测试活动可按某个次序先后进行,也可反复进行(迭代)
    
    4. x模型

    在这里插入图片描述

    1. 针对单独的程序片段进行相互分离的编码和测试;
    2. 定位了探索性测试,这是不进行事先计划的特殊类型的测试;
    
    5. 软件测试生命周期

    获取测试需求
    编写测试计划
    制定测试方案
    开发与设计测试用例
    执行测试
    提交缺陷报告
    测试分析与评审
    提交测试总结
    准备下一版本测试

    6. 简述缺陷的生命周期? 面试重点

    • 软件测试人员提交缺陷报告;
    • 测试负责人审核后将缺陷分配给相关开发人员修复
    • 缺陷被修改后有测试人员根据缺陷报告中修改记录进行返测
    • 返测通过的缺陷由负责人关闭;
    • 返测未通过的缺陷直接返回给开发人员重新修改,然后再由测试人员返测,直到测试和开发达成一致处理意见。

    1.4设计用例方法

    1. 黑盒测试

    • 等价类划分法
      将系统的输入域划分为若干部分,然后从每个部分选取少量代表性数据进行测试。等价类可以划分为有效等价类和无效等价类
    • 边界值分析法
      是通过优先选择不同等价类间的边界值覆盖有效等价类和无效等价类来更有效的进行测试,因此该方法要和等价类划分法结合使用。
    • 正交试验法
      正交是从大量的试验点中挑选出适量的、有代表性的点
    • 状态迁移法
      是对一个状态在给定的条件内能够产生需要的状态变化,有没有出现不可达的状态和非法的状态
    • 判定表分析法
      判定表是分析和表达多种输入条件下系统执行不同动作的工具,
    • 因果图法
      因果图是用于描述系统输入输出之间的因果关系、约束关系。

    2. 白盒测试

    • 静态:
    • 动态:逻辑覆盖法,程序插桩技术,基本路径法,符号测试,错误驱动测试

    1.5 测试分类

    1.按开发阶段划分
    • 单元测试(模块测试)
      针对软件设计的最小单位---程序模块进行正确性校验的测试工作。
      目的:检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。
      单元测试需要从程序内部结构出发设计测试用例
      多个模块平行独立地进行单元测试
    • 集成测试(组装测试): 有序、递增的测试,持续不断的过程,持续时间比较长
      在单元测试基础上,将所有程序模块进行有序、递增的测试。
      基础测试是检验程序单元或部件的接口关系,逐步成为符合概要设计要求的程序部件或整个系统
    • 确认测试(有效性测试)----时间短
      在模拟环境下,验证软件所有功能和性能及其他特性是否与用户预期要求一致。
    • 系统测试:
      在真实系统运行环境下,检查完整的程序系统能否和系统(硬件、外设、网络和系统软件、支持平台)正确配置、连接,最终满足用户的所有需求
    • 验收测试
      按项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统;
    2.按测试技术划分
    • 黑盒测试(80%)
      通过软件外部表现来发现其缺陷和错误。黑盒测试把测试对象看出一个黑盒子,完全不考虑程序内部结构和处理过程。在程序界面处进行测试,只是检查程序是否按照需求规格说明书的规定正常实现
    • 白盒测试(结构测试):不管黑盒测试做得有多完全,白盒测试也有必要做
      通过对程序内部结构和分析、检测来寻找问题。
      把测试看成一个透明的盒子里,检测是否所有结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行
    • 灰盒测试(接口测试)
      关注输出对输入的正确性
    3. 按代码运行划分
    • 静态测试:不实际运行被测对象,而是静态检查程序代码、界面或文档中可能存在错误的过程
    • 代码测试:主要测试代码是否符合相应的标准和规范
    • 界面测试:主要测试软件的实际界面与需求中的说明是否相符
    • 文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求
    • 动态测试: 实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以我们判断一个测试属于动态还是静态测试,唯一标准就是看是否运行程序
    4. 按软件特性
    • 功能测试(黑盒测试):黑盒测试一方面,检查实际软件功能是否符合用户需求
    • 性能测试:关注软件中某一功能在指定的时间、空间条件下,是否使用正常
      主要有时间性能和空间性能
    • 安全性测试:验证按在系统内的包含机制能否在实际应用中对系统进行保护使之不被非法入侵,不受各种因素干扰
    5. 其他测试
    • 回归测试:对软件新版本测试时,重复执行之前某一个重要版本的测试用例(测试过程)
      目的:验证之前版本产生所有缺陷是否已被修复;确认修复这些缺陷没后引发新的缺陷
    • 冒烟测试(可行性测试):先验证一下软件基本功能是否实现,在对一个新版本进行系统大规模测试

    02shell编程和命令部分

    2.1shell常用命令

    1. 怎么用shell命令查看行号

    • 获取文本对应文本的行号,可以用grep,也可以用sed
      • grep -n “xxx” a.txt | cut -d “:” -f 1
      • sed -n -e ‘/xxx/=’ a.txt

    2. 怎么查进程id

    • shell获取进程ID的方法有三种:
      • 1、ps -A |grep “cmdname”| awk ‘{print $1}’
      • 2、pidof “cmdname”
      • 3、pgrep “cmdname”

    3. 网络相关常用命令

    • ifconnfig:查看网卡配置信息
    • route显示路由表
    • netstat:查看本地计算机所使用的网络服务状况
    • ping:测试本地计算机与目标主机是否连接 如ping 127.0.0.1

    4. linux查看进程

    • ps a 显示现行终端机下的所有程序,包括其他用户的程序。
    • ps u 以用户为主的格式来显示程序状况。
    • ps x 显示所有程序,不以终端机来区分。
    • 最常用的方法是ps -aux

    5. top

    • 用于实时显示 process 的动态。
    • 语法:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

    6. 查看磁盘

    • df命令参数功能:检查文件系统的磁盘空间占用情况
    • du:检查磁盘空间使用量
    • fdisk:用于磁盘分区

    7. 查看端口号、进程的指令是?动态查看日志的指令?怎么判断一个端口存不存在,磁盘满了怎么处理,删除一个目录下的txt文件,你还熟悉其他什么linux指令?

    • 查看端口号命令:
      • netstat –tunlp|grep 端口号
      • lsof -i:端口号
    • 查看进程指令
      • ps -ef |grep 进程
      • -e  显示所有程序。
      • -f   显示UID,PPIP,C与STIME栏位。
    • 动态查看日志
      • 1、先切换到:cd usr/local/tomcat5/logs
      • 2、tail -f catalina.out

    2.2 linux三剑客:grep、sed、awk 、[find]

    1. grep:指定文件中搜索特定的内容,并将含有这些内容的行标准输出
    • 格式:grep [options] 文件名
    • [options]主要参数:
      • -c:只输出匹配行的计数
      • -i:不区分大小写(只适用于单字符)
      • -h:查询多文件时不显示文件名
      • -l:查询多文件时只输出包含匹配字符的文件名
      • -n:显示匹配行及行号
      • -s:不显示不存在或无匹配文本的错误信息
      • -v:显示不包含匹配文本的所有行
      • -e:使用正则匹配
      • -E:使用扩展正则
      • --color=auto:将
    1. sed 流文本编辑器
    2. awk 文本和数据处理,
    3. find作用是在目录中搜索文件,它的使用权限是所有用户。
    • 格式:find [path][options][expression]
      • path指定目录路径。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。

    03 数据库部分

    3.1概念

    1. 主键: 主关键字primary key
    针对一个表来说的,主键修饰的列:唯一,不能重复,不能为空;一个表中只能只有一个主键

    2. 外键:
    针对两个表来说,加强表与表之间联系

    3. 关系模型的规范化: 关系模式要满足的条件称为规范化形式,范式(NF)

    • 目的:消除储存异常,减少数据冗余,保证数据完整性和存储效率
    • 如果关系 R 的所有属性均为简单属性,每个属性是不可再分的(无重复的列),则 R 满足第一范式
    • 第二范式(2NF):关系 R 满足第一范式,每一个非主键关键字段完全依赖于主键,则称 R 满足第二范式
    • 第三范式(3NF):关系 R 满足第二范式,且非关键字段之间不存在依赖关系,则称满足第三范式。(从表只能引用主表中一个列)
    • 总结:一个基本的关系型数据库,需要满足第一范式;一个完整的关系型数据库要满足第三范式

    4. 唯一约束

    • 特征:
      不允许出现重复的值,但是可以为多个 null
      同一个表中可以有多个唯一约束
      如果不给唯一约束名称,就默认和列名相同

    5. 非空约束

    • 格式: 列名 数据类型 not null
    • 一个表里面也可以有多个非空约束

    6. 默认约束 default 一个表中可以有多个默认约束

    7. 外键约束

    • 表的外键值必须在主表中能找到
    • 当主表记录被从表参照时,主表的记录将不允许删除
    • 如果要删除数据,需要先删除表中依赖该记录的数据(删从表记录)
    • 主表:被引用的表(被参照的表) zhu
    • 从表:应用的表 外键约束建立在表里面 cong
    • 被引用的列,要么主键约束,要么唯一约束
    • 注意:在引用过程中,主表和从表的来个两个列的数据必须保持一致。(内容也要保持一致)

    8. 检查约束
    描述:限制某个列的取值范围 年龄 18-25 性别:要么男或女

    9. 主键、外键作用,索引的优点与不足

    • 主键
      表中的唯一标示键
      作用:保证实体的完整性,加快数据库的操作速度。
    • 外键:主键的从属,表示两个表之间的联系
      作用:作用外键可以建立数据之间的关联,避免冗余
    • 索引:
      • 优点
        • 通过创建唯一性的索引,保证表中数据唯一性
        • 加速数据的检索速度
        • 加快表与表之间的连接
        • 使用优化隐藏器,提供系统性能
      • 缺点:
        • 创建索引需要时间,
        • 索引需要占用物理空间
        • 当对表中数据进行修改时,索引也要动态维护,减低数据的维护速度。

    3.2表结构操作

    1. 表的创建语法

       create table 表名(
       属性名1 数据类型 [约束条件],
       属性名2 数据类型 [约束条件],
       属性名3 数据类型 [约束条件]
       );
    

    2. 删除表
    drop table 表名;

    3. 删除多个表
    drop table 表名 1,表名 2 ...

    1.修改表结构

    1. 添加列(属性)
    alter table 表名 add 属性名 数据类型;

    2. 删除表(属性)
    alter table 表名 drop 属性名;

    3. 修改属性:数据类型
    alter table 表名 modify 属性名 数据类型;

    4. 修改字段名
    alter table 表名 change 旧字段名 新字段名 数据类型;

    3.3数据库增删改查

    • create alter drop desc主要针对表结构来说的
    • insert delete update select 主要针对表中的数据来进行操作的
    3.1.1 DML-INSERT

    insert 插入 值和列一一对应关系

    • 格式 1:
      insert into 表名(列名 1,列名 2 ...) values(值 1,值 2 ...);
    • 格式 2:
      insert into 表名 values(值 1,值 2 ...);
    • 格式 3:
      insert into 表名 values(值 1,值 2,值 3 ...),(值 1,值 2,值 3 ...);
    3.1.2. 删除 delete
    • 格式 1:代表清空表内的数据
      delete from 表名;
    • 格式 2:
      有条件的进行删除delete from 表名 where 条件;
    3.3.3 DML–UPDATE 更新
    • 格式 1
      update table_name set 字段=值;
    • 格式 2
      update table_name set 字段=值,字段=值;
    • 格式 3
      update table_name set 字段=值,字段=值 where 条件;
    3.3.4. select 查询

    1.基本格式:

    • select 列名 from 表名;
    • select 列名 1,列名 2,列名 3 ... form 表名;

    1. 使用关键字 distinct 查询

    • 在查询返回结果中删除重复行
    • 语法:select distinct 列名称 from 表名称;
      只针对一个列去重

    2. 使用别名查询

    • 根据需要对数据显示的标题进行修改
      格式:select 列名1 '别名',列名2 '别名',... from 表名;
    • AS 关键字连接列表达式和指定的别名
      select 列名 as '别名' from 表名;

    3. 条件查询

    • 格式:select 列名 from 表名 where 条件;
    • 如果在查询过程中,有多个条件,可以使用 and 或 or 进行连接
    • and 连接 —》同时满足; or 连接 ------只满足其一

    4. 范围搜索范围

    • 在范围之内
      select 列名 from where 列名 between 开始值 and 结束值
    • 不在范围之内
      select 列名 from 表名 where 列名 not between 开始值 and 结束值;

    5. 列表搜索条件

    • in: 只要匹配到括号里任意一个值就会有查询结果;
      • 格式:select 列名 from 表名 where 列名 in (值 1,值 2,值 3 ...)
    • not in
      • 格式: select 列名 from 表名 where 列名 not in(值 1,值 2,值 3);

    3.4 数据库表连接查询:子查询、内连接、外连接

    1. 多表查询

    • 去重
      • 显式
        	 select [distinct] A.列名,B.列名,C.列名,... from C 
        	 join A on A.key=C.FKeyA 
        	 join B on B.key=C.FKeyA and B.key=A.key
        	 [GROUP BY 字段名]
        
      • 隐式
        	select [distinct] A.列名,B.列名,C.列名,... from 表A,
        	表B,
        	表C
        	 where 表A.字段1 = 表B.字段1 and
        	 表B.字段2 = 表C.字段2 and ....
        	 [GROUP BY 表名.字段名]
        
    • 排序
      select  A.列名,B.列名,C.列名,... from C 
       join A on A.key=C.FKeyA 
       join B on B.key=C.FKeyA and B.key=A.key
      [ORDER BY 表名.字段名]
      

    2. 子查询

    • 子查询只返回一个值
    • 子查询首选使用in做匹配
    • 子查询在其他查询结果的基础上提供了一种有效的方式来表示where字句的条件 。
    • 子查询的selec查询总是使用圆括号括起来。
    • 对于子查询来说,外查询条件要什么,子查询就查什么。 一一对应的关系。
    • 子查询结果分类:
      • 标量子查询(子查询结果为单个值):
        • 子查询返回的结果是单个值〔数字、字符串、日期等)
        • 常用操作符:= <> > >= <= <
      • 列子查询(子查询结果为一列):子查询返回的结果是一列
        • 常用操作符:in、not in、any、some、all
        	select 列表名 from 表名 where 字段名 > all (子查询语句);
        	select 列表名 from 表名 where 字段名 > any (子查询语句);
        
        在这里插入图片描述
      • 行子查询(子查询结果为一行):
        • 常用操作符:=、<>、 in、not in
        • select 字段名,... from 表名A where (字段名1,字段名2,...) = (select 字段名1值,字段名2值,... from 表名B where 条件)
      • 表子查询(子查询结果为多行多列):in
        • select 字段名,... from 表名A where (字段名1,字段名2,...) in (select 字段名1值,字段名2值,... from 表名B where 条件)

    3. 内连接:只有匹配到的情况下才会返回结果值

    • 格式一(隐式):
      from 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2... 
      form 表名1,表名2
      where 表名1.列=表名2.列; //列为相同的列
      
    • 格式二(显式):
      select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2... 
      from 表名1 inner join 表名2
      on 表名1.列=表名2.列
      

    4. 外连接

    • 外部连接会返回from字句中提到的至少一个表或视图中的所有行
    • 左连接:显示左边所有行。如果左表的某行在右表中没有找到匹配的行,则结果集中的右表相对应位置为null。
      select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2
      from 表名1 left outer join 表名2
      on 表名1.列=表名2.列; //列为大家共有的列
      
    • 右连接:显示右边所有行
      right outer join
      select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2
      from 表名1 right outer join 表名2
      on 表名1.列=表名2.列; 
      
    • 区分是左连接还是右连接:左连接以坐标为参考,左表没有则返回null,右连接以右表为参考,右表没有则返回null

    5.联合查询

    • 把多次查询的结果合并起来,形成一个新的查询结果集
    • 对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。
    • union all会将全部的数据直接合并在一起,union 会对合并之后的数据去重。
      select 字段名 from 表A ....
      UNION [ALL]
      select 字段名 from 表B ...;
      

    3.4数据库视图、索引、事务

    3.4.1 事务处理

    事务:一组操作的集合,由一系列语句构成的逻辑工作单元。是一个不可分割的工作单元,事务把所有操作作为一个整体一起向系统提交或撤销操作请求,这些请求要么同时成功,要么同时失败

    1. 事务的四个属性

    • 原子性:对数据库所做操作要么全部执行,要么全部取消
    • 一致性:事务完成时候,必须使所有数据保持一致状态
    • 隔离性:事务所作的修改必须和其他事务所作修改隔离
    • 持久性:事务提交后,对数据库所做操作永久保存

    2. 事务操作

    • 查看事务提交方式:SELECT @@autocommit ;
    • 设置事务提交方式:SET @@autocommit = 0 ;
    • 开启事务:START TRANSACTIONBEGIN
    • 提交事务: commit
    • 撤销语句:rollback

    3. 并发事务引发的问题

    • 脏读:一个事务可以读到另一个事务未提交的数据
    • 不可重复读:一个事务先后读取同一条记录,但读取的数据不一样
    • 幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据
      已经存在,好像出现了 “幻影”
    3.4.2 索引

    1. 定义: 索引(index)是帮助MySQL高效获取数据的数据结构(有序)

    2. 创建索引主要作用

    • 加快数据索引
    • 保证数据唯一性
    • 表与表之间参照完整性
    • 在使用group by、order by子句进行查询时,利用索引可以减少排序和分组时间。

    3. 索引不足之处

    • 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
    • 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

    4. 索引是否必须:

    • 创建索引需要占用数据空间并花费一定时间
    • 遍历索引会减慢数据修改速度

    5. 索引结构分类

    • B+Tree索引:
      • 相对于B-tree的区别:1)所有数据都出现在叶子节点上;2)叶子节点形成一个单向链表
      • 在原B+Tree的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问的性能
    • Hash索引:
      • 采用一定的hash算法,将键值换算成新的hash值,映射到对应的槽位上,然后存储在hash表中
      • 高性能,底层数据结构是用哈希表实现的, 只有精确匹配索引列的查询才有效, 不支持范围查询,只支持memory引擎
      • 如果两个(或多个)键值,映射到一个相同的槽位上,就产生了hash冲突(也称为hash碰撞),可以通过链表来解决
      • 特点:
        • 只能用于对等比较(==,in),不支持范围查询(between,>,<,…)
        • 无法利用索引完成排序操作
        • 查询效率高,通常只需要检索一次就可以了,效率通常高于B+tree
    • R-tree索引(空间索引):主要用于地理空间数据类型,只支持MyISAM引擎
    • Full-text(全文索引):是一种通过建立倒排索引,快速匹配文档的方式

    6.索引分类

    • 主键索引:对于表中主键创建的索引,默认自动创建,有且只有一个
    • 唯一索引:避免同一个表中某数据列中的值重复,可以有多个
    • 常规索引:快速定位特定数据,可以有多个
    • 全文索引:查找文本中的关键字,可以有多个

    6. 选择创建索引的数据列

    • 连接中频繁使用的列
    • 定义有主键和外键的列
    • 在指定范围中快速或频繁查询的列
    • 需要按排序顺序快速或频繁检索的列

    7.聚合索引和辅助索引的区别?

    • 聚合索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据,必须有且只有一个
    • 辅助索引:将数据与索引分开存储,索引结构的叶子节点关联的是对应的主键(id),可以存多个

    8. 创建索引

    • create [UNIQUE|FULLTEXT] index 索引的名字 on 表名(列名);
    • 创建唯一索引:
      create unique index 索引名字 on 表名(列名);

    9. 删除索引

    • drop index index_name on table_name;
    • drop index 索引名字 on 表名;

    10.sql索引优化

    • 查看sql执行频次:show global STATUS like 'Com_______';
    • 慢查询日志
      • show variables like ‘slow_query_log’; # 查询是否打开了慢查询开关
      # find / -name -type f 'my.cnf'
      vi /etc/mysql/my.cnf
      # 开启慢查询日志查询开关
      slow_qurey_log=1
      # 设置慢日志时间
      long_query_time=1
      
      • systemctl restart mysql; # 重启mysql
      cd /var/lib/mysql
      tail -f xxxslow.log
      
    • 查看 sql耗时
      select @@have_profiling; 			  # 是否支持profile操作
      select @@profiling # profiling		  # 开关是否已开启
      set profiling=1; 					  # 开启profiling
      show profiles;						  # 查看执行耗时
      show profile for query query_id; 	  # 查着指定query_id的SQL语句各个阶段的耗时情况
      show profile cpu for query query_id;  # 查看指定query_id的SQL语句CPU的使用情况
      
    3.4.3 视图

    1.视图定义基于某个查询结果的虚表,是从一个或多个表或视图导出的表,视图数据的修改也会影响原表的数据 insert update delete
    2.视图优点

    • 简化操作:使用数据库视图向最终用户和外部应用程序隐藏底层表的复杂性。通过数据库视图,只需要使用简单的 SQL 语句,不需要编写具有许多连接的复杂语句
    • 安全性
      • 将基表中重要的字段信息/敏感数据,可以不通过视图给用户
      • 允许创建只读视图以向特定用户公开只读数据,用户只能在只读视图中检索数据,但不能对其进行更新
    • 独立性:视图可以使应用程序和数据库表在一定程度上独立

    3.视图缺点

    • 性能差:从数据库视图查询数据速度变慢,特别是如果视图是基于其他视图创建的
    • 修改限制
      • 当用户试图修改视图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于比较复杂的试图,可能是不可修改的
      • 每当更改与视图关联的基本表的结构时,也必须更改视图

    4.视图语句

    • 创建视图
      create view 视图名字 as select 语句;

    • 修改视图
      alter view 视图名

    • 在视图中插入一行数据
      insert into 视图名字 vulues(值1,值2...);

    • 修改视图数据
      update 视图名字 set 列=值 where 条件;

    • 删除视图中数据
      delete from 视图名字 where 条件;

    • 删除视图
      drop view 视图名字;

    • 删除多个视图"
      drop view 视图名1,视图名2,视图名3;

    3.4.4 存储过程

    1.存储过程定义
    事先经过编译并存储在数据库中的一段sql语句的集合。减少数据在数据库和应用服务器之间的传输,提高数据处理的效率

    2.存储过程特点

    • 封装、复用
    • 可以接收参数,也可以返回参数
    • 减少网络交互,效率提升

    3.存储过程基本语法

    • 创建
      create PROCEDURE 存储过程名称([参数列表])
      BEGIN
      		sql语句
      END;
      
    • 调用
      call 存储过程名称([参数]);
      
    • 查看
      SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = '数据库名称'; -- 查询指定数据库的存储过程及状态信息 
      SHOW CREATE PROCEDURE 存储过程名称 ; -- 查询某个存储过程的定义
      
    • 删除
      DROP PROCEDURE [ IF EXISTS ] 存储过程名称 ;
      

    04 计算机网络部分

    1. 三次握手,四次挥手过程

    • 三次握手:
      • 第一次握手:客户端发送syn包(syn=1,seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认;
      • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
      • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
        握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
    • 四次挥手:断开一个TCP连接则需要“四次挥手”。
      • 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
      • 第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
        - 第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
      • 第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。

    2. OSI,TCP/IP,五层协议的体系结构,以及各层协议

    • OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    • TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。
    • 五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。
    • 每层作用
      • 物理层:传输二进制比特流
      • 数据链路层:负责将上层数据封装成帧
      • 网络层:负责路由寻址和广播 ;广播:发送消息和接收消息
        *传输层:负责建立一个可靠的端到端的连接;端到端:发送到接收 ;过程:建立、维护、撤销(拆除)
      • 会话层:负责建立维护拆除会话,为端应用之间提供控制功能(可靠性)
      • 表示层:完成对传输数据格式转换:格式化;发:加密;接:解密;发:压缩,接:解压缩
      • 应用层:对应用软件提供网络支持

    3. cookie、session、token

    • cookie:在客户端存储在客户端用于存储会话信息的
    • session:在服务器端,记录用户的请求状态,一般默认时间30min
      • session_id会存在cookie中,每次请求cookie中所有信息都会传递给服务器,服务器通过session_id来识别是否是同一个用户请求,不是同一个用户的话,就会要求重新登录
    • token:访问权限,保存在客户端本地
      • 鉴权:访问的接口是否正常,是否非法访问绕过前端。 防止跳过页面直接访问接口**token**
      • 授权:是否具有访问接口的权限。 唯一全局动态的 。

    4. 常用状态码

    • 100系列:请求已收到继续处理;

    • 200系列:表示成功

      • 200:正常,服务器正确响应了请求
    • 300系列:资源重定向;

      • 301:永久重定向;请求的网页已永久移动到新位置
      • 302:2临时重定向;被请求文档已经临时移至别处,此文档新的url在location响应头中给出
      • 303:浏览器对于POST的响应进行重定向至新的url
      • 307:浏览器对于GET的响应重定向至新的url
    • 400系列:客户端错误:

      • 400:错误请求;服务器不理解请求的语法。
      • 401:未授权;如请求参数、方法、格式等
      • 403:拒绝访问;服务器理解客户的请求,但拒绝处理它(没有权限)
      • 404:请求资源不存在
    • 500系列:服务器端出错

      • 500:服务器内部错误
      • 501:尚未实施;服务器不具备完成请求的功能
      • 502:服务器网关错误
      • 503:服务器由于维护或者负载过重未能应答
      • 504请求超时

    5. http请求头和响应头

    • http请求及其结构:
      请求信息包含:请求行(request) 请求头部header 、空行和请求数据组成
    • 响应及其结构
      响应组成:状态行、响应头报文、空行和响应正文

    6. IP地址的分类

    • A类地址:以0开头, 第一个字节范围:1~126(1.0.0.0 - 126.255.255.255);

    • B类地址:以10开头, 第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);

    • C类地址:以110开头, 第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);

    • D类地址:以1110开头,第一个字节范围:224~239(224.0.0.0 - 239.255.255.255);(作为多播使用)

    • E类地址:保留

    • 以下是留用的内部私有地址:

      • A类 10.0.0.0–10.255.255.255
      • B类 172.16.0.0–172.31.255.255

      • C类 192.168.0.0–192.168.255.255

    7. 常见一些词汇

    • ARP:地址解析协议(Address Resolution Protocol)
    • RARP:反地址解析协议(Reverse Address Resolution Protocol)将ip地址转换为物理地址
    • FTP:文件传输协议(File Transfer Protocol)
    • HTTP:超文本传输协议(Hyper Text Transfer Protocol)
    • TCP:传输控制协议(Transmission Control Protocol)
    • UDP:用户数据报协议(User Datagram Protocol)

    8. TCP的三次握手过程?为什么会采用三次握手,若采用二次握手可以吗?
    建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。
    (1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。
    (2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
    (3)采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。

    9. 常用四种请求方法

    • get:
    • post
    • put
    • delete

    . get和post区别

    • GET - 从指定的资源请求数据。请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接
    • POST - 向指定的资源提交要被处理的数据。POST请求会把请求的数据放置在HTTP请求包的包体中

    10. http和https区别

    • HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
    • HTTPS和HTTP的区别主要如下:
      • https需要到cat申请证书,需要交费
      • http是超文本传输协议,信息明文传输,https具有安全性的ssl加密传输协议
      • http和https使用完全不同的连接方式和端口号,前者80,后者443
      • http连接简单、无状态;https可进行加密传输、身份验证网络协议

    11. 请你说一下分布式和集群的概念。
    分布式:是指将不同的业务分布在不同的地方,
    集群:是指将几台服务器集中在一起,实现同一业务。

    分布式中的每一个节点,都可以做集群,而集群并不一定就是分布式的。集群有组织性,一台服务器垮了,其它的服务器可以顶上来,而分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。

    12. 路由寻址(路由):
    在路由器中,从一个接口接收到数据包,根据数据包所携带的目的地址进行定向转发到另一个接口的过程。

    13. HTTP协议工作原理
    浏览器作为HTTP客户端通过URL向http服务端即web服务器发送所有请求
    web服务器根据接收到的请求后,向客户端发送响应信息

    05 web和app自动化

    1. web元素定位七种方式

    1. 优先使用的6种
      find_element_by_id (返回一个元素)
      find_element(s)_by_class_name (根据类名获取元素列表)
      find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表)
      find_element(s)_by_link_text (根据连接文本获取元素列表)
      find_element(s)_by_partial_link_text (根据链接包含的文本获取元素列表)
      find_element(s)_by_tag_name (根据标签名获取元素列表)
      find_element(s)_by_css_selector 根据css选择器获取

    2. 万不得已下使用的两个
      find_element(s)_by_css_selector (根据css选择器来获取元素列表)
      find_element(s)_by_xpath (返回一个包含元素的列表)

    2. app元素定位3种方式

    by_id
    by_class_name
    by_xpath

    3. adb常用命令

    • adb 帮助adb --help

    • 启动adb 服务adb start-server

    • 关闭adb 服务adb kill-server

    • 获取设备号adb devices

    • 获取系统版本adb shell getprop ro.build.version.release

    • 发送文件到手机adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径

      • adb push C:\Users\win\Desktop\xx.png /sdcard
    • 从手机拉取文件: adb pull 手机端的路径/拉取文件名 电脑端存储文件路径

      • adb pull /sdcard/xx.png C:\Users\win\Desktop
    • 查看手机运行日志: adb logcat

    • 进入到手机终端: adb shell

    • 安装app到手机: adb install 路径/xxx.apk

    • 卸载手机app : adb uninstall app

    • 获取app启动包名和启动名(⚠手机需要先打开对应app)

      1. Mac/Linux: adb shell dumpsys window windows | grep mFocusedApp

      2. 在 Windows 终端运⾏adb shell dumpsys window w | findstr mCurrent

    • 获取app启动时间: adb shell am start -W 包名/.启动名

    • 查看设备ip地址:

      • adb shell ifconfig wlan0
      • adb shell netcfg
    • 查看设备cpu信息: adb shell cat /proc/cpuinfo

    • 查看设备内存信息: adb shell cat /proc/meminfo

    • 点亮屏幕: adb shell input keyevent 224

    • 熄灭屏幕: adb shell input keyevent 223

    3. 键盘操作常用函数

    1. send_keys(Keys.BACK_SPACE)删除键(BackSpace)
    2. send_keys(Keys.SPACE)空格键(Space)
    3. send_keys(Keys.TAB)制表键(Tab)
    4. send_keys(Keys.ESCAPE)回退键(Esc)
    5. send_keys(Keys.ENTER)回车键(Enter)
    6. send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
    7. send_keys(Keys.CONTROL,‘c’)复制(Ctrl+C)
    8. send_keys(Keys.CONTROL,‘v’) 全选(Ctrl+V)
    9. send_keys(Keys.CONTROL,‘x’)复制(Ctrl+X)

    4. 鼠标操作常用函数

    1. context_click() 右击 --> 此方法模拟鼠标右键点击效果
    2. double_click() 双击 --> 此方法模拟双标双击效果
    3. drag_and_drop() 拖动 --> 此方法模拟双标拖动效果
    4. move_to_element() 悬停 --> 此方法模拟鼠标悬停效果
    5. perform() 执行 --> 此方法用来执行以上所有鼠标方法

    5. selenium 原理

    6. apppium:

    开源、跨平台的UI自动化测试工具,支持多种语言编写的测试脚本
    原理:
    1. test scripts(测试脚本发送一个请求到appium server)
    2. appium server接收到请求后进行解析并把请求转发给 bootstrap.jar。
    3. jar接收到appium的命令,调用UIAutomator命令实现操作
    4. 最终结果由bootstrap.jar返回给Appium server。

    7. fixture

    1 .必须继承unittest.TestCase类,setUp、tearDown才是一个Fixture;
    2. setUp:一般做初始化工作,比如:实例化浏览器、浏览器最大化、隐式等待设置
    3. tearDown:一般做结束工作,比如:退出登录、关闭浏览器
    4. 如果一个测试类有多个test开头方法,则每个方法执行之前都会运行setUp、结束时运行tearDown

    06 python语法和高级编程

    07数据结构和算法

    7.1 概念

    1. 几种基本的数据结构:链表、栈、队列、树

    • 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
    • 栈和队列是比较特殊的线性表
      • 栈是只允许在一端插入和删除的表,后进先出
      • 队列:先进先出。只允许在头部进行删除操作,在尾部进行插入操作
    • 树:树型结构是一类非线性数据结构

    2. 请回答数组和链表的区别,以及优缺点

    • 1.数组:
      • 将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。
      • 如果应用需要快速访问数据,很少插入和删除元素,就应该用数组。
    • 2.链表:
      • 链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起
      • 如果应用需要经常插入和删除元素就需要用链表。

    3. 有哪些排序算法

    • 1.冒泡排序:通过与相邻元素的比较和交换来把小的数交换到最前面。时间复杂度为O(n^2),空间复杂度是O(1)。
    • 2. 选择排序:在一次排序后把最小的元素放到最前面。选择排序是通过对整体的选择,只有在确定了最小数的前提下才进行交换。选择排序的时间复杂度为O(n^2),空间复杂度是O(1)属于不稳定排序.
    • 3. 插入排序:通过比较找到合适的位置插入元素来达到排序的目的。注意在插入一个数的时候要保证这个数前面的数已经有序。时间复杂度也是O(n^2),空间复杂度为O(1)。是稳定排序
    • 4. 快速排序:快速排序是比较和交换小数和大数,这样一来不仅把小数冒泡到上面同时也把大数沉到下面。一般选取第一个数作为基准数。复杂度是O(nlgn)。空间复杂度是O(logn)属于不稳定算法。

    4. 堆和栈的区别

    • 堆栈空间分配区别:
      • 1、栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
      • 2、堆(操作系统):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
    • 堆栈缓存方式区别:
      • 1、栈使用的是一级缓存,他们通常都是被调用时处于存储空间中,调用完毕立即释放;
      • 2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
    • 堆栈数据结构区别:
      • 堆(数据结构):堆可以被看成是一棵树,如:堆排序;
      • 栈(数据结构):一种先进后出的数据结构。

    5. 请问你知道什么加密算法吗

    • 常见的加密算法分为三类,对称加密算法,非对称加密算法,Hash算法
      • 对称加密,指加密和解密使用相同密钥的加密算法
      • Hash算法:它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一Hash值,但不能通过这个Hash值重新获得目标信息。常见的有MD4、MD5

    7.2必考算法题

    1. 冒泡算法

    num = [1, 5, 10, 58, 12, 2]
    for i in range(len(num)-1):  # 比较n-1轮,n为元素个数
        for j in range(len(num)-1-i):  # 剩余两两进行比较的次数
            if num[j] < num[j + 1]:
                num[j + 1], num[j] = num[j], num[j + 1]
    

    2. 打印99乘法表

    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={}".format(i,j,i*j),end=' ')
        print()
    

    3. 杨辉三角**

    massage = '''
    杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
    '''
    l = [[0] * i for i in range(1, 31)]
    for i in range(30):
        for j in range(i + 1):
            if j == 0 or i == j:
                l[i][j] = 1
            else:
                l[i][j] = l[i - 1][j - 1] + l[i - 1][j]
    
    n = int(input())
    for i in range(n):
        for j in range(i + 1):
            print('{:>5d}'.format(l[i][j]), end='')
        print()
    

    4. 水仙花

    massage = """
    求100-999 所有的"水仙花数"。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 
    例如: 153 是一个"水仙花数",153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
    """
    l = []
    for i in range(100,1000):
        a = i // 100
        b = (i%100) // 10
        c = i % 10
        if a**3 + b**3 + c**3 == i:
            l.append(i)
    for i in range(len(l)):
        print(l[i],end = " ")
      
     # 输出结果 153 370 371 407 
    

    5. 金字塔图案

    massage = '''
    打印用“*”组成的金字塔图案。
    输入描述:
    多组输入,一个整数(2~20),表示金字塔边的长度,即“*”的数量,也表示输出行数。
    
    输出描述:
    针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。
    '''
    while True:
        try:
            n = int(input())
            for i in range(n):
                print(' ' * (n - i-1) + '* ' * (i + 1))
    
        except:
            break
    

    6. 波非那契数列

    def fib(lenght):
        a, b = 0, 1
        n = 0
        while n < lenght:
            yield b
            a,b = b,a+b
            n += 1
    gen = fib(9)
    for i in gen:
        print(i,end=' ')
    

    7. 序列中整数去重

    massage = '''
    题目描述
    给定一个整数序列,把其中的重复的整数去掉,并将去重后的序列从小到达排序输出。
    输入描述:
    第一行,输入一个整数n,表示序列有n个整数。
    第二行输入n个整数(每个整数大于等于1,小于等于1000),整数之间用空格分隔。
    输出描述:
    去重并且从小到大排列的整数序列,整数之间用空格分隔。
    '''
    n = int(input())
    l = list(map(int, input().split()))
    new_l = sorted(set(l))
    for i in new_l:
        print(i, end=' ')
    

    8. 数字直角三角形图案

    massage = '''
    打印用数字组成的数字三角形图案。
    输入描述:
    多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
    输出描述:
    针对每行输入,输出用数字组成的对应长度的数字三角形,每个数字后面有一个空格。
    '''
    while True:
        try:
            n = int(input())
            for i in range(n):
                for j in range(1,i+1):
                    print(j,end=' ')
                print()
        except:
            break
           
     """
    

    9. 一行代码实现1~100的和

    print(sum([i for i in range(1,101)]))
    

    10. 反向输出一个字符串

    # 法1
    s = str(input("请输入一个需要排序字符串:"))
    # new_s = s[-1::-1]
    new_s = s[::-1]
    print(new_s)
    
    # 法2
    str = list(input('input a string:'))
    str.reverse()#该方法没有返回值,若打印则出现None,但会对列表元素进行反向排序。因此用print(list)来查看排序即可
    print(''.join(str))
    
    展开全文
  • How To Measure the Working Set Size on Linux|来源:内核月谈概述本文主要摘自brendangregg大神的blog: http...
    • How To Measure the Working Set Size on Linux|来源:内核月谈

    概述

    本文主要摘自brendangregg大神的blog: 

    http://www.brendangregg.com/blog/2018-01-17/measure-working-set-size.html

    研究如何衡量一个特定业务程序的working set size。先不谈概念,让我们一起先思考一下为什么要研究WSS呢?举个例子来说,某些后台daemon为了性能,喜欢在程序在启动阶段就创建好各种fixed-size的内存池,且不支持动态grow/shrink,这些内存池的真实利用率如何?是否存在浪费?访问频率如何?读者可能会想到通过在内存池实现上做一些简单统计,不难得到程序的访问频率或者冷热内存页。那么如果是一个第三方程序呢?对测量的人来说是一个黑盒子,这种场景则只能尝试在操作系统层来考虑。本文从Linux的角度系统阐述了目前的常用手段,有什么缺陷以及一些优化手段。

    作者

    邓刚,马涛,Linux系统工程师,来自阿里云系统组。

    本文中若有任何疏漏错误,有任何建议和意见,请回复内核月谈微信公众号,或通过gavin.dg at linux.alibaba.com>或者 tao.ma at linux.alibaba.com反馈。

    阿里云系统团队,是由原淘宝内核组扩建而成,2013年淘宝内核组响应阿里巴巴集团的号召,整建制转入阿里云,开始为云计算底层系统构建完善的系统支持。 阿里云系统团队是由一群具有高度使命感和自我追求的内核开发人员组成,团队中的大多数人,都是活跃的社区内核开发人员。目前的工作领域主要涉及(但不限于) Linux内核的内存管理、文件系统、网络和内核维护构建,以及和内核相关联的用户态库和工具。如果你对我们的工作很感兴趣,欢迎加入我们,请将简历发送至 tao.ma at linux.alibaba.com或者 boyu.mt at alibaba-inc.com。

    正文

    Working Set Size(WSS)是指一个app保持正常运行所须的内存。比如一个应用在初始阶段申请了100G主存,在实际正常运行时每秒只需要50M,那么这里的50M就是一个WSS。评估WSS能干嘛呢?它可以用来进行内存容量规划并进行必要的内存扩容或者软件优化。这个问题并不新鲜而且非常重要,然而brendangregg却表示至今为止没有实际可用的有效工具(译者注:严重同意,而且在翻译这篇文章之前译者也开发了类似工具,在阿里巴巴内部使用)。有经验的读者可能会注意到Linux top命令的输出中,有两列分别是VIRT与RES,其中VIRT是进程使用的虚拟内存地址空间大小,而RES则是实际使用的物理内存(如果考虑共享映射等,则需要用到smaps proc文件的PSS或者top命令的SHARE,不过这两者对于理解WSS无益,故不在此展开)。比如,一个进程刚启动时通过私有匿名映射了(map_flags=MAP_PRIVATE | MAP_ANON)100G内存,然后实际只访问其中50G,那么VIRT=100G,RES=50G。那么问题来了,如何评估这50G内存的访存频率呢?是否存在明显的冷热区分呢?针对这个问题,brendangregg开发了两款基于Linux系统的小工具,下文将分别详细介绍。

    Method 1: Referenced Page flag

    这是基于Linux Kernel 2.6.22引入的一个特性:the ability to set and read the referenced page flag from user space, added for analyzing memory usage. brendangregg大神基于此实现了一个https://github.com/brendangregg/wss wss.pl工具,下面的案例在0.1s内存测量mysqld(PID=423)的WSS:

    640?wx_fmt=png

    上面表示0.1秒内mysqld访问了28M物理内存(总内存403.66M)。为什么选取0.1s而不是更长?大神解释说这样短时间段内的测量可以帮助我们正确评估业务程序对CPU cache的使用(比如L1/L2/L3, TLB L1/L2等)。28M略大于CPU LLC的大小,所以cache并非工作得很完美。这个工具也支持累计模式,仅重置一次referenced flag然后以固定间隔持续采集,输出如下:

    640?wx_fmt=png

    可以看到WSS在逐渐增加。其中各列的含义:

    Est(s): 采集时刻;

    RSS(MB):物理内存使用(MBytes);

    PSS(MB):按共享映射的次数,均摊算出的物理内存使用量(MBytes);

    Ref(MB):在Est(s)内,进程实际访问过的内存(MBytes)。

    细心的读者可能会发现,数据中的Est并非恰好是整数秒。这里的原因是因为程序本身在重置referenced flag或者从proc接口读取都需要消耗一定的时间,而且随着进程使用的内存越多,开销越大。

    这个小工具的原理什么呢?对x86 MMU架构有了解的读者应该知道PTE有一个bit为 accessed bit。它的特性是:一旦CPU访问了一个内存地址,那么该地址相应的PTE的accessed bit将会被置上。这是一个硬件特性,至于如果利用它则需要我们一起发挥想象力了。著名的linux mm 子系统里的LRU页框回收算法,在除了以软件的方式打tag之外,就依赖了该bit来区分页的冷热程度。这里多说一句,其实WSS这个小工具的目的是找出特定时间段内被访问过的页,而LRU则是找出最近一段时间段内未被访问过或访问频率低的页,本质上是不是很像呢?所以大家都是用了相同的bit,做了类似的事情。回到正题,David Rientjes在2007年提了一个patchhttp://lkml.iu.edu/hypermail/linux/kernel/0702.1/0628.html,用于从内核导出文件/proc/PID/clear_refs,用户可以在用户态通过对特定进程清理page referenced flag,这样在/proc/PID/smaps文件中就可以查看被访问过的内存大小了。

    这个工具的缺陷非常明显,比如可能影响到被测试的业务进程(比如延迟增加10%,对于100G内存的进程,影响时间超过1s),而且该工具自身也需要消耗system time。另外,该工具由于从用户态接口清理了page referenced flag,这也将影响到LRU算法的准确度,尤其是swap打开以后,很可能将一些热内存页判定为冷内存并swap到disk。更严重的是,一些老内核还有panic风险。在Linux 4.3+版本中的引入了idle page flag特性可以解决此处提到的部分缺陷,后文再详细介绍。

    WSS profile charts

    brendangregg大神尤其擅长将各种性能数字图形化,本文当然也不例外。wss.pl支持profile模式(-P),以等比数列步长(即当前步长 = 上一次步长 * 2)进行统计,输出如下:

    640?wx_fmt=png

    每相邻两行的采集间隔成等比递增:短采样间隔可以用来评估进程对cpu cache的利用,长采样间隔则用来评估进程的物理内存使用趋势。注意这仅是采集一轮的数据(译者注:仅在采样的初始阶段清理一次page referenced flag,可以理解为 1* write + N * read,如果读者想得到更一般化的数据,则应该采集多轮)。将上面的采集数据图形化展示:

    640?wx_fmt=png

    uniform 是指100M地址空间内uniform access distribution (译者注:应是指“匀速”访问100M地址空间),可以看到除第一个点外,其他点均稳定在100M,这是因为此时uniform访问的进程还没来得及访问整个地址空间。为了对比,将地址空间调整为2G,如下图所示(分别是对数坐标曲线以及线性曲线):

    640?wx_fmt=png

    640?wx_fmt=png

    Method 2: Idle Page Flag

    Idle page flag 是Vladimir Davydov在Linux4.3中实现的一个新特性,引入了两种新的page flag:idle和young,它弥补了方案一的一个重要缺陷:影响page reclaim的逻辑。该方案仍然是基于PTE的accessed bit,通过在page_ext_flags引入了额外的idle&&young page flag来保证page reclaim的逻辑不受此影响(译者注:此处关于idle page tracking实现的描述不够准确,译者理解如下:方案一的缺陷在于清理PTE的accessed bit会导致page reclaim的逻辑误判某些热页为冷页,那么通过引入一个软件上的young flag来辅助记录此页为热页,清理accessed bit时将flag置位。这样page reclaim如果遇到young flag置位的页则认为其最近同样被访问过)。另外,上述两个flag在64bit的kernel中被直接定义为page flag,在32bit的kerne中由于page flags空间不够用,则基于page extension特性来定义。以下摘自内核源码树中的文档Documentation/vm/idle_page_tracking.txt vm/idle_page_tracking.txt:

    That said, in order to estimate the amount of pages that are not used by a workload one should:

    1. Mark all the workload’s pages as idle by setting corresponding bits in /sys/kernel/mm/page_idle/bitmap. The pages can be found by reading /proc/pid/pagemap if the workload is represented by a process, or by filtering out alien pages using /proc/kpagecgroup in case the workload is placed in a memory cgroup.

    2. Wait until the workload accesses its working set.

    3. Read /sys/kernel/mm/page_idle/bitmap and count the number of bits set. If one wants to ignore certain types of pages, e.g. mlocked pages since they are not reclaimable, he or she can filter them out using /proc/kpageflags.

    brendangregg基于此特性写了两个版本的工具,在github https://github.com/brendangregg/wss 可以获取源码,运行截图如下:

    640?wx_fmt=png

    这里v1与v2在统计结果上没有差别,主要在于实现方式上:v1每次是一个page为单位进行处理,而v2是batch处理,以maps文件中的每一行(即vma)为单位进行处理,时间消耗从44s降为0.8s。(译者注:之前提到的译者自己写的工具也实现了类似的功能,采用的是v1与v2的折中方案,每次以65536个page为单位处理,不过考虑到测量进程本身的CPU开销以及内存使用,最后放弃该方案)。brendangregg还提到了如果pagemap,idlebitmap,kpagecgroup等支持mmap(2)系统调用,可以避免过多的系统调用。同时大神还想一次性把系统所有page的idle flag都设置上,这样可以得到整机的快照(译者注:idle page tracking只支持扫描LRU链表上的页,对net/kmalloc等kmem是透明的)。另外,第一次采样间隔预期是0.01s(而目前扫描一次最小消耗0.8s),为了实现这个目标,brendangregg提到可以通过发送SIGSTOP以及SIGCONT让被测量的进程停止运行,显然这很可能影响进程的正常逻辑,比如影响tcp窗口,触发超时等。(译者注:brendangregg似乎更关注于细粒度的采样,辅助性能分析;其实粗粒度采样也有参考价值,可以分析内存利用率或者集群调度等,此为后话)。

    结语

    由于目前没有有效的工具来测量WSS,所以brendangregg大神尝试写了两个小工具。同时他还有一篇文章提到了一些其他方案来预估WSS,比如PMC,见

    http://www.brendangregg.com/wss.html 

    里面有一些更深入的讨论,读者有兴趣可自行前往一观。另外,译者在阿里内部也实现了几个不同版本的工具,实现原理类似,方法则有不小的差异,欢迎大家来阿里一起切磋。


    查看我们精华技术文章请移步:

    Linux阅码场原创精华文章汇总

    求职招聘请移步:

    阅码场: 连接企业和Linux/嵌入式人才的平台总线

    扫描二维码关注"Linux阅码场"

    640?wx_fmt=png

    展开全文
  • Oracle sqlplus的set命令详细使用和设置

    千次阅读 2019-09-24 18:19:48
    Oracle sqlplus的set命令详细使用和设置 SQL*Plus是Oracle提供的访问数据库服务器的...

    Oracle sqlplus的set命令详细使用和设置






    SQL*Plus是Oracle提供的访问数据库服务器的客户端软件,是Oracle的核心组件,也是Oracle DBA最常用的工具。

    1.1  sqlplus命令

    sqlplus 连接数据库的时候如果不写"@字符串"的话走的是ORACLE_SID路径,如果加上的话走的是TNSNAMES.ORA文件

     

    C:\Users\Administrator>sqlplus /?

     

    SQL*Plus: Release 11.2.0.1.0 Production on 星期一 12月 17 14:36:43 2012

     

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

     

     

    SQL*Plus: Release 11.2.0.1.0 Production

     

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

     

    使用 SQL*Plus 执行 SQL, PL/SQL 和 SQL*Plus 语句。

     

    用法 1: sqlplus -H | -V

     

        -H             显示 SQL*Plus 版本和

     用法帮助。

        -V             显示 SQL*Plus 版本。

     

    用法 2: sqlplus [ [] [{logon | /nolog}] [] ]

     

      为: [-C ] [-L] [-M ""] [-R ] [-S]

     

        -C    将受影响的命令的兼容性设置为

      指定的版本。该版本具有

     "x.y[.z]" 格式。例如, -C 10.2.0

        -L             只尝试登录一次, 而不是

     在出错时再次提示。

        -M "" 设置输出的自动 HTML 标记。选项

     的格式为:

     HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text]

     [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]

        -R      设置受限模式, 以禁用与文件系统交互的

      SQL*Plus 命令。级别可以

     是 1, 2 或 3。最高限制级别为 -R 3, 该级别

     禁用与文件系统交互的

     所有用户命令。

        -S             设置无提示模式, 该模式隐藏

     命令的 SQL*Plus 标帜, 提示和回显

     的显示。

     

      为: {[/][@] | / }

                  [AS {SYSDBA | SYSOPER | SYSASM}] [EDITION=value]

     

        指定数据库帐户用户名, 口令和数据库连接

        的连接标识符。如果没有连接

        标识符, SQL*Plus 将连接到默认数据库。

     

        AS SYSDBA, AS SYSOPER 和 AS SYSASM 选项是数据库

        管理权限。

     

        的形式可以是 Net 服务名

        或轻松连接。

     

          @[ | [//]Host[:Port]/]

     

            是服务的简单名称, 它解析

            为连接描述符。

     

            示例: 使用 Net 服务名连接到数据库, 且

                     数据库 Net 服务名为 ORCL。

     

               sqlplus myusername/mypassword@ORCL

     

            Host 指定数据库服务器计算机的主机名或 IP

            地址。

     

            Port 指定数据库服务器上的监听端口。

     

            指定要访问的数据库的

            服务名。

     

            示例: 使用轻松连接连接到数据库, 且

                     服务名为 ORCL。

     

               sqlplus myusername/mypassword@Host/ORCL

     

        /NOLOG 选项可启动 SQL*Plus 而不连接到

        数据库。

     

        EDITION 指定会话版本的值。

     

     

      为: @|[.] [ ...]

     

        使用将分配给脚本中的替代变量的指定参数

        从 Web 服务器 (URL) 或本地文件系统 (filename.ext)

        运行指定的 SQL*Plus 脚本。

     

    在启动 SQL*Plus 并且执行 CONNECT 命令后, 将运行站点概要

    文件 (例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用户概要文件

    (例如, 工作目录中的 login.sql)。这些文件

    包含 SQL*Plus 命令。

     

    有关详细信息, 请参阅 SQL*Plus 用户指南和参考。

     

    Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。


    我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。

     

    除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。

     

    SQL脚本中使用注释:

    1.remark

    2./* ..*/ 第一个注释符后需跟一个空格

    3.--

    注意:

        1、注释不能在最初的几个关键字之前,SQLPLUS会对/之前的文本解析为命令而提交

        CREATE OR REPLACE

        /* HELLO */

        PROCEDURE HELLO AS

        BEGIN

        DBMS_OUTPUT.PUT_LINE('HELLO');

        END;

        /

        Warning: Procedure created with compilation errors.

        修改为:

        CREATE OR REPLACE PROCEDURE

        /* HELLO */

        HELLO AS

        BEGIN

        DBMS_OUTPUT.PUT_LINE('HELLO');

        END;

        /

        Procedure created.

     

    1.1.1      帮助文档

    脚本:@?/sqlplus/admin/help/hlpbld.sql helpus.sql

     

    [ZFXDESKDB1:oracle]:/oracle>cd $ORACLE_HOME/sqlplus/admin/help

    [ZFXDESKDB1:oracle]:/oracle/app/oracle/product/11.2.0/db/sqlplus/admin/help>l

    total 168

    -rw-r--r--    1 oracle   dba             265 Feb 16 2003  helpbld.sql

    -rw-r--r--    1 oracle   dba             366 Jan 03 2011  helpdrop.sql

    -rw-r--r--    1 oracle   dba           71817 Aug 16 2012  helpus.sql

    -rw-r--r--    1 oracle   dba            2154 Jan 03 2011  hlpbld.sql

    [ZFXDESKDB1:oracle]:/oracle/app/oracle/product/11.2.0/db/sqlplus/admin/help>more helpbld.sql

    --

    -- Copyright (c) Oracle Corporation 2003.  All Rights Reserved.

    --

    -- NAME

    --   helpbld.sql

    --

    -- DESCRIPTION

    --   Invoke and execute the script to loads the SQL*Plus HELP system and

    --   upon completion, exit the SQL*Plus connection

    --


    @@&1/hlpbld.sql &2

    exit

    [ZFXDESKDB1:oracle]:/oracle/app/oracle/product/11.2.0/db/sqlplus/admin/help>sqlplus / as sysdba


    SQL*Plus: Release 11.2.0.4.0 Production on Wed Jul 13 09:54:19 2016


    Copyright (c) 1982, 2013, Oracle.  All rights reserved.



    Connected to:

    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

    With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

    Data Mining and Real Application Testing options


    SYS@omflhr> ? set

    SP2-0171: HELP system not available.

    SYS@omflhr> @?/sqlplus/admin/help/hlpbld.sql helpus.sql


    PL/SQL procedure successfully completed.



    Table created.



    Grant succeeded.



    。。。。。。。。。。。。。。。。。。。。。。。。。



    Commit complete.



    PL/SQL procedure successfully completed.


    SYS@omflhr> ? set


     SET

     ---


     Sets a system variable to alter the SQL*Plus environment settings

     for your current session. For example, to:

         -   set the display width for data

         -   customize HTML formatting

         -   enable or disable printing of column headings

         -   set the number of lines per page


     SET system_variable value


     where system_variable and value represent one of the following clauses:


       APPI[NFO]{OFF|ON|text} NEWP[AGE] {1|n|NONE}

       ARRAY[SIZE] {15|n}     NULL text

       AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n}      NUMF[ORMAT] format

       AUTOP[RINT] {OFF|ON}   NUM[WIDTH] {10|n}

       AUTORECOVERY {OFF|ON}  PAGES[IZE] {14|n}

       AUTOT[RACE] {OFF|ON|TRACE[ONLY]}         PAU[SE] {OFF|ON|text}

         [EXP[LAIN]] [STAT[ISTICS]]             RECSEP {WR[APPED]|EA[CH]|OFF}

       BLO[CKTERMINATOR] {.|c|ON|OFF}           RECSEPCHAR {_|c}

       CMDS[EP] {;|c|OFF|ON}  SERVEROUT[PUT] {ON|OFF}

       COLSEP {_|text}          [SIZE {n | UNLIMITED}]

       CON[CAT] {.|c|ON|OFF}    [FOR[MAT]  {WRA[PPED] |

       COPYC[OMMIT] {0|n}        WOR[D_WRAPPED] |

       COPYTYPECHECK {ON|OFF}    TRU[NCATED]}]

       DEF[INE] {&|c|ON|OFF}  SHIFT[INOUT] {VIS[IBLE] |

       DESCRIBE [DEPTH {1|n|ALL}]                 INV[ISIBLE]}

         [LINENUM {OFF|ON}] [INDENT {OFF|ON}]   SHOW[MODE] {OFF|ON}

       ECHO {OFF|ON}          SQLBL[ANKLINES] {OFF|ON}

       EDITF[ILE] file_name[.ext]               SQLC[ASE] {MIX[ED] |

       EMB[EDDED] {OFF|ON}      LO[WER] | UP[PER]}

       ERRORL[OGGING] {ON|OFF}SQLCO[NTINUE] {> | text}

         [TABLE [schema.]tablename]             SQLN[UMBER] {ON|OFF}

         [TRUNCATE] [IDENTIFIER identifier]     SQLPLUSCOMPAT[IBILITY] {x.y[.z]}

       ESC[APE] {\|c|OFF|ON}  SQLPRE[FIX] {#|c}

       ESCCHAR {@|?|%|$|OFF}  SQLP[ROMPT] {SQL>|text}

       EXITC[OMMIT] {ON|OFF}  SQLT[ERMINATOR] {;|c|ON|OFF}

       FEED[BACK] {6|n|ON|OFF}SUF[FIX] {SQL|text}

       FLAGGER {OFF|ENTRY|INTERMED[IATE]|FULL}  TAB {ON|OFF}

       FLU[SH] {ON|OFF}       TERM[OUT] {ON|OFF}

       HEA[DING] {ON|OFF}     TI[ME] {OFF|ON}

       HEADS[EP] {||c|ON|OFF} TIMI[NG] {OFF|ON}

       INSTANCE [instance_path|LOCAL]           TRIM[OUT] {ON|OFF}

       LIN[ESIZE] {80|n}      TRIMS[POOL] {OFF|ON}

       LOBOF[FSET] {1|n}      UND[ERLINE] {-|c|ON|OFF}

       LOGSOURCE [pathname]   VER[IFY] {ON|OFF}

       LONG {80|n}            WRA[P] {ON|OFF}

       LONGC[HUNKSIZE] {80|n} XQUERY {BASEURI text|

       MARK[UP] HTML [OFF|ON]   ORDERING{UNORDERED|

         [HEAD text] [BODY text] [TABLE text]              ORDERED|DEFAULT}|

         [ENTMAP {ON|OFF}]      NODE{BYVALUE|BYREFERENCE|

         [SPOOL {OFF|ON}]            DEFAULT}|

         [PRE[FORMAT] {OFF|ON}] CONTEXT text}



    SYS@omflhr>


    SYS@omflhr> ? index


    Enter Help [topic] for help.


     @             COPY         PAUSE  SHUTDOWN

     @@            DEFINE       PRINT  SPOOL

     /             DEL          PROMPT SQLPLUS

     ACCEPT        DESCRIBE     QUIT   START

     APPEND        DISCONNECT   RECOVERSTARTUP

     ARCHIVE LOG   EDIT         REMARK STORE

     ATTRIBUTE     EXECUTE      REPFOOTER                TIMING

     BREAK         EXIT         REPHEADER                TTITLE

     BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE

     CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE

     CLEAR         HOST         RUN    WHENEVER OSERROR

     COLUMN        INPUT        SAVE   WHENEVER SQLERROR

     COMPUTE       LIST         SET    XQUERY

     CONNECT       PASSWORD     SHOW



    SYS@omflhr>

     

    1.1.2       基本命令

    1.1.2.1      执行一个SQL脚本文件

    SQL>start file_name

    SQL>@ file_name

    我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。

     

    1.1.2.2      对当前的输入进行编辑

    SQL>edit

     

    1.1.2.3      重新运行上一次运行的sql语句

    SQL>/

     

    1.1.2.4      将显示的内容输出到指定文件

    SQL> SPOOL file_name

    在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。

    1.1.2.5      关闭spool输出

    SQL> SPOOL OFF

    只有关闭spool输出,才会在输出文件中看到输出的内容。

     

    1.1.2.6      显示一个表的结构

    SQL> desc table_name



    1.1.2.7      sql*plus 和 操作系统交互


    不退出sql*plus,在sql*plus中执行一个操作系统命令:

    HOST

    Sql> host hostname

    该命令在windows下可能被支持。

     

    在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回

    Linux 下是:! 或者host

    Windows 是:$ 或者host

    sql>!

    $hostname

    $exit

    sql>  


     

    1.1.3       set命令设置环境变量

    概述:可以用来控制输出的各种格式,set  show 如果希望永久的保存相关的设置,可以去修改 glogin.sql 脚本。

    注意:这些设置的顺序不同,效果可能不同。


    Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。


    我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。


    除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。

     

    SQL> help set

     SET

     ---

     Sets a system variable to alter the SQL*Plus environment settings

     for your current session. For example, to:

         -   set the display width for data

         -   customize HTML formatting

         -   enable or disable printing of column headings

         -   set the number of lines per page

     In iSQL*Plus, you can also use the Preferences screen to set

     system variables.

     

     SET system_variable value

     where system_variable and value represent one of the following clauses:

     

       APPI[NFO]{OFF|ON|text} NUM[WIDTH] {10|n}

       ARRAY[SIZE] {15|n}     PAGES[IZE] {14|n}

       AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n}      PAU[SE] {OFF|ON|text}

       AUTOP[RINT] {OFF|ON}   RECSEP {WR[APPED]|EA[CH]|OFF}

       AUTORECOVERY {OFF|ON}  RECSEPCHAR {_|c}

       AUTOT[RACE] {OFF|ON|TRACE[ONLY]}         SERVEROUT[PUT] {ON|OFF}

         [EXP[LAIN]] [STAT[ISTICS]]               [SIZE {n | UNLIMITED}] [FOR[MAT]

       BLO[CKTERMINATOR] {.|c|ON|OFF}             {WRA[PPED] |

       CMDS[EP] {;|c|OFF|ON}     WOR[D_WRAPPED] |

       COLSEP {_|text}           TRU[NCATED]}]

       CON[CAT] {.|c|ON|OFF} *SHIFT[INOUT] {VIS[IBLE] |

       COPYC[OMMIT] {0|n}       INV[ISIBLE]}

       COPYTYPECHECK {ON|OFF}*SHOW[MODE] {OFF|ON}

       DEF[INE] {&|c|ON|OFF} *SQLBL[ANKLINES] {OFF|ON}

       DESCRIBE [DEPTH {1|n|ALL}]               SQLC[ASE] {MIX[ED] |

         [LINENUM {OFF|ON}] [INDENT {OFF|ON}]     LO[WER] | UP[PER]}

       ECHO {OFF|ON}         *SQLCO[NTINUE] {> | text}

      *EDITF[ILE] file_name[.ext]              *SQLN[UMBER] {ON|OFF}

       EMB[EDDED] {OFF|ON}    SQLPLUSCOMPAT[IBILITY] {x.y[.z]}

       ESC[APE] {/|c|OFF|ON} *SQLPRE[FIX] {#|c}

       FEED[BACK] {6|n|ON|OFF}                 *SQLP[ROMPT] {SQL>|text}

       FLAGGER {OFF|ENTRY|INTERMED[IATE]|FULL}  SQLT[ERMINATOR] {;|c|ON|OFF}

      *FLU[SH] {ON|OFF}      *SUF[FIX] {SQL|text}

       HEA[DING] {ON|OFF}    *TAB {ON|OFF}

       HEADS[EP] {||c|ON|OFF}*TERM[OUT] {ON|OFF}

       INSTANCE [instance_path|LOCAL]          *TI[ME] {OFF|ON}

       LIN[ESIZE] {80|n} ({150|n} iSQL*Plus)    TIMI[NG] {OFF|ON}

       LOBOF[FSET] {1|n}     *TRIM[OUT] {ON|OFF}

       LOGSOURCE [pathname]  *TRIMS[POOL] {OFF|ON}

       LONG {80|n}            UND[ERLINE] {-|c|ON|OFF}

       LONGC[HUNKSIZE] {80|n} VER[IFY] {ON|OFF}

       MARK[UP] HTML [OFF|ON] WRA[P] {ON|OFF}

         [HEAD text] [BODY text] [TABLE text]   XQUERY {BASEURI text|

         [ENTMAP {ON|OFF}]      ORDERING{UNORDERED|

         [SPOOL {OFF|ON}]                ORDERED|DEFAULT}|

         [PRE[FORMAT] {OFF|ON}] NODE{BYVALUE|BYREFERENCE|

       NEWP[AGE] {1|n|NONE}          DEFAULT}|

       NULL text                CONTEXT text}

       NUMF[ORMAT] format

     

     An asterisk (*) indicates the SET option is not supported in iSQL*Plus.

     

    1.1.3.1     set  pagesize

     pagesize

    说明:设置每页显示的行数目,默认是 14,用法和 linesize 一样,至于其它环境参数的使用也是大同小异

    例如:set  pagesize  90

     

    set pagesize 0;  --设置每页显示的行数,缺省为24,为了避免分页,可设定为0,但不显示列标题

     

    设置一页有多少行数

    SQL> SET PAGES[IZE] {24|n}  

    如果设为0,则所有的输出内容为一页并且不显示列标题 ,取值范围为 (自 0 至 50000)

     

     

    1.1.3.2      set colsep

    set colsep  ' ';    --域输出分隔符,默认为空格


    1.1.3.3      set trimout

    set trimout on;   --去除标准输出每行的拖尾空格,缺省为off ,也可以set trim on


    1.1.3.4      set trimspool

    set trimspool on;  --去除重定向(spool)输出每行的拖尾空格,on 去除 off 不去除,缺省为off(去字段空格),也可以为 set trims on

     

     

    1.1.3.5      set newpage


    SET NEWPAGE NONE; --默认为1设置页与页之间的分隔

    SQL> SET NEWP[AGE] {1|n|NONE}

    当set newpage 0 时,会在每页的开头有一个小的黑方框。

    当set newpage n 时,会在页和页之间隔着n个空行。

    当set newpage none 时,会在页和页之间没有任何间隔。


    1.1.3.6      set  verify

    set verify off;      --是否显示替代变量被替代前后的语句,默认开启   

    set verify on/off

    当在sqlplus中运行的sql语句中有替代变量(以&或&&打头)的时候,

    set verify(或ver) on/off可以设置是否显示替代变量被替代前后的语句。

    如:

    SQL> set ver on;

    SQL> select * from dual where 1=&var;

    Enter value for var: 1

    old 1: select * from dual where 1=&var

    new 1: select * from dual where 1=1

     

    DU

    --

    X

     

    而如果设为off,则显示如下:

    SQL> set ver off;

    SQL> select * from dual where 1=&var;

    Enter value for var: 1

     

    DU

    --

    X

    使用以&和&&开头的替代变量的前提是set define on;(不过这是缺省状态)。  

    clip_image004.gif


    1.1.3.7      set space

    SET SPACE 0;--默认为1

     

    1.1.3.8      set  echo

     

      set echo on:显示文件中的每条命令及其执行结果;

      set echo off:不显示文件中的命令,只显示其执行结果。

     

    set echo off;   --显示start启动的脚本中的每个sql命令,缺省为on,是否显示执行的命令内容 

    在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句

    SQL> SET ECHO {ON|OFF}

     

     

    1.1.3.9      set feedback

     

    有三种方式:

     

               set feedback on

     

               set feedback off

     

               set feedback n

     

    默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功,命令行会返回类似:Table created的反馈,又比如执行一个pl/sql成功的时候,命令行会返回:PL/SQL procedure successfully completed 。当载脚本中运行很多语句的时候,一般将feedback设为off。

     

    set feedback n:当一条sql语句返回n或者大于n行记录的时候,就会有feedback,比如:set feedback 5,当返回记录等于或多于5行的时候会有类似8 rows selected.的反馈.如果返回行少于5则没有此反馈。

     

    set feedback off; --显示本次sql命令处理的记录条数,缺省为on,也可以 SET FEED OFF; 即是否显示如下内容:*   rows   selected

    是否显示当前sql语句查询或修改的行数

    SQL> SET FEED[BACK] {6|n|ON|OFF}

    默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数

     

     

    回显本次sql命令处理的记录条数,缺省为on

    SQL> select * from test where id = 1;

    NAME               ID

    ---------- ----------

    a 1

    b 1

    已选择2行。

    SQL> set feedback off;

    SQL> /

    NAME               ID

    ---------- ----------

    a 1

    b 1

    SQL> set feedback on;

    SQL> /

    NAME               ID

    ---------- ----------

    a 1

    b 1

    已选择2行。

     

     

    1.1.3.10    set termout

     

    有两种形式:

     

               set termout on

     

               set termout off

     

    当设置为set termout off的时候就会忽略sql语句的输出如果这条sql是在脚本中运行的话。也就是说如果命令不在脚本中运行,即使设置为set termout off,仍然会返回sql的结果。

    term命令:

      当和SPOOL命令联合使用时,可以取消SQLPLUS输出,查询结果仅仅存在于假脱机文件中

      set term on:查询结果既显示于假脱机文件中,又在SQLPLUS中显示;

      set term off:查询结果仅仅显示于假脱机文件中。

     

     set termout off;   --显示脚本中的命令的执行结果,缺省为on SET TERM OFF ;注意:这个尤为重要,可以设置需要显示和不需要显示的内容,本人深受其害


    是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。

    SQL> SET TERM[OUT] {ON|OFF}

    在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。

     

     

    1.1.3.11    set heading

     

    有两种形式:

     

                set heading on

     

                set heading off

     

    Setting the heading specifies whether column headings (names) are printed or not.

     

    设置为set heading off的时候不显示列标题。


    set heading off; --输出域标题,缺省为on,即是否显示字段名称

    是否显示列标题

    SQL> SET HEA[DING] {ON|OFF}

    当set heading off 时,在每页的上面不显示列标题,而是以空白行代替

     

     

     

    1.1.3.12    set linesize

    SET LINESIZE 1000 ;--设置行的宽度,默认80,设置查询返回的纪录每行的宽度,超过这个宽度则会换行显示,(注意,这个问题本人曾经碰到过,花了一个上午的时间才找到原因所在)这个显然不是我们想要的结果,不够这个宽度则补空格,范围为自 1 至 32767, linesize

    说明:设置显示行的宽度,默认是 80 个字符,使用 show  linesize 显示

    例如:set  linesize  90

     

     

    注:LINESIZE要稍微设置大些,免得数据被截断,它应和相应的TRIMSPOOL结合使用防止导出的文本有太多的尾部空格。但是如果LINESIZE设置太大,会大大降低导出的速度,另外在WINDOWS下导出最好不要用PLSQL导出,速度比较慢,直接用COMMEND下的SQLPLUS命令最小化窗口执行。

     

    设置一行可以容纳的字符数

    SQL> SET LIN[ESIZE] {80|n}

    如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。

    1.1.3.13      set autocommit

     

    12.1. 设置当前session是否对修改的数据进行自动提交

    SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}

     

     

    1.1.3.14    set null

    显示时,用text值代替NULL值

    SQL> SET NULL text

     

    1.1.3.15      set serveroutput

    是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。

    SQL> SET SERVEROUT[PUT] {ON|OFF}

    在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。 dbms_output.put_line会"吃掉"最前面的空格?

    在set serveroutput on后加上format wrapped参数!

     

    一、       Oracle中参数 serveroutput永久设置方法


    serveroutput   是sqlplus的配置参数,而不是数据库的配置参数,修改并保存sqlplus的配置参数,那么每次打开sqlplus时就不用重新设置了。

    设置方法如下:


    1. sql> set   serveroutput   on

    然后,在sqlplus中

    2. sql> store   set   $ORACLE_HOME/sqlplus/admin/glogin.sql   replace

    完成保存设置.


    可以通过如下查看设置效果:


    SQL> show serveroutput;

    serveroutput ON SIZE UNLIMITED FORMAT WORD_WRAPPED

    说明设置成功。

    clip_image006.gif

     

    如果输出内容过多报错:

    ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes

     可以设置成最大值,最大值为100W:

    set serveroutput on  size 1000000;

    1.1.3.16    set wrap

    当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。

    SQL> SET WRA[P] {ON|OFF}

    当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。

     

     

     

     

     

    1.1.3.17    SET SQLBLANKLINES ON

    Sql*plus中, 不允许sql语句中间有空行, 这在从其它地方拷贝脚本到sql*plus中执行时很麻烦. 原因是sqlplus遇到空行就认为是语句结束了.

    其实要改变这种现象, 只要使用SQLBLANKLINES参数就可以了

    SET SQLBLANKLINES ON

     

    例如:

     

    原脚本:

    DROP TABLE tmp_ONT_LHR;

    CREATE TABLE  tmp_ONT_LHR NOLOGGING

     as

    SELECT qy.name         qy,

           jz.name         jz,

           u.name,

           u.id,

           u.vendorid,

           u.netypeid,

           U.createdate,

           u.servicestatus,

           w.code          port_code,

           w.id            port_id,

           W.SERVICESTATUS port_SERVICESTATUS,

           w.metacategory  port_metacategory

     

    FROM   xb_port           w,

           xb_managedelement u,

           xb_location       qy,

           xb_location       jz

    WHERE  w.meid = u.id

    AND    u.managementareaid = qy.id

    AND    u.siteid = jz.id

    AND    u.metacategory = 'com.gxlu.ngrm.equipment.ONT'

    AND    w.code IN ('LAN3', 'LAN4')

    AND    qy.metacategory = 'com.gxlu.ngrm.area.ManagementArea'

    AND    JZ.METACATEGORY = 'com.gxlu.ngrm.area.Site'

    ;

     

    执行如下,报错了:

    C:\Users\Administrator>sqlplus telant/test@sdh_cq_test @f:\sql\test\ont.sql

     

    SQL*Plus: Release 11.2.0.1.0 Production on 星期五 5月 11 16:12:51 2012

     

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

     

     

    连接到:

    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real Application Testing options

     

    SQL> DROP TABLE tmp_ONT_LHR;

    DROP TABLE tmp_ONT_LHR

               *

    第 1 行出现错误:

    ORA-00942: table or view does not exist

     

     

    SQL> CREATE TABLE  tmp_ONT_LHR NOLOGGING

      2   as

      3  SELECT qy.name         qy,

      4         jz.name         jz,

      5         u.name,

      6         u.id,

      7         u.vendorid,

      8         u.netypeid,

      9         U.createdate,

     10         u.servicestatus,

     11         w.code          port_code,

     12         w.id            port_id,

     13         W.SERVICESTATUS port_SERVICESTATUS,

     14         w.metacategory  port_metacategory

     15

    SQL> FROM   xb_port           w,

    SP2-0734: 未知的命令开头 "FROM   xb_..." - 忽略了剩余的行。

    SQL>        xb_managedelement u,

    SP2-0734: 未知的命令开头 "xb_managed..." - 忽略了剩余的行。

    SQL>        xb_location       qy,

    SP2-0734: 未知的命令开头 "xb_locatio..." - 忽略了剩余的行。

    SQL>        xb_location       jz

    SP2-0734: 未知的命令开头 "xb_locatio..." - 忽略了剩余的行。

    SP2-0044: 要获取已知命令的列表, 请输入 HELP;

    输入 EXIT 可退出。

    SQL> WHERE  w.meid = u.id

    SP2-0734: 未知的命令开头 "WHERE  w.m..." - 忽略了剩余的行。

    SQL> AND    u.managementareaid = qy.id

    SP2-0734: 未知的命令开头 "AND    u.m..." - 忽略了剩余的行。

    SQL> AND    u.siteid = jz.id

    SP2-0734: 未知的命令开头 "AND    u.s..." - 忽略了剩余的行。

    SQL> AND    u.metacategory = 'com.gxlu.ngrm.equipment.ONT'

    SP2-0734: 未知的命令开头 "AND    u.m..." - 忽略了剩余的行。

    SP2-0044: 要获取已知命令的列表, 请输入 HELP;

    输入 EXIT 可退出。

    SQL> AND    w.code IN ('LAN3', 'LAN4')

    SP2-0734: 未知的命令开头 "AND    w.c..." - 忽略了剩余的行。

    SQL> AND    qy.metacategory = 'com.gxlu.ngrm.area.ManagementArea'

    SP2-0734: 未知的命令开头 "AND    qy...." - 忽略了剩余的行。

    SQL> AND    JZ.METACATEGORY = 'com.gxlu.ngrm.area.Site'

    SP2-0734: 未知的命令开头 "AND    JZ...." - 忽略了剩余的行。

    SQL> ;

     

     

     

    1.1.3.18    set timing on

    SQL> set timing on

    SQL> select * from v$version;

     

    BANNER

    ----------------------------------------------------------------

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

    PL/SQL Release 10.2.0.1.0 - Production

    CORE    10.2.0.1.0      Production

    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production

    NLSRTL Version 10.2.0.1.0 - Production

    已用时间:  00: 00: 00.00

     

    1.1.3.19    set time on

    SQL> set time on;

    11:35:42 SQL> select * from t;

     

    未选定行

     

    已用时间:  00: 00: 00.34

    11:36:26 SQL>



    1.1.3.20    set numwidth

     set numwidth 38


    1.1.3.21    set long

     

     set long 999999       //显示不完整

    clip_image008.jpg


    SET LONG {80 | n} 

    设置LONG, CLOB, NCLOB和XMLType 类型数据的显示字节数

     

    SET LONGCHUNKSIZE {80 | n}

    设置SQL*Plus获取LONG, CLOB, NCLOB 或者 XMLType 类型数据时的步长.

     

    昨天使用dbms_sqltune.report_sql_monitor,发现仅仅显示一段,显示不全.

     

    SQL> select /*+ monitor */ count(*) from dept;

      COUNT(*)

    ----------

             4

     

    SQL> select dbms_sqltune.report_sql_monitor from dual;

    REPORT_SQL_MONITOR

    --------------------------------------------------------------------------------

    SQL Monitoring Report

     

    SQL Text

    ------------------------------

    select /*+ monitor */

     

    看一下dbms_sqltune.report_sql_monitor的返回类型clob,可以猜到long设置太小.

     

    SQL> show long longc

    long 80

    longchunksize 80

     

    修改glogin.sql 文件,没有仔细思考加入,也就是设置long=1G,longchunksize=1G

     

    set long 10000000

    set longchunksize 10000

     

    结果灾难出现,

    select dbms_sqltune.report_sql_monitor from dual;

    很久都没有出来.

     

    查看文档:

     

    SET LONGCHUNKSIZE

    SET LONGCHUNKSIZE sets the size of the increments SQL*Plus uses to retrieve a CLOB, LONG, NCLOB or XMLType value.

     

    Experiment with different sizes if LONGS or LOBs are being fetched.

     

    SET LONG {80 | n}

    Sets maximum width (in bytes) for displaying CLOB, LONG, NCLOB and XMLType values; and for copying LONG values.

     

    The maximum value of n is 2,000,000,000 bytes.

     

     

    测试一下,long是显示lob的大小,而LONGCHUNKSIZE是每次提取的大小,如果设置过大,导致OS使用swap.设置如下:

    set long 10000000

    set longchunksize 102400

     

    在执行一些正常了!



    1.1.3.22    SET MARKUP

    语法:

    SET MARK[UP] HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON | OFF}] [SPOOL {ON | OFF}] [PRE[FORMAT] {ON | OFF}]

     

    SET MARKUP指明SQL*Plus输出HTML编码格式,必须使用SET MARKUP HTML ON SPOOL ON和SQL*Plus SPOOL命令去创建一个spool文件,并且以HTML格式输出。

     

    SET MARKUP习惯称作SQLPLUS -MARKUP命令。

     

    使用SQLPLUS -MARKUP HTML ON或者SQLPLUS -MARKUP HTML ON SPOOL ON 产生标准的web页,SQL*Plus 自动生成完整的用和标签封装HTML网页。 当设定SPOOL OFF或者退出SQL*Plus是,spool文件中的HTML标签就闭合。

     

    SQLPLUS -MARKUP和一些其他有用的静默和限制命令一起用。

    使用MARKUP HTML ON生成HTML输出,无论是

    标签还是一个HTML表格。输出一个表格使用标准的HTML ,和
    	
    标签,自动闭合从一个查询返回结果集的行和列。当设置HTML ON时,默认产生标准HTML表格。通过设置PREFORMAT ON产生预格式化HTML
     标签。 
    					


    用SHOW MARKUP命令查看MARKUP操作当前状态:

    SQL> show markup

    markup HTML OFF HEAD " body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;}

     

    HTML [ON|OFF]

    指定是否生成HTML格式,ON生成,OFF不生成,默认是OFF。

     

    HEAD text

    指定HTML中HEAD标签中的内容,默认情况下,文本包括级联样式和标题。

     

    BODY text

    指定HTML中BODY标签属性

     

    TABLE text

    设置

     

    ENTMAP {ON|OFF}

    指定在SQL * Plus中是否用HTML字符实体如, " and &等替换特殊字符, " and & 。默认设置是ON。例如:

    SQL> set markup html on entmap off

    SQL>

    SQL> set markup html on entmap on

    SQL>

    SQL>

     

    SPOOL {ON|OFF}

    指定是否在SQL*Plus生成HTML标签 和 , 和 。默认是OFF。

    注:

    这是一个后台打印操作,只有在生成SPOOL文件生效,在屏幕上并不生效。

     

    PRE[FORMAT] {ON|OFF}

    指定SQL*Plus生成HTML时输出

    标签还是HTML表格,默认是OFF,因此默认输出是写HTML表格。 
    									
    
    									


    1.1.3.23    set editfile "afiedt.buf"

    经常在工作中使用sqlplus,会在一些目录下留下afiedt.buf文件.

     

    当然可以使用find命令找到并且清除它.

     

    简单的方法就是在glogin.sql加入如下:

     

    set editfile /tmp/afiedt.sql

     

    这样在edit调用vim编辑时,可以利用vim的syntax高亮度显示sql的功能.

     

    Cannot create save file "afiedt.buf"

     OracleSQL

    在使用sqlplus的时候遇到了这个问题,记录以下解决方法,在glogin.sql中加入以下代码:

    1              define _editor='vi' 

    2             set editfile /home/oracle/afiedt.buf 

    语句的编辑:

    (1)SQL> edit  (默认的缓存文件 afiedt.buf)

    (2)SQL> set editfile afiedt.sql  (修改的缓存文件 afiedt.sql)

          SQL> edit

          或者

          SQL> edit afiedt.sql

    (3)SQL> define

    DEFINE _EDITOR         = 'Notepad' (CHAR)  (默认的编辑器)

    SQL> define _editor = 'PLSQLDev'

    SQL> define

    DEFINE _EDITOR         = 'PLSQLDev' (CHAR)  (修改的编辑器)

    1.1.3.24    set pause

     

     pause {off(默认值)|on|text} 在显示报表时 控制终端滚动.在每一暂停时 必须按return键.on将引起sqlplus在每一报表输出页开始时暂停.所指定的文本是每一次sqlplus暂停时显示的文本.如果要键入多个词 必须用单引号将文本括起来.

    例:

     

    C:\Users\Administrator>sqlplus telant/telant@sdh_cq_nm

     

    SQL*Plus: Release 11.2.0.1.0 Production on 星期日 12月 9 18:58:43 2012

     

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

     

     

    连接到:

    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real Application Testing options

     

    SQL> set pause on

    SQL> set pause 'more ...'

    SQL> select table_name from user_tables;

    more ...

     

    TABLE_NAME

    ------------------------------------------------------------

    SYS_EXPORT_SCHEMA_19

    XB_CARD_DELETE

    YQ_OLT_GIS

    LIJIA_CRM_TELANT_CODE_20120830

    AAQ_W

    ROUTE_TT

    CROSS_TT

    XB_SHELFTYPE_CHG

    ZDW_BEIFEN_1129_2

    WFW_DELE_CODESEG

    WFW_ONT_HELP

    more ...

     

    TABLE_NAME

    ------------------------------------------------------------

    XB_MIGRATIONRANGEDETAIL_BK

    TEMP_ONU_LIST

    ZDW_BEIFEN_0914_1

    LIJIA_CRM_ALL

    QQ_WW

    XR_PRODINSRESSERVINSASSOC_BK

    DEL_CDSLH_DZ

    XR_PRODINSRESSERVINSASSOC_BK1

    XB_PIRELATION_LHR

    YQ_PROD_SYNC_GIS

    ZDW_BEIFEN_1015_3

    more ...


    1.1.3.25    set define

     define             {& |c|off|on(默认值)}

    define {& |c|off|on(默认值)} 设置在替换变量时所使用的字符.on或off控制sqlplus是否扫描替换变量的命令及用他们的值代替. define的on或off的设置控制scan变量的设置.

     

    1:define(即host变量)

    Host变量主要作用是起到一个替代变量的作用,是主机环境可以和oracle进行交互的一个媒介

    通过define定义host变量的时候必须指定变量名和变量的值,如果变量名已经存在于host变量中,则自动覆盖,这个值不可以指定类型,一律按char存储。


    定义的格式是:define variable_name = value(必须定义的时候就赋值,否则define variable_name是显示已经存在的host变量值,不存在会报告未定义。)   


    另外可以使用define命令显示单个(define variable_name,不能显示多个)或全部(define)的host变量的值和类型(类型都是char)。

    使用

    首先要了解host变量只是在当前session环境中有效。了解对于host变量启用和关闭的命令是:set define on和set define off。这在sqlplus和plsql developer的command window中都可以使用,在sql或plsql中引用host变量,使用&符号,只是做一个简单的替换动作,比如

    define x=TEST

    Select * from ‘&x’;那么会报表找不到的错误,因为x被替换为test,那么’TEST’表是不存在的,TEST表存在,多了个单引号。

    也可以不定义,直接在sql或plsql中在字符串前面加&符号,会提示你输入变量的值,然后替换。这种情况下是临时的变量,define命令查不到。


    ※经常使用host变量的场合是在写脚本的时候,脚本的有些地方经常变化,其他地方固定,那么可以使用&引用。


    2,Variable(即绑定变量)

    定义:

        绑定变量主要是在sql中使用,达到sql解析一次,执行多次,从而提高效率的目的。绑定变量和host变量一样,也有定义的,也有临时性的。(临时性的在动态sql或动态plsql中通过占位符和using使用),其他的如sql会自动使用绑定变量的情况,此处不专门讨论。定义的绑定变量也是在当前session中有效。


    Sqlplus中可以使用大于等于3个字符表示一个命令,这里我们用var,var命令是声明一个绑定变量,只能给予名称和类型,定义的时候不能赋值,赋值可以在plsql中或者采用函数赋值(而host变量定义的时候必须赋值)。

    Var var_name type   声明一个指定类型的绑定变量,类型上面列表中已经列出。


    对于var或var var_name只是显示所有的绑定变量或者指定名称的绑定变量的name和type,不显示其值,显示其值用print命令,可以采用help print查看。


    Print是输出所有绑定变量的值,print name1 name2 ….是输出指定的绑定变量的值,多个用空格分割。对于host变量的define要么输出全部,要么输出单个,没有指定数目的。Print后面的绑定变量名也可以加前缀冒号,效果一样。


    例:

    使用:

    1.        绑定变量在sql和plsql中直接引用必须加前缀 :。如要引用绑定变量a,则是 :a。

    2.        在真正运行的PLSQL程序中,比如自动运行,有自己的一套机制。

    3.        初始化和应用绑定变量,初始化定义的绑定变量,可以使用过程和函数,其中过程可以内部给绑定变量赋值、也可以参数是绑定变量,参数模式为out返回。使用函数和过程差不多,还可以使用call 函数来赋值,另外还可以使用SQLPLUS中的execute命令直接赋值,多个绑定变量用分号隔开。

    4.        注意NULL值不可赋值给绑定变量,这在NDS中也成立。


    使用过程和sqlplus命令初始化绑定变量:



    WORKGROUP\DINGJUN-PC>begin

      2  :a := 1;

      3  end;

      4  /


    PL/SQL 过程已成功完成。

    WORKGROUP\DINGJUN-PC>print a


             A

    --------------------------------------

             1


    WORKGROUP\DINGJUN-PC>select :a from dual;


            :A

    ---------------------------------------

             1


    ###使用execute初始化,初始化多个用分号隔开

    SQL> var x number;

    SQL> var y number;

    SQL> exec :x :=1; :y :=2;

    PL/SQL procedure successfully completed

    x

    ---------

    1

    y

    ---------

    2


    下面看下NULL值赋值给绑定变量,会报错

    WORKGROUP\DINGJUN-PC>exec :a:='aa',:b:=null;

    BEGIN :a:='aa',:b:=null; END;


    再如下面的例子,使用过程返回绑定变量,定义一个Var x number;



    WORKGROUP\DINGJUN-PC>var x number;

    WORKGROUP\DINGJUN-PC>Create or replace procedure pt( m out number)

      2   As

      3  Begin

      4  m:=10;

      5  End;

      6  /


    过程已创建。


    WORKGROUP\DINGJUN-PC>exec pt(m =>:x);


    PL/SQL 过程已成功完成。


    WORKGROUP\DINGJUN-PC>print x


             X

    -------------------------

            10


    绑定变量是REFCURSOR类型。一个参数使用ref cursor,通过绑定变量类型定义为REFCURSOR,然后传入过程,打印绑定变量(效果和查询语句一样)。


    WORKGROUP\DINGJUN-PC>var x refcursor;

    WORKGROUP\DINGJUN-PC>create or replace procedure pt(cur out SYS_REFCURSOR)

      2  AS

      3   BEGIN

      4      OPEN cur for select *  from test where rownum<3;

      5  END;

      6  /

    过程已创建。


    WORKGROUP\DINGJUN-PC>exec pt(cur =>:x);

    PL/SQL 过程已成功完成。

    WORKGROUP\DINGJUN-PC>print x

    SJ           ID

    ---- ----------

    01            1

    02            2


    由上面可以知道,print可以直接把refcursor的结果打印出来,不需要迭代查找。

    下面看看如何用函数初始化定义的绑定变量:

    WORKGROUP\DINGJUN-PC>create or replace function concatestring(a in varchar2, b in varchar2) return varchar2

      2  as

      3  c varchar2(100);

      4  begin

      5  c := a||b;

      6  return c;

      7  end;

      8  /


    函数已创建。


    WORKGROUP\DINGJUN-PC>variable x varchar2(10);

    WORKGROUP\DINGJUN-PC>call concatestring('a','b') into :x;


    调用完成。


    WORKGROUP\DINGJUN-PC>print x


    X

    ----------------------------------------------------------------

    ab


    当然也可以将函数的参数定义为out模式来初始化,我们这里使用call命令调用函数把结果传给绑定变量,调用格式为:call function(参数列表) into :绑定变量。


    pl/sql中的参数和定义的变量(包括全局变量和临时变量)都会内部转为绑定变量,所以尽量在pl/sql中尽量使用静态sql,而不要使用动态sql,如果使用动态sql,要尽量加上绑定变量。


    绑定变量的基本作用


    绑定变量主要是sql的执行过程中,在解析sql之后会进行共享池(SGA)的检查,看优化器有没有分析优化过这个sql,环境必须完全一致才可以(包括大小写的一致,session情况一致等)。那么可以达到一次分析,多次执行的目的,这就是软解析,否则要进过解析,优化,行资源生成等一系列sql执行的过程,因为sql优化需要耗费很多资源,如果硬解析,sql性能会下降。




    看SGA中的sql是否是软解析被调用多次,可以查看v$sql或v$sqlarea视图,查看列sql_text,executions,如:

    select sql_text,executions from v$sql where sql_text like '%trademark%';


    SQL_TEXT        EXECUTIONS

    select * from trademark where id=:tid        6

    1、Oracle默认开启的服务

    OracleDBConsoleorcl

    OracleVssWriterORCL

    OracleMTSRecoveryService

    OracleOraDb11g_home1TNSListener

    OracleServiceORCL

    2、SQL *PLUS命令

      HELP [topic]:查看命令的使用方法

      HOST:使用该命令可以从SQL*PLUS环境切换到操作系统环境,使用EXIT命令重新返回SQL*PLUS

      HOST 操作系统命令:执行操作系统命令

      CLEAR SCR[EEN]:清除屏幕内容

      SHOW   ALL:查看SQL*PLUS的所有系统变量值信息

      SHOW USER:显示当前哪个用户在使用SQL*PLUS

      SHOW SGA:显示SGA大小

      SHOW REL[EASE]:显示数据库版本信息

      SHOW ERRORS:显示详细的错误信息

      SHOW PARAMETERS:查看系统初始化参数信息

      DESC[RIBE]:查看对象结构

    3、SQL*PLUS语句

      A[PPEND] text:将text附加到当前行之后

      C[HANGE] /old/new:将当前行中的old替换为new

      C[HANGE] /text/:删除当前行中指定的text文本

      C[LEAR] BUFF[ER]:清除缓存区中的所有行

      I[NPUT]:插入不定数量的命令行

      I[NPUT] text:插入指定的文本text

      DEL:删除当前行

      DEL n:删除第n行,行号从1开始

      DEL m n:删除第m行到第n行之间的命令行

      L[IST]:列出缓冲区中的所有行

      L[IST] n:列出第n行

      R[UN]或/:显示缓冲区中保存的语句,并运行这些语句

      n:将第n行作为当前行

      n text:使用text代替第n行信息

      0 text:在第一行之前插入text文本

    4、保存缓冲区和读取文件到缓冲区

      保存:save filename

      读取:get filename list|nolist

    5、使用START命令读取并运行文件内容

      start { url | filename }

    6、使用EDIT命令编辑缓冲区内容或文件内容

      ED[IT] [ filename ]

    7、使用SPOOL命令复制输出结果到文件

      SPO[OL] [ filename [ CRE[ATE]  | REP[LACE] | APP[END] ] | OFF | OUT ]

    8、使用临时变量

      使用&符号表示临时变量,多次出现需要多次输入

      使用&&符号表示临时变量,重复出现,不需要重复输入

      使用SET VERIFY [ ON | OFF ]来指定是否输出原值和新值信息(须在执行SQL语句之前执行)

      使用SET DEFINE 来指定一个除字符&之外的字符,作为定义变量的字符

      在脚本文件中使用临时变量

    9、如果文件夹名称中含有空格,需要用引号将@命令之后的内容包围起来

    10、使用已定义的变量

      已定义的变量是指具有明确定义的变量,该变量的值会一直保留到显式的被删除、重定义或者退出SQL*PLUS为止

      1、DEFINE命令:定义变量

         DEFINE:查询所有已定义的变量

        DEFINE ariable:显示指定变量的名称、值和类型

        DEFINE ariable = value:创建一个char类型的用户变量、并且为该变量赋初始值

      2、UNDEFINE:删除变量

      3、ACCEPT命令:定义变量,并且定制一个用户提示,用于提示用户输入指定变量的数据

        accept variable [ data_type ] [ format format ] [ default default ] [ prompt text | noprompt ] [  hide]

    11、格式化查询结果:格式化命令设置后,该命令一直起作用,直到会话结束或者下一个格式化命令的设置,每一次报表结束之后,重新设置SQL*PLUS的默认值,如果为某个列指定了别名,那么必须引用该别名,而不能使用列名

     

     

     在oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.

    一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行),而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。

     而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。



    1.

    sqlplus中如何使用绑定变量,可以通过variable来定义

    [c-sharp]view plaincopyprint?

    select * from tt where id=1; 

    2   

    3 ID NAME 

    4 ---------- ---------------------------------------- 

    5 1 test 

    6   

    7 SQL> select * from tt where id=2; 

    8   

    9 ID NAME 

    10            ---------- ---------------------------------------- 

    11            2 test 

    12              

    13            SQL> variable i number; 

    14            SQL> exec :i :=1; 

    15              

    16            PL/SQL 过程已成功完成。 

    17              

    18            SQL> select *from tt where id=:i; 

    19              

    20            ID NAME 

    21            ---------- ---------------------------------------- 

    22            1 test 

    23              

    24            SQL> exec :i :=2; 

    25              

    26            PL/SQL 过程已成功完成。 

    27              

    28            SQL> select *from tt where id=:i; 

    29              

    30            ID NAME 

    31            ---------- ---------------------------------------- 

    32            2 test 

    33              

    34            SQL> print i; 

    35              

    36            I 

    37            ---------- 

    38            2 

    39              

    40            SQL> select sql_text,parse_calls from v$sql where sql_text like 'select * from t 

    41            t where id=%'; 

    42              

    43            SQL_TEXT PARSE_CALLS 

    44            ------------------------------------------------------------ ----------- 

    45            select * from tt where id=2 1 

    46            select * from tt where id=1 1 

    47            select * from tt where id=:i 2 

    48            SQL> 


    从上面试验发现绑定变量i的使用使查询id=1和id=2的sqlselect *from tt where id=:i得以重复

    使用,从而避免了hard parse,这里的PARSE_CALLS=2包括了一次soft parse



    2.

    前两天看到有人在pub上问sqlplus中通过definevariable定义的变量的区别。其实define定义的我


    理解不是变量而是字符常量,通过define定义之后,在通过&或者&&引用的时候不需要输入了,仅此而已。


    oracle在执行的时候自动用值进行了替换;而variable定义的是绑定变量,上面已经提到。


    [c-sharp]view plaincopyprint?

    49            C:>sqlplus xys/manager 

    50            SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 4月 1 14:03:00 2008 

    51            Copyright (c) 1982, 2007, Oracle. All rights reserved. 

    52              

    53            连接到: 

    54            Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production 

    55            With the Partitioning, OLAP, Data Mining and Real Application Testing options 

    56            SQL> define 

    57            DEFINE _DATE = "01-4月 -08" (CHAR) 

    58            DEFINE _CONNECT_IDENTIFIER = "db11" (CHAR) 

    59            DEFINE _USER = "XYS" (CHAR) 

    60            DEFINE _PRIVILEGE = "" (CHAR) 

    61            DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR) 

    62            DEFINE _EDITOR = "Notepad" (CHAR) 

    63            DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0. 

    64            6.0 - Production 

    65            With the Partitioning, OLAP, Data Mining and Real Application Testing options" ( 

    66            CHAR) 

    67            DEFINE _O_RELEASE = "1101000600" (CHAR) 

    68            SQL> select *from tt; 

    69            ID NAME 

    70            ---------- ---------- 

    71            1 a 

    72            2 a 

    73            3 "abc" 

    74            SQL> define a 

    75            SP2-0135: 符号 a 未定义 

    76            SQL> define a=1 

    77            SQL> define 

    78            DEFINE _DATE = "01-4月 -08" (CHAR) 

    79            DEFINE _CONNECT_IDENTIFIER = "db11" (CHAR) 

    80            DEFINE _USER = "XYS" (CHAR) 

    81            DEFINE _PRIVILEGE = "" (CHAR) 

    82            DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR) 

    83            DEFINE _EDITOR = "Notepad" (CHAR) 

    84            DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0. 

    85            6.0 - Production 

    86            With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR) 

    87            DEFINE _O_RELEASE = "1101000600" (CHAR) 

    88            DEFINE A = "1" (CHAR) 

    89            --通过上面显示define定义的应该是字符(串)常量。 

    90            SQL> select * from tt where id=&a; 

    91            原值 1: select * from tt where id=&a 

    92            新值 1: select * from tt where id=1 

    93            ID NAME 

    94            ---------- ---------- 

    95            1 a 

    96            SQL> select * from tt where id=&&a; 

    97            原值 1: select * from tt where id=&&a 

    98            新值 1: select * from tt where id=1 

    99            ID NAME 

    100         ---------- ---------- 

    101         1 a 

    102         SQL> define b='a'; 

    103         SQL> define 

    104         DEFINE _DATE = "01-4月 -08" (CHAR) 

    105         DEFINE _CONNECT_IDENTIFIER = "db11" (CHAR) 

    106         DEFINE _USER = "XYS" (CHAR) 

    107         DEFINE _PRIVILEGE = "" (CHAR) 

    108         DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR) 

    109         DEFINE _EDITOR = "Notepad" (CHAR) 

    110         DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0. 

    111         6.0 - Production 

    112         With the Partitioning, OLAP, Data Mining and Real Application Testing options" ( 

    113         CHAR) 

    114         DEFINE _O_RELEASE = "1101000600" (CHAR) 

    115         DEFINE A = "1" (CHAR) 

    116         DEFINE B = "a" (CHAR) 

    117           

    118         --如果是字符类型那么在引用时别忘了加上单引号,另外通过define定义之后在引用时不需要输入了。 

    119         SQL> select * from tt where name=&&b; 

    120         原值 1: select * from tt where name=&&b 

    121         新值 1: select * from tt where name=a 

    122         select * from tt where name=a 

    123         * 

    124         第 1 行出现错误: 

    125         ORA-00904: "A": 标识符无效 

    126           

    127         SQL> select * from tt where name='&&b'; 

    128         原值 1: select * from tt where name='&&b' 

    129         新值 1: select * from tt where name='a' 

    130         ID NAME 

    131         ---------- ---------- 

    132         1 a 

    133         2 a 

    134         SQL> select * from tt where name='&b'; 

    135         原值 1: select * from tt where name='&b' 

    136         新值 1: select * from tt where name='a' 

    137         ID NAME 

    138         ---------- ---------- 

    139         1 a 

    140         2 a 

    141         --执行sql时进行了替换 

    142         SQL> select sql_text from v$sql where sql_text like 'select * from tt where name 

    143         =%'; 

    144         SQL_TEXT 

    145         -------------------------------------------------------------------------------- 

    146         select * from tt where name=1 

    147         select * from tt where name='a' 

    148         SQL> 

     

     



    3.

    oracle在解析sql时会把plsql中定义的变量转为为绑定变量

    [c-sharp]view plaincopyprint?

    149         SQL> create table tt(id int , name varchar2(10)); 

    150           

    151         表已创建。 

    152           

    153         SQL> alter session set sql_trace=true

    154           

    155         会话已更改。 

    156           

    157         SQL> declare 

    158         2 begin 

    159         3 for i in 1..100 loop 

    160         4 insert into tt values(i,'test'); 

    161         5 end loop; 

    162         6 commit; 

    163         7 end; 

    164         8 / 

    165           

    166         PL/SQL 过程已成功完成。 

    167           

    168         SQL> alter session set sql_trace=false

    169         --trace file: 

    170         ===================== 

    171         PARSING IN CURSOR #3 len=90 dep=0 uid=31 oct=47 lid=31 tim=7109565004 hv=962259239  

    172           

    173         ad='668ec528' 

    174         declare 

    175         begin 

    176         for i in 1..100 loop 

    177         insert into tt values(i,'test'); 

    178         end loop; 

    179         commit; 

    180         end; 

    181         END OF STMT 

    182         PARSE #3:c=15625,e=5678,p=0,cr=3,cu=0,mis=1,r=0,dep=0,og=1,tim=7109564996 

    183         ===================== 

    184         PARSING IN CURSOR #5 len=34 dep=1 uid=31 oct=2 lid=31 tim=7109565520 hv=1299226876  

    185           

    186         ad='66869934' 

    187         INSERT INTO TT VALUES(:B1 ,'test') 

    188         END OF STMT 

    189         PARSE #5:c=0,e=226,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,tim=7109565513 

    190         ===================== 


    另外从hard parse的数据量上其实也可以大致猜测oracle会把plsql中定义的变量转换为绑定变量处理

    [c-sharp]view plaincopyprint?

    191         SQL> connect /as sysdba 

    192         已连接。 

    193         SQL> shutdown immediate 

    194         数据库已经关闭。 

    195         已经卸载数据库。 

    196         ORACLE 例程已经关闭。 

    197         SQL> startup 

    198         ORACLE 例程已经启动。 

    199           

    200         Total System Global Area 167772160 bytes 

    201         Fixed Size 1247900 bytes 

    202         Variable Size 67110244 bytes 

    203         Database Buffers 96468992 bytes 

    204         Redo Buffers 2945024 bytes 

    205         数据库装载完毕。 

    206         数据库已经打开。 

    207         SQL> connect xys/manager 

    208         已连接。 

    209         SQL> drop table tt; 

    210           

    211         表已删除。 

    212           

    213         SQL> create table tt(id int , name varchar2(10)); 

    214           

    215         表已创建。 

    216         SQL> col name format a30 

    217         SQL> select a.*,b.name 

    218         2 from v$sesstat a , v$statname b 

    219         3 where a.statistic#=b.statistic# 

    220         4 and a.sid=(select distinct sid from v$mystat) 

    221         5 and b.name like '%parse%'; 

    222           

    223         SID STATISTIC# VALUE NAME 

    224         ---------- ---------- ---------- ------------------------------ 

    225         159 328 39 parse time cpu 

    226         159 329 74 parse time elapsed 

    227         159 330 339 parse count (total) 

    228         159 331 165 parse count (hard) 

    229         159 332 0 parse count (failures) 

    230           

    231         SQL> declare 

    232         2 begin 

    233         3 for i in 1..100 loop 

    234         4 insert into tt values(i,'test'); 

    235         5 end loop; 

    236         6 commit; 

    237         7 end; 

    238         8 / 

    239           

    240         PL/SQL 过程已成功完成。 

    241           

    242         SQL> select a.*,b.name 

    243         2 from v$sesstat a , v$statname b 

    244         3 where a.statistic#=b.statistic# 

    245         4 and a.sid=(select distinct sid from v$mystat) 

    246         5 and b.name like '%parse%' 

    247         6 / 

    248           

    249         SID STATISTIC# VALUE NAME 

    250         ---------- ---------- ---------- ------------------------------ 

    251         159 328 39 parse time cpu 

    252         159 329 74 parse time elapsed 

    253         159 330 345 parse count (total) 

    254         159 331 167 parse count (hard) 

    255         159 332 0 parse count (failures) 

    256           

    257         SQL> 

     

     

    这里发现hard parse只增加了2,如果没有使用绑定变量的话,相信hard parse会更多



    4.

    过程中的参数会自动转化为绑定变量

    [c-sharp]view plaincopyprint?

    258         SQL> edit 

    259         已写入 file afiedt.buf 

    260           

    261         1 create or replace procedure proc_test(p_id int, p_name varchar2) 

    262         2 is 

    263         3 begin 

    264         4 insert into tt values(p_id , p_name); 

    265         5 commit; 

    266         6* end; 

    267         SQL> / 

    268           

    269         过程已创建。 

    270           

    271         SQL> alter session set sql_trace=true

    272           

    273         会话已更改。 

    274           

    275         SQL> exec proc_test(200,'test'); 

    276           

    277         PL/SQL 过程已成功完成。 

    278           

    279         SQL> alter session set sql_trace=false

    280           

    281         会话已更改。 

    282         --trace file: 

    283         alter session set sql_trace=true 

    284         END OF STMT 

    285         EXEC #3:c=0,e=749,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=7393908487 

    286         ===================== 

    287         PARSING IN CURSOR #1 len=35 dep=0 uid=31 oct=47 lid=31 tim=7403000735 hv=526484776  

    288           

    289         ad='6687b0b8' 

    290         BEGIN proc_test(200,'test'); END; 

    291         END OF STMT 

    292         PARSE #1:c=0,e=2584,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=7403000727 

    293         ===================== 

    294         PARSING IN CURSOR #6 len=33 dep=1 uid=31 oct=2 lid=31 tim=7403001293 hv=2874748229  

    295           

    296         ad='668e9cd8' 

    297         INSERT INTO TT VALUES(:B2 , :B1 ) 

    298         END OF STMT 

    299         PARSE #6:c=0,e=246,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,tim=7403001286 

    300         ===================== 

     

     

    另外也可以直观的观察:


    [c-sharp]view plaincopyprint?

    301         SQL> exec proc_test(200,'test'); 

    302           

    303         PL/SQL 过程已成功完成。 

    304           

    305         SQL> select sql_text from v$sql where sql_text like '%proc_test%'; 

    306           

    307         SQL_TEXT 

    308         -------------------------------------------------------------------------------- 

    309         BEGIN proc_test(200,'test'); END; 

    310           

    311         SQL> 

     

     

    在sqlplus里执行过程不能观察出来

    下面在plsql developer执行一次过程之后再来看执行的情况


    [c-sharp]view plaincopyprint?

    312         SQL> select sql_text from v$sql where sql_text like '%proc_test%'; 

    313           

    314         SQL_TEXT 

    315         -------------------------------------------------------------------------------- 

    316         begin -- Call the procedure proc_test(p_id =>:p_id, p_name =>:p_name); end; 

    317           

    318         SQL> 

     

     

    很显然oracle在执行过程时把参数转化为绑定变量了,其实从plsql developer中执行过程时的语法就能


    看出来:


    [c-sharp]view plaincopyprint?

    319         begin 

    320         -- Call the procedure 

    321         proc_test(p_id => :p_id, 

    322         p_name => :p_name); 

    323         end; 


    在输入参数列表框上面的执行语法就是这样的。




    5.

    在动态sql中使用绑定变量,动态sql中使用绑定变量非常明显也容易理解,下面给出2个简单的例子


    [c-sharp]view plaincopyprint?

    324         SQL> set serveroutput on 

    325         SQL> declare 

    326            2   v_string varchar2(100); 

    327            3   v_id tt.id%type ; 

    328            4   v_name tt.name%type ; 

    329            5   begin 

    330            6   v_string:='select * from tt where id=:v_id'; 

    331            7   execute immediate v_string into v_id , v_name using &a; 

    332            8   dbms_output.put_line(v_id||' '||v_name) ; 

    333            9   end; 

    334         10   / 

    335         输入 a 的值:   1 

    336         原值 7: execute immediate v_string into v_id , v_name using &a; 

    337         新值 7: execute immediate v_string into v_id , v_name using 1; 

    338         1 test 

    339           

    340         PL/SQL 过程已成功完成。 

    341           

    342         SQL> declare 

    343            2   v_string varchar2(100); 

    344            3   v_id tt.id%type; 

    345            4   v_name tt.name%type ; 

    346            5   begin 

    347            6   v_string:='insert into tt values(:id,:name)'; 

    348            7   execute immediate v_string using &id,&name ; 

    349            8   end; 

    350            9   / 

    351         输入 id 的值:   1000 

    352         输入 name 的值:   'test' 

    353         原值 7: execute immediate v_string using &id,&name ; 

    354         新值 7: execute immediate v_string using 1000,'test' ; 

    355           

    356         PL/SQL 过程已成功完成。 

    357           

    358         SQL> select * from tt where id=1000; 

    359           

    360                ID NAME 

    361         ---------- ---------- 

    362            1000 test 

    363           

    364         SQL> 

     

     


    =============================下面加上一些其他变量的使用方法=========================


    eg001&替换变量)

    [c-sharp]view plaincopyprint?

    365         SQL> select xh,xm from system.xs where zym='&zym'; 

    366         输入 zym 的值:  计算机 

    367         原值    1: select xh,xm from system.xs where zym='&zym' 

    368         新值    1: select xh,xm from system.xs where zym='计算机' 

    369           

    370         XH     XM 

    371         ------ -------- 

    372         061101 王林 

    373         061102 程明 

    374         061103 王燕 

    375         061104 韦严平 

    376         061106 李方方 

    377         061107 李明 

    378         061108 林一帆 

    379         061109 张强民 

    380         061110 张蔚 

    381         061111 赵琳 

    382         061113 严红 

    383           

    384         已选择11行。 

    385           

    386         SQL> edit 

    387         已写入 file afiedt.buf 

    388           

    389           1  select xh 学号,xm 姓名,avg(cj) as 平均成绩 

    390           2* from system.xs_xkb group by xh,xm 

    391         SQL> / 

    392           

    393         学号   姓名       平均成绩 

    394         ------ -------- ---------- 

    395         061103 王燕             71 

    396         061210 李红庆           76 

    397         061110 张蔚     91.3333333 

    398         061220 吴薇华           82 

    399         061104 韦严平   79.6666667 

    400         061101 王林             78 

    401         061204 马林林           91 

    402         061106 李方方           72 

    403         061218 孙研             70 

    404         061102 程明             78 

    405         061241 罗林琳           90 

    406           

    407         学号   姓名       平均成绩 

    408         ------ -------- ---------- 

    409         061111 赵琳           80.5 

    410         061109 张强民         76.5 

    411         061216 孙祥欣           81 

    412         061221 刘燕敏           79 

    413           

    414         已选择15行。 

    415           

    416         SQL> select * from system.xs_xkb where cj>=&cj; /*替换变量可以使用WHERE子句;ORDER BY子句;列表达式;表名;整个SELECT语句*/ 

    417         输入 cj 的值:  90 

    418         原值    1: select * from system.xs_xkb where cj>=&cj 

    419         新值    1: select * from system.xs_xkb where cj>=90 

    420           

    421         SQL> select xs.xh,&name,kcm,&column 

    422           2  from system.xs,&kc,system.xs_kc 

    423           3  where xs.xh=xs_kc.xh and &condition 

    424           4  and kcm=&kcm 

    425           5  order by & column; 

    426         输入 name 的值:  xm 

    427         输入 column 的值:  cj 

    428         原值    1: select xs.xh,&name,kcm,&column 

    429         新值    1: select xs.xh,xm,kcm,cj 

    430         输入 kc 的值:  system.kc 

    431         原值    2: from system.xs,&kc,system.xs_kc 

    432         新值    2: from system.xs,system.kc,system.xs_kc 

    433         输入 condition 的值:  kc.kch=xs_kc.kch 

    434         原值    3: where xs.xh=xs_kc.xh and &condition 

    435         新值    3: where xs.xh=xs_kc.xh and kc.kch=xs_kc.kch 

    436         输入 kcm 的值:  '离散数学' 

    437         原值    4: and kcm=&kcm 

    438         新值    4: and kcm='离散数学' 

    439         输入 column 的值:  cj 

    440         原值    5: order by & column 

    441         新值    5: order by cj 

    442           

    443         XH     XM       KCM    CJ 

    444         ------ -------- ---------------- ---------- 

    445         061104 韦严平   离散数学                 65 

    446         061109 张强民   离散数学                 70 

    447         061101 王林     离散数学                 76 

    448         061102 程明     离散数学                 78 

    449         061106 李方方   离散数学                 80 

    450         061103 王燕     离散数学                 81 

    451         061110 张蔚     离散数学                 89 

     

     

    eg002&&替换变量)

    [c-sharp]view plaincopyprint?

    452         --&&替换变量系统一直用同一个值处理,清除用undefine 变量名清除 

    453         SQL> edit 

    454         已写入 file afiedt.buf 

    455           

    456           1  select xs.xh,&name,kcm,&&column   /*清除替换变量(undefine column)*/ 

    457           2  from system.xs,&kc,system.xs_kc 

    458           3  where xs.xh=xs_kc.xh and &condition 

    459           4  and kcm=&kcm 

    460           5* order by &column 

    461         SQL> / 

    462         输入 name 的值:  xm 

    463         输入 column 的值:  cj 

    464         原值    1: select xs.xh,&name,kcm,&&column 

    465         新值    1: select xs.xh,xm,kcm,cj 

    466         输入 kc 的值:  system.kc 

    467         原值    2: from system.xs,&kc,system.xs_kc 

    468         新值    2: from system.xs,system.kc,system.xs_kc 

    469         输入 condition 的值:  kc.kch=xs_kc.kch 

    470         原值    3: where xs.xh=xs_kc.xh and &condition 

    471         新值    3: where xs.xh=xs_kc.xh and kc.kch=xs_kc.kch 

    472         输入 kcm 的值:  '离散数学' 

    473         原值    4: and kcm=&kcm 

    474         新值    4: and kcm='离散数学' 

    475         原值    5: order by &column             /*使用&&替换变量的好处,相同变量只输第一次就OK*/ 

    476         新值    5: order by cj 

    477           

    478         XH     XM       KCM    CJ 

    479         ------ -------- ---------------- ---------- 

    480         061104 韦严平   离散数学                 65 

    481         061109 张强民   离散数学                 70 

    482         061101 王林     离散数学                 76 

    483         061102 程明     离散数学                 78 

    484         061106 李方方   离散数学                 80 

    485         061103 王燕     离散数学                 81 

    486         061110 张蔚     离散数学                 89 

    487           

    488         已选择7行。 

    eg003

    DEFINE[variable[=value]]

    UNDEFINE清除定义的变量

    [c-sharp]view plaincopyprint?

    489         SQL> define specialty=通信工程 

    490         SQL> define specialty 

    491         DEFINE SPECIALTY       = "通信工程" (CHAR) 

    492         SQL> select xh,xm,xb,cssj,zxf from system.xs 

    493           2  where zym='&specialty'; 

    494           

    495         XH     XM       XB CSSJZXF 

    496         ------ -------- -- -------------- ---------- 

    497         061202 王林     男 29-10月-85             40 

    498         061210 李红庆   女 01-5月 -85             44 

    499         061201 王敏     男 10-6月 -84             42 

    500         061203 王玉民   男 26-3月 -86             42 

    501         061204 马林林   女 10-2月 -84             42 

    502         061206 李计     女 20-9月 -85             42 

    503         061216 孙祥欣   女 09-3月 -84             42 

    504         061218 孙研     男 09-10月-86             42 

    505         061220 吴薇华   女 18-3月 -86             42 

    506         061221 刘燕敏   女 12-11月-85             42 

    507         061241 罗林琳   女 30-1月 -86             50 

    508           

    509         已选择11行。 

     

     

    eg004

    ACCEPT variable[datatype[NUMBER|CHAR|DATE]][FORMAT format][PROMPT text][HIDE]/*variable:指定接收值的变量。该名称的变量不存在,那么SQL重建该变量;datatype:变量数据类型,默认为CHAR*/

    [c-sharp]view plaincopyprint?

    510         SQL> accept num prompt'请输入课程号:' 

    511         请输入课程号:101 

    512         SQL> set verify on 

    513         SQL>  

    514           1  select xh,kcm,cj from system.xs_kc,system.kc 

    515           2  where xs_kc.kch=kc.kch and kc.kch='&num' 

    516           3* order by cj 

    517         SQL> / 

    518         原值    2: where xs_kc.kch=kc.kch and kc.kch='&num' 

    519         新值    2: where xs_kc.kch=kc.kch and kc.kch='101' 

    520           

    521         XH     KCM    CJ 

    522         ------ ---------------- ---------- 

    523         061103 计算机基础               62 

    524         061106 计算机基础               65 

    525         061218 计算机基础               70 

    526         061210 计算机基础               76 

    527         061221 计算机基础               79 

    528         061101 计算机基础               80 

    529         061216 计算机基础               81 

    530         061220 计算机基础               82 

    531         061241 计算机基础               90 

    532         061104 计算机基础               90 

    533         061111 计算机基础               91 

    534           

    535         XH     KCM    CJ 

    536         ------ ---------------- ---------- 

    537         061204 计算机基础               91 

    538         061110 计算机基础               95 

    539           

    540         已选择13行。 

    541           

    542         SQL> 

     

     

     

     

    1.1.3.26    undefine

    105.用于清除替代变量的定义

    undefine variable ...

    1.1.3.27   修改命令提示符

     

     

    glogin.sql是SQL*Plus全局登录的的配置文件,是Oracle自带的登录脚本文件,它的路径是固定的,即$ORACLE_HOME/sqlplus/admin。当用户启动SQL*Plus的时候,会从这个固定的路径加载glogin.sql。

    可以在glogin.sql文件中添加如下的内容:

    SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER> "

    这样,每次登录SQL*Plus的时候,SQL提示符就会变为设置的内容,假设用户为SYS,数据库为lhrdb,则提示符如下所示:

    SQL> SHOW SQLPROMPT

    sqlprompt "SQL> "

    SQL> SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER> "

    SYS@lhrdb>

    SYS@lhrdb> SHOW SQLPROMPT

    sqlprompt "_user'@'_connect_identifier> "

    注意,以上提示符的“>”后有一个空格。

     

    1.1.3.28    其它

     其中系统变量及其可选值如下:

       arraysize          {20(默认值)|n}

       autocommit         {off(默认值)|on|immediate}

       blockterminator    {.(默认值)|c}

       cmdsep             { |c|off(默认值)|on}

       compatibility      {v5|v6|v7|native(默认值)}

       concat             {.(默认值)|c|off|on(默认值)}

       copycommit         {0(默认值)|n}

       crt crt             


       echo                 {off|on}

       embedded             {off(默认值)|on}

       escape             {\(默认值)|c|off(默认值)|on}

       feedback           {6(默认值)|n|off|on}

       flush              {off|on(默认值)}

       heading            {off|on(默认值)}

       headsep            {|(默认值)|c|off|on(默认值)}

       linesize           {80(默认值)|n}

       long                 {80(默认值)|n}

       longchunksize      {80(默认值)|n}

       maxdata            n

       newpage            {1(默认值)|n}

       null text

       numformat          格式

       numwidth           {10(默认值)|n}

       pagesize           {14(默认值)|n}

       pause              {off(默认值)|on|text}

       recsep               {wrapped(默认值)|each|off}

       recsepchar           { |c}

       scan                 {off|on(默认值)}

       serveroutput       {off|on} size n

       showmode           {off(默认值)|on}

       space              {1(默认值)|n}

       sqlcase            {mixed(默认值)|lower|upper}

       sqlcontinue        {>  (默认值)|文本}

       sqlnumber          {off|on(默认值)}

       sqlperfix          {#(默认值)|c}

       sqlprompt          {sql>  (默认值)|文本}

       sqlterminator      { (默认值)|c|off|on(默认值)}

       suffix             {sql(默认值)|文本}

       tab{off|on(默认值)}

       termout            {off|on(默认值)}

       time               {off(默认值)|on}

       timing             {off(默认值)|on}

       trimout            {off|on(默认值)}

       underline          {-(默认值)|c|off|on(默认值)}

       verify             {off|on(默认值)}

       wrap               {off|on(默认值)}

     系统变量说明:

       arraysize {20(默认值)|n} 置一批的行数 是sqlplus一次从数据库获取的行数 有效值为1至5000. 大的值可提高查询和子查询的有效性 可获取许多行 但也需要更多的内存.当超过1000时 其效果不大.

       autocommit {off(默认值)|on|immediate} 控制oracle对数据库的修改的提交. 置on时 在oracle执行每个sql命令或pl/sql块后对数据库提交修改 置off时则制止自动提交 需要手工地提交修改 例如用sql的commit命令. immediate功能同on.

       blockterminator {.(默认值)|c} 置非字母数字字符 用于结束pl/sql块.要执行块时 必须发出run命令或/命令.

       cmdsep { |c|off(默认值)|on} 置非字母数字字符 用于分隔在一行中输入的多个sql/plus命令.on或off控制在一行中是否能输入多个命令. on时将自动地将命令分隔符设为分号(.其中c表示所置字符.

       compatibility {v5|v6|v7|native(默认值)} 指定当前所链接的oracle版本.如果当前oracle的版本为5 则置compatibility为v5  为版本6时置成v6  为版本7时置成v7. 如果希望由数据库决定该设置 在置成native.

       concat {.(默认值)|c|off|on(默认值)}设置结束一替换变量引用的字符.在中止替换变量引用字符之后可跟所有字符 作为体会组成部分 否则sqlplus将解释为替换变量名的一部分.当concat开关为on时 sqlplus可重置concat的值为点(.).

       copycommit {0(默认值)|n} 控制copy命令提交对数据库修改的批数.每次拷贝n批后 将提交到目标数据库.有效值为0到5000. 可用变量arraysize设置一批的大小.如果置copycommit为0 则仅在copy操作结束时执行一次提交.

       crt crt  改变sqlplus runform命令使用的缺省crt文件.如果置crt不包含什么 则crt仅包含' ' ' ' .如果在一个form的系统调用期间 要使用new.crt(缺省crt是old.crt) 可按下列形式调用form:

         sql>  runform -c new form名

         或者

         sql>  set crt new

         sql>  runform form名

     第二中方法存储crt选择 以致在下次运行runform命令(是在同一次sqlplus交互中)时 不需要指定.


       echo {off|on} 控制start命令是否列出命令文件中的每一命令.为on时 列出命令 为off时 制止列清单.

       embedded {off(默认值)|on} 控制每一报表在一页中开始的地方. 为off时 迫使每一报表是在新页的顶部开始 为on时 运行一报表在一页的任何位置开始.


       escape {\(默认值)|c|off(默认值)|on} 定义作为escape字符的字符.为off时 使escape字符不起作用.为on时 使escape字符起作用.

       feedback {6(默认值)|n|off|on} 显示由查询返回的记录数.on和off置显示为开或关.置feedback为on时 等价于置n为1. 如果置feedback为0 等价于将它置成off.

       flush {off|on(默认值)} 控制输出送至用户的显示设备.为off时 运行操作系统做缓冲区输出 为on时 不允许缓冲. 仅当非交互方式运行命令文件时使用off 这样可减少程序i/o总是 从而改进性能.

       heading {off|on(默认值)} 控制报表中列标题的打印.为on时 在报表中打印列标题 为off时禁止打印列标题.

       headsep {|(默认值)|c|off|on(默认值)} 定义标题分隔字符.可在column命令中使用标题分隔符 将列标题分成多行.on和off将标题分隔置成开或关.当标题分隔为关(off)时 sqlplus打印标题分隔符像任何字符一样.

       linesize {80(默认值)|n} 置sqlplus在一行中显示的字符总数 它还控制在ttitle和btitle中对准中心的文本和右对齐文本. 可定义linesize为1至最大值 其最大值依赖于操作系统.

       long {80(默认值)|n} 为显示和拷贝long类型值的最大宽度的设置. 对于oracle7  n的最大值为2g字节 对于版本6 最大值为32767.

       longchunksize {80(默认值)|n} 为sqlplus检索long类型值的增量大小.由于内存的限制 可按增量检索 该变量仅应用于oracle7.


       maxdata n  置sqlplus可处理的最大行宽字符数 其缺省值和最大值在不同操作系统中是可变的.

       newpage {1(默认值)|n} 置每一页的头和顶部标题之间要打印的空行数.如果为0  在页之间送一换号符 并在许多终端上清屏.


       null text 设置表示空值(null)的文本 如果null没有文本 则显示空格(缺省时). 使用column命令中的null子句可控制null变量对该列的设置.

       numformat 格式  设置显示数值的缺省格式 该格式是数值格式.


       numwidth {10(默认值)|n} 对显示数值设置缺省宽度.


       pagesize {14(默认值)|n} 置从顶部标题至页结束之间的行数.在11英寸长的纸上打印报表 其值为54 上下各留一英寸(newpage值为6).



       recsep {wrapped(默认值)|each|off}

       recsepchar { |c}  指定显示或打印记录分行符的条件.一个记录分行符 是由recsepchar指定的字符组成的单行.空格为recsepchar的默认字符.

       recsep告诉sqlplus在哪儿做记录分隔.例如将recsep置成wrapped 在每一缠绕行之后 打印记录分行符.如果将recsep置成each sqlplus在每一行后打印一记录分行符.如果将recsep置成off  sqlplus不打印分行符.


       scan {off|on(默认值)} 控制对存在的替换变量和值的扫描.off禁止替换变量和值的处理  on则允许正常处理.


       serveroutput {off|on} size n 控制在sqlplus中的存储过程是否显示输出.off时为禁止  on时则显示输出. size设置缓冲输出的字节数 缺省值为2000  n不能小于2000或大于一百万.


       showmode {off(默认值)|on} 控制sqlplus在执行set命令时是否列出其新老值old或new的设置.

       space {1(默认值)|n}  设置输出列之间空格的数目 其最大值为10.


       sqlcase {mixed(默认值)|lower|upper}  先于执行之前 将sql命令和pl/sql块的大小写进行转换. sqlplus将转换命令中的全部文本 包括带引号的直接量和标示符.sqlcase不改变sql缓冲区本身.


       sqlcontinue {>  (默认值)|文本}  在一附加行上继续一sqlplus命令时 sqlplus以该设置的字符序列进行提示.


       sqlnumber {off|on(默认值)}  为sql命令和pl/sql块的第二行和后继行设置提示.为on时 提示行号 为off时 提示设置为sqlprompt的值.


       sqlperfix  {#(默认值)|c}  设置sqlplus前缀字符.在键入一sql命令或pl/sql块时 可在单独行上键入一sqlplus命令 由sqlplus的前缀字符做前缀. sqlplus直接执行该命令 不影响sql命令或pl/sql块.前缀字符必须是非字母数字字符.


       sqlprompt {sql>  (默认值)|文本}  设置sqlplus的命令提示符.


       sqlterminator { (默认值)|c|off|on(默认值)}  设置用于结束和执行sql命令的字符. off意味着sqlplus不识别命令终止符 用键入空行来结束sql命令. on重设置终止符为默认的分号(.


       suffix {sql(默认值)|文本}  设置缺省文件的后缀 sqlplus在命令中使用 来引用命令文件. suffix不控制输出(spool)文件的扩展名.


       tab {off|on(默认值)}  决定sqlplus在终端输出中如何格式化空白空间. 为off时 在输出中使用空格格式化空白空间 为on时 用tab字符. tab的缺省值依赖于系统 用show tab命令可查看该缺省值.


       termout {off|on(默认值)}  控制由文件执行命令所产生的输出的显示. off禁止显示 以致从一个命令文件假脱机输出 在屏幕上看不到输出. on时显示输出. termout off 不影响交互地进行命令的输出.


       time {off(默认值)|on}  控制当前日期的显示. on时 在每条命令提示前显示当前时间  off时禁止时间的显示.


       timing {off(默认值)|on}  控制时间统计的显示. on时 显示每一个运行的sql命令或pl/sql块的时间统计  off时 禁止每一个命令的时间统计.


       trimout {off|on(默认值)}  决定sqlplus在每一显示行的末端是否允许带空格. on时将每行尾部的空格去了 特别当从慢速的通信设备存取sqlplus时可改进性能  off时允许sqlplus显示尾部的空格.trimout on 不影响假脱机输出. 设置tab on时 sqlplus忽略trimout on.


       underline {-(默认值)|c|off|on(默认值)}  设置用在sqlplus报表中下划线列标题的字符. on或off将下划线置成开或关.


       verify {off|on(默认值)}  控制sqlplus用值替换前、后是否列出命令的文本. on时显示文本 off时禁止列清单.

       wrap {off|on(默认值)}  控制sqlplus是否截断数据项的显示. off时截断数据项 on时允许数据项缠绕到下一行. 在column命令中使用wrapped和truncated子句可控制对指定列的wrap的设置.

     

     

    1.@

    @[url|file_name] [arg]

     

    2.@@

    (类似@ 用法主要为在脚本文件中嵌套调用其他脚本文件)

     

    3./

    用于执行

    select * from emp

    .

    /

     

    4.accept (用于将输出值存储到替代变量)

    acc variable ----->用于指定变量

    [num char date binary_float binary_double  ]---->类型

    for|format ---->输出格式

    default|def ------>默认

    prompt text | noprompt [hide] ----->指定提示文本 或 无提示默认 或者隐藏

    accept hired date format 'dd-mm-yyyy' format '输入日期:'

    accept pswd char format '口令: ' hide

    accept ename char format 'A20' prompt 'name: '

    name: hello

     

    5.append

    用于在SQL缓冲区的当前尾部添加内容

    A[ppend]

     

    6.archivelog

    archie log {list | stop} | {start | next | all | integer} [to  destination]

    start -->用于激活自动归档

    next  -->用于手工归档尚未归档的下一个日志组

     

    7.attribute

    attribute [type_name.attribut_name [all[as] alias clear]] for[mat] format like {type_name.attribute_name | alias} on|off]]

    type_name对象类型名,attribut_name对象书属性名,alias指定别名,format指定列显示格式,like用于复制另一属性的显示特征,on|off用于控制列的显示特征状态

     

    attr employee_type.last_name format a20

     

    8.break (参考)

    此命令用于禁止显示重复行,并且将显示结果分隔为几个部分

    bre(ak) [on report_element [action [action]]] ....

    report_element {column|expr|row|report}

    action {ski[p]n|ski[n]|page} {nodup|licates|dup[licates]}

    SQL> break on deptno skip 1

    SQL> set pagesize 40

    SQL> select deptno,ename,sal from emp order by deptno;

     

        DEPTNO ENAME             SAL

    ---------- ---------- ----------

            10 CLARK            2450

               KING             5000

               MILLER           1300

     

            20 JONES            2975

               FORD             3000

               ADAMS            1100

               SMITH             800

               SCOTT            3000

    9.btitle

    用于指定报表页底部标题

    btitle [printspec [text|variable]..] | [on | off

    btitle 'page end'

    select ename,sal,hiredate from emp where empno=7788;

     

    10.change

    c[hange] sepchar ole [sepchar [new [sepchar]]]

    用于修改SQL缓冲区当前行的内容

     

    11.clear

    用于复位或者删除特定选项的当前值或者设置

    cl[ear] bre[aks] | buff[er] | col[umns] | comp[utes] | scr[een] | sql timi[ng]

    SQL> cle bre

    breaks cleared

     

    12.col

    column [column |expr ] {option}

    clear entmap(on|off) fold_after fold_before 

    format heading text {right|left|center} like{expr|alias}

     

    col ename heading 'name' format a10

    col sal heading 'sal' formate l9999.99

     

    13.compute

    与break 结合可用于输出小计行

    comp [function [label] text] .. of [expr| column| alias] ..on [expr|column |alias | report|row ]..]

    break on deptno skip 2

    compute sum label 'total' of sal on deptno

     

    14.connect

    connect scott/tiger@test

    connect sys/oracel@test as sysdba

     

     

    16.del

    该命令用于删除SQL缓冲区一行或多行

    del [n | n m |n *| n last| * | * n|* last| last]

    n 到 m

    n 到 *当前

    n 到 last 最后一行

    *  当前行

    * 当前  到 n 行

    last 最后一行

     

    17.describe

    desc {[schema.]object[@db_link]}

     

    18.disconnect

    断开连接会话但不退出sqlplus

     

    19.edit

    用于编辑SQL缓冲区或SQL脚本的内容

    ed /u../1.txt

     

    20.execute

    用于执行单个PL/SQL语句

    exec dbms_output.put_line('hello')

     

     

    21.exit

    exit  {success|failure|warning} | n | variable | :bindvariable

    {rollback | commit}

     

    22.get

    将OS文件内容装载到SQL缓冲区

    get /u../d1.sql

     

    23.help

    help | ? [topic]

    该命令用于显示命令帮助信息

    ? copy

     

     

    25.input

    用于在SQL缓冲区的当前行后增加一行或者多行

    i(put)  where deptno=10

     

    26.list

    [n | n m |n *| n last| * | * n|* last| last]

    用于列出SQL缓冲区的内容

     

    27.n

    定位SQL缓冲区的当前行

     

    28.passwd

     

    29.pause

    该命令用于指定暂停执行

    pause [text] ----->text 用于指定暂停等待要显示的文本

    set pause off

    pause adjust paper and press return to continue.

     

     

    30.print [variable ..]

    print no

     

     

    31.prompt

    该命令用于指定显示信息

    prompt [text]

    prompt '按回车键继续'

     

    32.remark

    用于在脚本中开始注释

     

    33.repfooter

    该命令用于设置报表脚注

    repfooter [page] [printspec [text | variable]..] [on | off]

    printspec :col ns[kip] [n]tab nleft center right bold format text

     

    34.repheader

    repheader [page] [printspec [text | variable]..] [on | off]

    printspec :col ns[kip] [n]tab nleft center right bold format text

     

    repfooter page center 'employee listing report '

     

    35.run

    运行并列出缓冲区的内容

     

    36.save

    将缓冲区内容保存到sql脚本

    save file filename create replace append

     

    37.set appinfo {on | off | text}

    set appi on

    show appinfo

    该命令用于设置是否通过dbms_application_info包自动注册脚本

     

    38.set array[size] {n}

    show array

    set arraysize 25

    该命令用于设置数组提取尺寸

     

    39.set auto[commit] {on|off|immediate| n}

    该命令用于设置是否自动提交DML语句,默认为 OFF

     

    40.set autoprint {on|off}

    该命令用于设置是否自动输出邦定变量值

     

    41.set autorecovery on|off

    该命令用于设置恢复时是否自动应用归档日志

     

    42.set autotrace {on|off|traceonly} {explain|statistics}

    用于设置是否激活自动跟踪,     只跟踪不显示语句结果  只显示执行计划   只显示执行统计 

    SQL> set autot traceonly stat

    SQL> select * from scott.emp;

     

    43.set blo[ckterminator] {.|c|on|off}

    该命令用于设置 plsql会的结束符

     

    44.set cmds[ep] {;|c|on|off}

    用于设置多个sql*plus 命令之间的分隔符

     ttitle left 'salaries' +   clear column

     

    45.set colsep [ |text]

    SQL> set colsep |

    SQL> show colsep

    colsep "|"

    SQL> select sal,ename from scott.emp where empno=7788;

     

    salaries

           SAL|ENAME

    ----------|----------

          3000|SCOTT

     

    46.set con[cat] {.|c|on|off}

    该命令用于设置终止替代变量引用的字符

     

    47.set copy {0,n}

    该命令设置在执行copy时 提交改变到数据库的行数

     

    48.set copytypecheck {on|off}

    用于设置在执行copy命令时是否禁止数据类型比较

     

     

    50.set describe [depth {1 n all }] [linenum on off ] [ indent on off]

    该命令用于设置描述对象的深度级别

     

    51.set echo {on off}

    该命令用于控制是否激活echo命令

     

    52.set editfile file_name

    该命令用于设置edit 命令的 默认文件名

     

    53.set embedded on|off

    该命令用于控制报表开始在页的何处

     

    54.set error {on off} [table tablename] [truncate] [identifier identifier]

    该命令用于控制是否激活sqlplus的错误日志

     

    55.set escape {\ c  on off}

    该命令用于定义转字符

     

    56.set escchar {@ ? % $ off}

    该命令用于定义被转义的字符

     

    57.set feedback {n off on}

    该命令用于设置显示反馈信息的最低行数 默认值为6

     

    58.set flagger {off entry intermen full}

    该命令用于检查以确保SQL语句遵从sql 92标准

     

    59.set flush {on off}

    该命令用于控制输出何时发送到用户显示设备

     

    60.set heading {on off}

    用于设置是否显示列的标题

     

    61.set headsep {c on off}

    该命令用于设置col命令列标题的行分隔符

     

    62.set instance [instance_path local]

    该命令用于设置会话的默认例程

     

    63.set lin [n]

    该命令用于设置行宽度

     

    64.set loboffset {n}

    该命令用于设置检索和显示LOB数据的起始位置

     

    65.set logsource [pathname]

    该命令用于设置恢复时归档日志的位置

     

    66.set long {n}

    该命令用于设置LONG 和 lob 类型列的显示长度

     

    67.set longc {n}

    该命令用于设置SQLPLUS检索blob clob long nclob xmltype 类型值的增量尺寸

     

    68.set newpage {n}

    该命令用于设置页顶端到标题之间的行数

     

    69.set null text

    该命令用于设置null 显示文本

     

    70.set numformat format

    该命令用于设置数字的默认显示格式

     

    71.set num[width] [n]

    该命令用于设置数字值的默认显示宽度

     

    72.set pagesize [n]

    该命令用于设置每页所显示的行数

     

    73.set pause {on off text}

    该命令用于设置暂停显示文本,或者激活或禁止暂停显示

     

    74.set recsep {wrapped | each off}

    用于控制如何显示记录分隔符。

     

    75.set recsepchar { | c}

    用于设置记录分隔符

     

    76.set serveroutput { on off} [size {n|unlimited}] [format  {wrapped | word_wrapped | truncated}]

    该命令用于控制是否显示dbms_output包的输出结果

    SQL> exec dbms_output.put_line('hello');

    hello

     

    PL/SQL procedure successfully completed.

     

    77.set shiftinout {visible|invisible}

    用于控制是否在终端显示shift字符

     

    78.set showmode {on | off}

    用于控制是否显示set 命令的原值 和新 值

    SQL> set arraysize 50

    SQL> set show on

    new: showmode BOTH

     

    SQL> set arraysize 15

    old: arraysize 50

    new: arraysize 15

     

    79.set  sqlblanklines {on|off}

    该命令用于控制是否允许在SQL命令之间存在空行

     

    80.set sqlcase {mixed|lower|upper}

    该命令用于控制是否转换SQL命令的大小写

     

    81.set sqlcontiue {>|text}

    控制续行时所显示的文本

     

    82.set sqlnumber {on | off}

    控制是否显示SQL语句行号

     

    83.set sqlpluscompat {x.y[.z]}

    设置版本号 发布号 更新号

     

    84.set sqlprefix {#|c}

    该命令用于设置SQLplus前缀字符

     

    85.set sqlprompt {text}

    该命令用于设置SQL提示符

     

    86.set sqlterminator [;|c|on|off]

    该命令用于设置SQL语句终止符

     

    87.set suffix {sql|text}

    该命令用于设置默认文件扩展名

     

    88.set tab {on|off}

    该命令用于设置空格在终端的输出格式

     

    89.set termout {on|off}

    该命令用于控制SQL脚本输出

     

    90.set time {on off}

    该命令用于设置在SQL提示符前是否显示系统时间

     

    91.set timing {on off}

    该命令用于设置是否要显示SQL语句执行时间

     

    92.set trimout {on off}

    用于设置是否在显示行尾部截断空格

     

    93.set trimspool {on off}

    该命令用于设置是否在SPOOL行尾截断空格

     

    94.set underline {- c on off}

    该命令用于设置在列头底部显示的字符

     

    95.set verify {on off}

    该命令用于设置是否列出包含替代变量的文本

     

    96.set wrap {on off}

    该命令用于设置是否截断 被选择行

     

    97.show

    用于显示SQLPLUS环境变量值。

     

    98.shutdown {abort| immediate |normal |transactional{local}}

    关闭例程和数据库

     

    99.spool [file_name [create |replace|append] | off | out]

    用于将SQLPLUS屏幕内容存放到特定文件

     

    100.start  [url | file_name | ] [arg ...]

    该命令用于运行SQL脚本文件

     

    101.startup options | upgrade_options

    options [force] [restrice] [pfile=filename] [quiet ]        [  mount [dbname] | [open [open_options] [dbname]]| nomount]

     

    open_options : read [only |write [recover]]  |  recover

    upgrade_options: [pfile=filename] {upgrade | downgrade} [quiet]

     

    102.store set file_name {create | replace | append}

    该命令用于保存当前SQLPLUS环境属性到文件

     

    103.timing [start text | show | stop]

    该命令用于定义定时器名称,并计时数据

    SQL> timing start a

    SQL> timing show

    timing for: a

    Elapsed: 00:00:06.03

    SQL> timing show

    timing for: a

    Elapsed: 00:00:16.82

    SQL> timing show

    timing for: a

    Elapsed: 00:00:19.73

    SQL> timing show

    timing for: a

    Elapsed: 00:00:20.35

    SQL> timing show

    timing for: a

    Elapsed: 00:00:20.93

    SQL> timing stop

    timing for: a

    Elapsed: 00:00:28.84

     

    104.title [printspec [text | variable]..] [on | off]

    用于指定页标题

    printspec : bold|center| col n|format text [left|right| skip n| tab n]

     

     

     

    106.variable [variable [type]]

    该命令用于定义在SQLPLUS 中定义邦定变量

    variable: 指定替代变量名

    type:指定数据类型

    引用邦定变量时,必须要在邦定变量前加冒号。

    当直接给邦定变量赋值时,需要使用execute命令

     

     

    197.long

    可以用set long 命令将LONG 截断点至少增加到 355(默认值为80),以查看视图的查询的全部文本

     

     











    About Me

    .............................................................................................................................................

    ● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

    ● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

    ● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

    ● 本文博客园地址:http://www.cnblogs.com/lhrbest

    ● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

    ● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

    ● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

    .............................................................................................................................................

    ● QQ群号:230161599(满)、618766405

    ● 微信群:可加我微信,我拉大家进群,非诚勿扰

    ● 联系我请加QQ好友646634621,注明添加缘由

    ● 于 2018-01-01 06:00 ~ 2018-01-31 24:00 在魔都完成

    ● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

    ● 版权所有,欢迎分享本文,转载请保留出处

    .............................................................................................................................................

    小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

    小麦苗出版的数据库类丛书http://blog.itpub.net/26736162/viewspace-2142121/

    好消息:小麦苗OCP、OCM开班啦,详情请点击http://blog.itpub.net/26736162/viewspace-2148098/

    .............................................................................................................................................

    使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

       小麦苗的微信公众号      小麦苗的DBA宝典QQ群2     《DBA笔试面宝典》读者群       小麦苗的微店

    .............................................................................................................................................

    ico_mailme_02.png DBA笔试面试讲解群 《DBA宝典》读者群 欢迎与我联系



    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2149540/,如需转载,请注明出处,否则将追究法律责任。

    user_pic_default.png
    请登录后发表评论 登录
    全部评论
    展开全文
  • Linux 开发软件

    千次阅读 2019-07-12 22:34:36
    这是开发中可能使用到的一类软件。 安装Ubuntu 16.04后要做的事(总结) 通用IDE VIM 极客大佬才玩的东西,我一般都不怎么用,╮(╯▽╰)╭ VIM安装 安装vim,可以直接执行以下命令行: apt-get install ...
  • Depthmap 空间句法分析软件

    热门讨论 2014-12-20 11:27:34
    Depthmap 空间句法分析软件, 内包含UCL 实验室的英文说明书DepthmapManualForDummies-v13.pdf
  • IT 软件开发最常用英语单词总汇

    千次阅读 多人点赞 2019-09-24 22:47:24
    IT 软件开发最常用英语单词总汇前言:ABCDEFGHIJKLMNOPQRSTUVWX 前言: 各位同胞们,相信你们肯定会有和我一样的苦恼——(学习新知识,代码报错了)英语貌似看不懂呀( ̄y▽, ̄)╭ ,稳住,别慌!!!当当当当,这是...
  • 软件工程专业英语翻译句子

    千次阅读 2019-12-16 16:21:33
    This mechanism uses a hard disk as a part of computer's memory, expanding the computer's memory space while minimizing cost, because a byte of hard disk costs less than a byte of RAM.    第二...
  • 如何破解Mac软件的付费限制(一)

    千次阅读 2019-09-08 13:14:36
    今天简单的分享下我破解的几款软件当中的一款,具体是什么软件就不说了,主要是提供下破解的思路。由于不能供发图,所以这里简单介绍下这款软件。这款软件是App Store上的一款磁盘清理软件,扫描是免费的。扫描到...
  • 开源SCADA软件

    千次阅读 2019-09-19 10:54:09
    【合集】开源SCADA软件 在2019年6月6日上张贴由钱五哥发表回复 Post Views:734 https://rapidscada.org/download-all-files/ Rapid SCADA is free, open source, full featured SCADA software. Using Rapid ...
  • FreeMapper 是一个为计算机游戏的非平铺、自由位置 2D 地图开发框架和编辑器的项目。 目前有一些无瓦片地图结构的示例代码和一个简单的显示测试实现。
  • 高性能计算专业应用软件大观

    万次阅读 2020-05-14 10:22:40
    谈到高性能计算,很多人都会想到那些每秒可以运行百万亿次、千万亿次计算的超级计算机,如最近炒得很火爆的“天河一号”、“曙光6000“等,但很少有人会想到上面跑的软件。其实,硬件只是基础,只是提供了平台和资源...
  • Set Tab Off - 使SQL*Plus的输出更整齐

    千次阅读 2017-06-01 21:05:24
    今天在校书的过程中发现,在SQL*Plus中执行命令的输出在屏幕上显示是对齐的,但拷贝到文件中显示乱。例如:解决方法见 ...关键就是set tab off, 将所有的tab转换为space,以避免tab
  • Mac实用软件及功能吐血总结

    万次阅读 多人点赞 2018-03-26 11:13:39
    本人一年半来跟踪Mac志(http://www.isofts.org/category/software-for-mac-os-x/)、MacGG(http://www.macgg.com/archives/category/mac软件),潜心...以下条目按照如下格式编排:软件名称分类简介需要说明的是并...
  • java内存溢出之Java heap space

    千次阅读 2021-03-08 09:31:48
    打开转储分析软件(我们推荐Eclipse MAT , 当然你也可以使用其他工具)。 检测快照中占用内存最大的 GC roots。详情请参考: Solving OutOfMemoryError (part 6) – Dump is not a waste。 这对新手来说可能有点困难, ...
  • I: Set the RESUME variable to override this. gzip: stdout: No space left on device E: mkinitramfs failure cpio 141 gzip 1 update-initramfs: failed for /boot/initrd.img-4.15.0-38-generic with 1. dpkg:...
  • Halcon正版软件加密狗使用指南

    千次阅读 2020-10-15 10:53:50
    如果你购买正版的软件(分开发版和运行版,假定两个版本你都买了),将会得到一个开发狗和一个运行狗以及对应的开发版license和运行版license。 -----------------------------------------------------------------...
  • case KeyEvent.VK_SPACE -> drawPath = !drawPath; default -> { } } // 若移动后未出界且格子之间有路径,则进行移动,更新小球位置,否则移动非法 if (!isOutOfBorder(tx, ty) && (maze[tx][ty].getFather() == ...
  • 工作日报管理系统软件

    热门讨论 2011-03-31 12:01:20
    工作日报管理系统,用于记录日常工作事件,信息化工具
  • Humanity is now faced with a new set of challenges—climate change and extreme weather, declining natural resources, an increasing world population to be fed and housed, international terrorism, and ...
  • 上一节实验了用U盘来批处理安装软件,但是这个方法有两个缺点: ...set /p a=添加刘林锋共享文件夹按y键 退出按n键,请输入并按回车: if /i "%a%"=="n" exit if /i "%a%"=="y" goto :2 cls&%0 :2 net
  • ubuntu常用软件及配置

    千次阅读 2018-02-28 19:46:40
    读研的时候开始接触使用的ubuntu,最初使用ubuntu因为很多常用软件找不到合适的替代软件感觉特别不习惯,于是机器上安装了双系统,学习的时候就切换到ubuntu下面,平时还是用win10。后来ubuntu下各种软件用的越来越...
  • 多年收集的一些稀有软件4

    万次阅读 多人点赞 2018-10-06 14:21:00
    Geovariances Isatis 2013 1CD(地质统计学软件) Geovariances.Isatis.2016.Win64 1CD Geovariances Minestis 2016 v2.0.0Win64 1CD   软脑公司产品: 3D-Sigma for WinALL-ISO 1CD(岩土体三维应力分...
  • 1小时1篇文学会python再做个飞机大战游戏

    万次阅读 多人点赞 2021-04-30 16:02:07
    作者简介 作者名:1_bit 简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。...
  • Halcon错误 #2021: System clock has been set back. This error can only occur when the FEATURE line contains an expiration date. 解决方法: 参考下面两个链接应该可以解决,避免重装系统太麻烦 ...
  • 软件开发常用词汇中英文对照

    千次阅读 2017-12-20 17:16:27
    软件名称相关发音读法: Ajax [ey-jaks], ['eidʒæks] 发音地址参照: https://www.dictionary.com/browse/ajax?x=31&amp;y=17Nginx 是 Engine X 的缩写,官方给的发音为: [en-juhn-eks],国人有的发音为: ...
  • pcie configuration space理解及仿真

    千次阅读 2019-12-05 10:39:55
    PCIe common configuration space PCIe总线为了兼容这些PCI设备,几乎完整的保留了PCI总线的配置空间。并将配置空间扩展到4KB,用于支持一些PCIe总线中新的功能,如PCI Express Capability、Power Management和MSI....
  • Ubuntu18.04重装系统+常用软件安装

    千次阅读 2020-06-30 19:52:11
    1.Ubuntu18.04重装系统 1.1 安装盘制作 ... 如下图: 2) 下载好Ubuntu18.04镜像后,我们需要进行U盘的制作或者光盘的...刻录U盘或者光盘,我们需要一款刻录软件、本人所用的是UltraISO软通牒刻录软件,这款软件网上都.
  • GSEA软件基因富集分析

    千次阅读 2020-02-27 11:29:01
    快速目录链接GSEA分析简介分析步骤1、准备数据(1)表达数据文件(2)表型标签文件2...首先在官网下载软件软件下载 1、准备数据 使用GSEA时,可以提供四个数据文件:表达数据集文件、表型标签文件、基因集文件和芯...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,715
精华内容 26,286
关键字:

setspace软件