
Oracle
西瓜咬人啦
唯有热爱,可低岁月漫长。
展开
-
14.Oracle 同义词Synonym和序列Sequence
Oracle 同义词Synonym和序列SequenceSynonym 它是用来简化用户对其它数据对象(表、函数、存储过程、视图等)的命名引用-- 创建同义词对象create synonym emp for scott.emp;-- 等同于select * from scott.emp;select * from emp;同义词是用户自己的数据对象,不能和已有的表、视图、函数等数据对象重名!-- 查看已有的同义词select * from user_synonyms;-- 删除同原创 2020-09-30 17:09:13 · 327 阅读 · 0 评论 -
13.Oracle 伪列 rownumrowid
Oracle 伪列 rownum/rowid这两个列在表结构中并没有,但是可以在查询中作为列名或者where条件存在!rownum 在查询结果的基础上,自动添加一个从1开始自增的序列select rownum, e.* from emp e where job = 'MANAGER';-- 前三行select e.* from emp e where rownum <= 3;注意:只能使用 = 1,< , <= ,其他>, >=, in, between全部不原创 2020-09-30 16:28:58 · 204 阅读 · 0 评论 -
12.Oracle 高级查询-子查询
Oracle 高级查询-子查询将一个查询结果作为基表再次进行查询,或者是将查询结果作为基表再和其他查询结果或者表再次联合!子查询最为灵活,可以实现前面很多条件、投影、联合等查询!但是,性能不高,对于书写要求高!子查询的两种利用方式将一个查询结果作为基表再次进行查询select * from (select * from emp where deptno = 10) where job = 'MANAGER';-- 外层查询的列和条件是在子查询的结果集上进行的(所以列名以子查询结果的列定原创 2020-09-30 16:16:31 · 534 阅读 · 0 评论 -
11.Oracle中五种聚合函数和(group by,having)分组查询
Oracle 聚合函数/分组五种聚合函数min 求列中的最小值max 求列中的最大值avg 求列中的平均值sum 求列中的汇总值count 求列中值的个数注意:null不参与聚合统计与聚合无关的列,不能出现在查询字段中date, char类型不能进行sum和avgselect avg(comm), avg(nvl(comm, 0)), sum(comm)/count(1) from emp;-- null如何统计-- 求表中总行数select count(*) fr原创 2020-09-10 20:10:04 · 977 阅读 · 0 评论 -
10.Oracle 高级查询-多表关联(包括投影查询)
Oracle 高级查询-多表关联关联条件等值关联表达式关联/非等值关联关联方式wherejoinjoin可以实现where不能实现的一些关联(全外、交叉)join的查询效率比where要高很多where等值select e.deptno, empno, ename, sal, dname, loc from emp e, dept d where e.deptno = d.deptno -- 关联条件 and jo原创 2020-09-10 20:07:46 · 546 阅读 · 0 评论 -
09.Oracle 高级查询-分支函数语句
Oracle 高级查询-分支函数/语句nvlnvl(列, 值)如果查询列的值为null,那么显示为给定的值,如果不为nul,就显示为列原值注意:null值不参与±*/以及聚合运算!select sal, comm, sal + nvl(comm, 0) from emp;nvl2nvl2(列, 值1, 值2)如果查询列的值为null,那么显示为给定值2, 如果不为null,则显示为给定值1-- 如果雇员没有绩效,每人发100元,如果有绩效,每人再多发200元select comm, n原创 2020-09-09 15:24:16 · 348 阅读 · 0 评论 -
08.Oracle中的基础查询
Oracle 基础查询1. 查询内容区分大小写-- 通过lower屏蔽大小写字母的差别select * from scott.emp where lower(ename) = 'smith';-- MySQL不区分大小写(如果要区分使用binray关键字在where字段前)select * from t_user where binary name = 'tom';2. 别名-- 如果别名中含有空格需要使用""-- 列别名的as可以省略,表别名不加as-- 列别名不参与where,但是原创 2020-09-09 15:16:57 · 153 阅读 · 0 评论 -
07.Oracle中的内置函数
Oracle 内置函数字符串ascii 得到一个字符的ASCII码(整数)select ascii('A'), ascii('a'), ascii('0') from dual;-- 65 97 48chr 根据ASCII码得到字符select chr(48), chr(68) from dual;-- 0 Dlength 返回字符串的字符数select length('我们hello') from dual;-- 7vsize 返回字符串的字节数select原创 2020-09-09 15:02:41 · 163 阅读 · 0 评论 -
6.Oracle中约束
Oracle 约束主键 primary key唯一约束 + 非空约束一个表上只能由一个主键drop table t_user;create table t_user (-- id int primary key, id int constraint pk_id primary key, name varchar(20));create table t_user ( id int, name varchar(20),-- primary key(id)原创 2020-09-02 18:59:19 · 159 阅读 · 0 评论 -
5.Oracle中数据类型
Oracle 数据类型字符char(2000) 2000个字节(2000个英文,666个汉字——utf8,1000个汉字——gbk)nchar(1000) 1000个字符(1000个英文,1000个汉字——utf8,1000个汉字——gbk)varchar2(4000) 4000个字节 (4000个英文,1333个汉字——utf8,2000个汉字——gbk)nvarchar2(2000) 2000个字符(2000个英文,2000个汉字——utf8,2000个汉字——gbk)cha原创 2020-09-02 18:55:56 · 468 阅读 · 0 评论 -
4.Orac中对表列行操作SQL
表结构创建表名的规范推荐以"t_xxx"不能含有"± "等非法字符create table “t-1” (id int);不能以"_"开头create table “_t” (id int);表名如果不用"",那么全部大写,如果"",严格区分大小写T_USER和t_user是两个不同的表对象查看当前用户所拥有的表当前用户select * from user_tables;DBA角色select * from dba_users;这种以dba_xxx或者user原创 2020-09-02 18:53:40 · 98 阅读 · 0 评论 -
3.Oracle中SQLPlus
SQLPlus它是Oracle自带的cli(Command Line Interface)工具可以实现一切PL/SQL编程登陆sqlplus 账户/密码sqlplus /nolog 只登陆,不连接(登陆后再通过conn去连接)退出disc/disconnect 退出当前会话(还在SQLPlus终端中,与服务器没有连接)exit 退出终端(回到操作系统终端)显示执行时间set timing on/off清屏clear screen执行脚本文件start “D:\scripts\s原创 2020-09-02 18:51:20 · 145 阅读 · 0 评论 -
2.Oracle用户和权限
Oracle用户和权限连接终端sqlplus 账户名/密码sqlplus 账户名(再输密码)已经进入sqlplus终端conn 账户名/密码conn 账户名(再输密码)设置终端数据行和数据页的属性值set linesize 500 每行最大字符(如果小了显示数据会折行)set pagesize 5000 一次查询可以输出的内容(如果小了显示数据会折行)查看当前用户身份select user from dualshow user创建用户Oracle的身份验证分为两种:当前登录原创 2020-09-02 18:49:46 · 429 阅读 · 0 评论