美文网首页
oracle database

oracle database

作者: LunarShade | 来源:发表于2017-12-17 19:20 被阅读0次

    1. 登陆

    sqlplus ID PASSWORD

    2. 控制行/列布局:

    set linesize XX

    set pagesize XX

    3. 提取表的信息:

    select 列名 from X

    4. 提取全部表的信息:

    select * from XX

    5. 查看表中的列名:

    desc 表名

    6.从数据字典中获取表的信息:

    SELECT    信息    FROM USER_TAB_COLUMNS WHERE TABLE_NAME=‘表名’

    7.   对列进行算术运算:

    select 列名的运算(先乘除后加减) from 表

    8. 定义类的别名

    select 类 as 名字 from 

    select 类 名字 from 

    select 类 “名字” from 

    9. 类连接

    select 类名    ||‘ 句子 ’||    类名 from 表 

    * 表达单引号: 要用‘’避免和||后的‘形成配对

    10. 选不重复的记录:

    select distinct 类名 from 表

    *选了多个类: 给出的是所有的不同组合

    11. 选择比较结果后的列:

    select xxx from 表 where 判定条件

    12. 选择变量的结果:

    select xxx from 表 where 变量名 = ’ xxx‘

    * xxx区分大小写(是表内信息就区分)

    13. 选择日期的结果:

    select xxx from 表 where hiredate = ’DD-MON-YY‘

    14. 如果不确定日期格式:

    select xxx from 表 where hiredate = to_date(’xxxxxxxx‘, ’ddmmyyyy‘)

    15. 用between筛选;

    select xxx from 表 where xxx between 低 and 高

    16. 用in筛选:

    select xxx from 表 where xxx in (xxxxxxxx)

    17. 用like筛选:通配查询

    select xxx from 表 where 变量 like ’----信息%‘

    其中-代表一个字符 

    %代表任意个字符

    18. 用like查询包含下划线的数据:

    select xxx from 表 where 变量 like ’----\_信息-----‘ except ’\’;

    *escap代表后面的字符在like里按普通字符处理

    19. and查询/or查询/not查询

    select xxx from 表 where 条件 and/or/not 条件

    and筛选同时满足两个条件的列

    or筛选只要满足一个即可

    not筛选相反条件的列

    20. 对筛选结果根据某一列排序: order语句

    select xxx from 表 order by 列名 asc(升序,默认)/desc(降序);

    *此处列名可以用前面命名的别名

    *也可以多个列一起排:前面的优先级高,可以分别定义每个列按升序/降序

    21.字符串函数:

    字符函数被分为:

    大小写转换函数

    字符处理函数

    LOWER(column | expression): 将字符转换为小写

    UPPER(column | expression): 将字符转换不大写

    INITCAP(column | expression): 将每一个单词的第一个字母大写其它小写

    CONCAT(column | expression): 返回第一个串接上第二个串,它的作用和'||’ 运算是相同的

    SUBSTR(column | expression,m[,n]): 返回从字母m开始,有n个字符长的字符串。

    LENGTH(column | expression): 返回字符串长度

    INSTR(column 1 expression.m[n]): 返回字符串中字符的位置

    LPAD(column 1 cxpression,n,'string'): 在字符串前填补字符,使其长度达到n。

    RPAD(column 1 cxpression,n,‘string’): 在字符串后填补字符,使其长度达到n。

    22.数字函数接收数字输入返回数字值

    ROUND(column | expression, n):返回舍入到小数点右边n位的值

    TRUNC(column | expression, n):返回截断到n位的值

    MOD(m,n):返回m和n相除后的余数

    power(m,n) 返回m的n次方

    sqrt(m) 返回m的开方

    23. 返回当前日期:

    SELECT SYSDATE FROM SYS.DUAL;

    24:from dual里面这个dual是他妈什么:

    DUAL:是一个SYS用户所拥有的表,所有的用户都可以访问。它包括一个列DUMMY和一条记录值为X。

    25:日期相关的函数:

    妈的不能复制表格 垃圾编辑器

    26. 数据类型的转换函数:

    TO_CHAR(number | date,[ ‘fmt’]) :将数字或日期按格式转换成字符

    TO_NUMBER(char)        :将字符串转换成数字,此字符串必须是数字

    TO_DATE(CHAR,[ 'fmt'])  :将字符串按指定的格式转换成日期

    27.NVL函数: 把空值转化为指定类型的值

    NVL(列名, 转化值)

    28. 表的连接:

    从两个表中获取数据:需要将两个表进行连接

    一个表中的记录可以根据两个表的相同列和另一个表的记录相连接

    通过:table.column1 = table2.column2 将表连接起来的条件

    当写一个有连接的SELECT命令时,为了避免同样的不同表具有同样的列名,应该在列前加表的名字或者表的别名

    当在表中有相同的列名时,并且这个列作为显示内容或者查询条件,必须在列名前加表名或表的别名作为前缀

    当在表中有相同的列名时,并且这个列作为显示内容或者查询条件,必须在列名前加表名或表的别名作为前缀。

    29. 等值连接:

    两个表连接的WHERE条件是一个表的列等于另外一个表的列。通常情况下,这种连接是主键和外键的连接。

    30.  可以给表定义别名:

    在from语句中给表指定名字:

    emp e, dept d where.....

    定义之后select和条件句都必须用定义的名字

    31. 非等值连接:

    没有直接对应列,关联关系是某一列和其他列的大小关系

    32. 外连接:

    返回表两边有一边是null的记录

    WHERE table1.column = table2.column(+);

    有(+)的一边表示这边的值要么等于另外一边,要么为NULL

    不能两边一起加(+),但是加在左面右面都可以

    33. 全外连接:

    FULL  JOIN 或 FULL OUTER JOIN

    完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

    34. 自连接:

    有的时候,需要对表进行自连接。例如上图所示,EMP表中的MGR列的代表员工的经理的员工编号,所以要想显示出每个员工的经理就要对EMP进行自连接,用MGR=EMPNO。实际上,自连接只是等连接(等外连接)的一个特例,同一张表用不同的别名,区别成了不同的表。

    35. 分组函数:

    COUNT({*/[DISTINCE/ALL]expr}) 返回记录数,这里expr赋非空值,*表示所有被选择的记录,包括重复记录和空值。

    MAX([DISTNCT/ALL]expr):表达式的最大值,忽略空值

    MIN([DISTNCT/ALL]expr):表达式的最小值,忽略空值

    AVG([DISTNCT/ALL]expr):平均值,忽略空值

    STDDEV[DISTINCT/ALL]X):返回标准差,忽略空值

    SUM([DIXNTICT/ALL]n):求和,忽略空值

    VARIANCE([DISTINCT/ALL]X):返回统计方差

    这些分组函数中,COUNT是计算NULL值的,其它函数忽略NULL值。

    36. 分组函数的作用:

    和单行函数不同,分组函数作用于一组记录,每一组返回一个结果。这些组可能是整个表,也可能是由GROUP BY子句将表分成的多个组。

    37. 用group语句:产生数据组

    SELECT column, group_function

    FROM  table

    [WHERE condition]

    [GROUP BY group_by_expression]

    [ORDER BY column];

    GROUP BY子句

    使用GROUP BY 子句将一个表分成许多小组,并对每一个小组返回一个计算值。

    Group_by_expression:指定按什么列分组

    规则:

    在SELECT子句中,如果使用分组函数,不能对GROUP BY子句中指定的列使用分组函数。

    使用WHERE子句,可预先排除某些记录

    在GROUP BY 子句中必须有表中的列

    在GROUP BY子句中不能使用列的别名

    缺省情况下在GROUP BY子句中的列以升序排,你可以使用order by子句改变它。

    38. 多列分组:

    可以通过在group by后添加多列的方式来为进行组中分组(先写的先分组)

    39. 对分组函数的结果进行限定:

    由于分组函数不能写在WHERE子句中,如果要对分组函数结果值进行限定,可以用HAVING子句

    40.子查询:

    将一个查询放在另一个里

    SELECT select_list

    FROM tablename

    WHERE expr_operator

    (SELECTselect_list

    FROMtable);

    41. 子查询分类:

    单行(返回一条记录)

    多行(返回多条记录)

    多列(返回多个列)

    42. 子查询注意事项:

    1. 要用括号分割

    2. 不能加order by

    3. 多行查询用多行运算符(all....), 单行查询用单行运算符(》《=)

    4. 常见错误:查询单行返回多行/查询内容为空

    43. 向数据库中添加/删除数据:

    需要执行 DML语句:一组DML语句叫做一个事务

    通常包括:insert delete update

    44. insert语句:

    insert into 表 (列....) values (值.......)

    没信息的列默认为空,不能默认空的列没有值会报错

    45. 从其他表复制语句:

    insert into 表 select xxxxx列 from 表 条件

    create table 表 select xxxx列 from 表 条件

    46. update语句:

    update 表名 set 列 = 新的列条件(运算) where 条件

    47. delete from 表名 where 条件

    * 不加条件:所有信息都会被删除

    48. 提交修改:

    以上修改不会出现在别的会话中----为了保存,必须用commit命令

    如果要取消修改: 用rollback命令

    49. dml语句注意事项:

    需要加合适的where条件以免修改错误

    50. 常用的数据库对象:

    表--存储数据

    视图----表数据的子集

    序列----生成键值

    索引----加快某些查询速度

    同义词---给出对象的另一个可选名字

    51. 表和列的命名:

    只能用a-z, A-Z, 0-9,_$#

    只能用字母开头

    52. 创建表的语句:

    create table 表名 (列名 数据类型, 列名 数据类型..........)

    *被标注了primary key的是主键:不能重复

    53. 利用子查询创建表:

    create table 表名 as select * from 表名

    将一个表复制为另一个表---同时包含满足条件的数据

    54. 用alter增加列: 

     alter table 表名 add 列名 数据类型

    55. 用alter修改列:

    alter table 表名 modify 列名 数据类型

    56. 删除表:

    drop table 表名

    *不能回退 啥都没了

    57. 给表重命名:

    rename 旧表名 to 新表名

    58. 清空表内内容:

    truncate table 表名

    *不可以回退 释放全部存储空间

    59. 创建视图:

    create view 视图名称 as 子查询 

    查询试图:

    select * from 视图名称

    删除试图:

    drop view 视图名称

    60. 查看索引:

    create index on 表名(列名)

    61. 其他:

    •约束(constraints):用来防止存入不合法的数据,可以从user_constraints查看

    •序列(sequences):通常用来一个序列编号,可以从user_sequences中查看

    •同义词(synonyms):给其他Oracle对象的一个别名,可以从user_synonyms中查看

    •函数和过程(procedures):执行某些复杂的、无法用简单语句实现的特殊处理的代码块。可以从user_procedures中查看。

    •包(packages):可以把函数和过程集中在一个包里进行管理。在ALL_OBJECTS字典中的OBJECT_TYPE等于‘PACKAGE’的就是包

    相关文章

      网友评论

          本文标题:oracle database

          本文链接:https://www.haomeiwen.com/subject/ycduwxtx.html