Oracle一些常用的命令简介 - KelovpString

/ 0评 / 0

    之前一直在使用小型免费的关系型数据库MySQL,对于打官司超强的Oracle早就有所耳闻且有一学期之久的课程(还差点加入他们的校园计划)虽然接触时间蛮久也知道有OCA 、OCM、OCP这样的分级存在,但是讲实话现在只记得一些SQL语句了(老脸一红)。作为企业级的一个数据库系统,Oracle的强大自然不用多吹(Sun公司哭死,IBM:??)而这次对一些Oracle的命令和SQL语句再复习和学习一下。

Link Startor:

    1. 启动:

  win+R ---> cmd  -----> sqlplus "/as sysdba"  //以sysdba身份登录(此时可以创建用户,分配权限等)
  win+R ---> cmd  -----> sqlplus username/password    //以指定用户名/密码身份登录
  win+R ---> cmd  -----> sqlplus 按照提示,输入用户名密码/直接找到安装目录,打开sqlplus终端。

    2.创建用户:

create user username identified by password

    3.授予权限: 

grant resource ,connect to user;
        resource:
        create trigger
        create sequence
        create type
        create procedure
        create cluster
        create operator
        create indextype
        create table
        connect: 
        create session

    4.切换用户:

 conn username/password

    5.导入测试数据:因为数据文件的默认语言环境为英语,当前windows系统是中文,中英文时间显示不一致,导入会失败,需要先修改语言环境

    alter session set nls_date_language=english;
    alter session set nls_language=english;
    @ e:\oracle\summit2.sql
    start e:/oracle/summit2.sql

    6.查看表结构:

    desc table_name;

    7.查看当前用户具有哪些表:

 select table_name from user_tables;

    8.sqlplus命令

        a:在当前操作的命令行追加内容
        a test
        c: 在当前操作的命令行修改内容
        c/old_char/new_char
        clear buffer:清空当前缓存的命令
        del:删除当前操作行
        del line_num指定删除第几行
        i:当前操作命令行的下一行插入内容
        l:查看缓存命令
        l line_num:查看指定的命令行
        n text:替换第n行的整行内容
        !:后面接终端命令 ------linux环境下
        !clear:清屏 ///
        $:后接终端命令
        $cls ---------> windows环境下
        /:执行缓存sql命令
        save file_name:将缓存命令保存到file_name中 (append replace)
        get file_name:将文件中的内容提取到sqlplus
        start 和 @ file_name:执行文件中的sql命令
        edit file_name:使用终端设置好的vi编辑器编辑文件(对于windows使用的是notepad)
        spool file_name   将接下来的sql语句以及sql的运行结果保存到文件中(append)
        spool off  关闭spool功能
        exit:退出
    结果不好看,通过column使我们的显示界面好看。
        colu last_name format a15;
        colu first_name format a15;
        Column 有没有改变数据表里数据,它只是改变显示。它是不是SQL命令呢? 不是,它是sqlplus命令。
        COLUMN last_name HEADING 'Employee|Name' FORMAT A15

            给last_name取别名为Employee|Name , 竖杠代表换行。

            A15表示十五个字节长,一短横杠就是一个字节长

        COLUMN salary JUSTIFY LEFT FORMAT $99,990.00

        salary JUSTIFY LEFT : 仅仅改变列名显示为左齐

        FORMAT $99,990.00: 控制显示格式为前面加 $ 符, “,”为分隔符, 0或9代表数字(通配符),0表示替换对齐数值,位数不足会补足,可以混合使用.

        COLUMN start_date FORMAT A8 NULL 'Not hired'

        如果start_date值为空的话,显示为’Not hired’; 
        Format后不能直接跟null, 要先a8或a10;
        NULL 'Not hired'和nvl有点不同, nvl要求类型匹配
        column 显示所有对列格式的设置情况
        column last_name 显示对last_name列显示设置的情况
        column last_name clear 删除对last_name列格式设置的情况
        Clear column 清除所有column的格式设置

        Column某列的格式设置,这里的列并不特定于某个表.

SQL:

    select :

        select [distinct] {*,column [alias],...} from table

        select语句可以对指定的列的所有值进行算术运算:select col_name 运算符 数字 from tb_name;

        给查询的列区别名:select old_column [as] new_column_name from tb_name;
        使用||可以使得多列的值或者列和特殊的字符串合并到一个列进行显示:select col_name||'spe_char'||col_name from tb_name

        对null值得替换运算:select nvl(col_name,change_value) from tb_name;nvl2(col_name,不为空显示的值,为空显示的值);
        使用distinct关键词,可以将显示中重复的记录只显示一条:select distinct col_name,col_name... from tb_name;

    Order by

        order by子句在整个select语句中的位置始终位于最后
        order by后可以跟列名,列的别名,表达式,列出现在select关键字后的顺序(列号);
        order by后可以跟多列,表示先按第一列排序,如第一列有相同值再按第二列进行排序,如前二列均有相同值,则按第三列进行排序...

        ASC表升序,可以省略,DESC表降序。
        空值永远是最大的。升序排序的时候,空值放在最后。降序排序的时候,空值放在最前面的

    Where:

        select col_name,...from tb_name where col_name 比较操作表达式 逻辑操作符 col_name 比较操作表达式

        所有字符串和日期要用单引号括起来,数值不需要单引号。
        由一至多个限定条件组成,限定条件由表达式, 比较符, 字面值组成。

        sql比较操作符:

            between and:在什么范围之内
            in(list):在一个列表中
            like:模糊查询,即值不是精确的值的时候使用
            通配符,即可以代替任何内容的符号
            %:通配0到多个字符
            _: 当且仅当通配一个字符
            转义字符:默认为\,可以指定 指定的时候用escape 符号指明即可,转义字符只能转义后面的一个字符
          逻辑操作符:当条件有多个的时候使用
            and:且逻辑
            or:或逻辑
            注意:and逻辑比or逻辑要高
            not:非逻辑  

    字符函数

        LOWER:转换成小写

        UPPER:转换成大写

        INITCAP:首字母变成大写,其余都小写

        CONCAT:字符串的连接

        SUBSTR(str,start,length):字符串的截取

        LENGTH:求字符串的长度

    数字函数

        ROUND:四舍五入
        TRUNC:截取,不进行四舍五入

        MOD:取余

    日期函数

        MONTHS_BETWEEN:两个日期之间的月数

        ADD_MONTHS:在指定日期上增加月数

        NEXT_DAY:指定日期的下一个星期几是哪天

        LAST_DAY:指定日期的最后一天

        ROUND:对指定日期进行四舍五入

        TRUNC:对指定日期进行截取

    Group Function

        select ... from ... where ... group by col_name,col_name having ... order by...
        所谓组查询即将数据按照某列或者某些列相同的值进行分组,然后对该组的数据进行组函数运用,针对每一组返回一个结果。其中avg:求平均值,count:求总数,max:最大值,min:最小值,sum:求和

    类型转换函数

        1).TO_CHAR 将日期或者数值转换成字符串

        2).TO_NUMBER 将字符串转换成数字

        3).TO_DATE 将日期字符串转换成日期
    由于多表查询、子查询涉及内容较多,不作为基本语法写出,但是其重要程度十分之高。而关于更多的知识移步:网友的博客


        

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注