加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle根基的增编削查语句--本人行使scott用户中的表

发布时间:2021-02-25 17:19:48 所属栏目:站长百科 来源:网络整理
导读:--感受有效点个赞^v^ 1 -- 建设表空间 2 create tablespace mykebai 3 datafile ‘ c:mykebai.dbf ‘ -- 数据问价存放位置 4 size 100m -- 数据文件初始巨细 5 autoextend on -- 当存储文件满时,自动增添 6 next 10m -- 每次增添10m巨细 7 8 -- 删除表空间

--感受有效点个赞^v^
1 --建设表空间 2 create tablespace mykebai 3 datafile ‘c:mykebai.dbf‘ --数据问价存放位置 4 size 100m --数据文件初始巨细 5 autoextend on --当存储文件满时,自动增添 6 next 10m --每次增添10m巨细 7 8 --删除表空间 9 drop tablespace mykebai; 10 11 12 --建设用户 13 create user mykebai 14 identified by mykebai --用户名的暗码 15 default tablespace mykebai --用户所对应的表空间名称 16 17 grant dba to mykebai; --为建设的用户配置权限 18 --切换用户到mykebai 19 20 create table person( --建设一个表布局 21 pid number(20), 22 pname varchar2(10) 23 ); 24 25 drop table person; --删除表布局 26 27 --修改表布局 28 alter table person add(gender number(1)); --添加一列 29 alter table person modify gender char(1); --修改列范例 30 alter table person rename column gender to sex; --修改列名称 31 alter table person drop column sex; --删除一列 32 33 --表数据打点 34 select * from person; --查询表中全部数据 35 36 insert into person (pid,pname) values (1,‘呵呵‘); --插入一条数据 37 commit; 38 update person set pname=‘小李‘ where pid=1; --修改表中的数据 39 commit; 40 delete from person; --删除表中的所稀有据,一条一条的一一删除 41 truncate table person; --直接 删除表,然后再次建设一个千篇一律的表布局 42 43 /* 44 中文乱码题目办理 45 1.查察处事器端编码 46 select userenv(‘language‘) from dual; 47 我现实查到的功效为:AMERICAN_AMERICA.ZHS16GBK 48 2.执行语句 select * from V$NLS_PARAMETERS 49 查察第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步获得的值一样。 50 假如不是,必要配置情形变量. 51 不然PLSQL客户端行使的编码和处事器端编码纷歧致,插入中文时就会呈现乱码. 52 3.配置情形变量 53 计较机->属性->高级体系配置->情形变量->新建 54 配置变量名:NLS_LANG,变量值:第1步查到的值, 我的是 AMERICAN_AMERICA.ZHS16GBK 55 4.从头启动PLSQL,插入数据正常 56 */ 57 58 59 --序列 60 create sequence s_person; --序列不属于任何一张表,可是可以和一张表做逻辑的绑定 61 --序列:默认是从1开始,首要给主键举办赋值操纵 62 select s_person.nextval from dual; --dual:虚表,只是为了补全语法 63 --nextval:取得序列的下一个内容 64 --currval:取得序列当前的内容 65 --行使序列 66 insert into person (pid,pname) values (s_person.nextval,‘小明‘); --添加一条记载 67 commit; 68 select * from person; 69 70 select * from emp 71 72 73 --切换到scott用户,EMP雇员表,DEPT部分表,SALGRADE人为品级表,BONUS奖金表 74 --字符函数 75 select upper(‘hello‘) from dual; --小写转换大写 76 select lower(‘HELLO‘) from dual; --大写转换小写 77 --数值函数 78 select round(12.04,1) from dual; --四舍五入 79 select round(12.05,1) from dual; --向后取一位 80 --日期函数,Oracle日期可以加减 81 /* 82 日期 – 数字 = 日期 83 日期 + 数字 = 日期 84 日期 – 日期 = 数字 85 */ 86 select hiredate from emp --查询雇员进入公司的周数 87 select ename,round((sysdate-hiredate)/7) from emp --sysdate:当前体系时刻-hiredate员工入职时刻/7 88 --得到两个时刻段中的月数:MONTHS_BETWEEN() 89 select ename,round(months_between(sysdate,hiredate)) from emp --查询全部雇员进入公司的月数 90 --转换函数 91 --to_char():字符串转换函数 92 select ename,--查询全部的雇员将将年代日分隔 93 to_char(hiredate,‘yyyy‘) 年, 94 to_char(hiredate,‘mm‘) 月, 95 to_char(hiredate,‘dd‘) 日 96 from emp 97 98 select ename,to_char(hiredate,‘yyyy-mm-dd‘) --查询年代日 99 from emp 100 101 --行使fm去掉前导零 102 select ename,‘fmyyyy-mm-dd‘) --查询年代日 103 from emp 104 105 --to_date日期转换函数:可以将数字范例转换为日期范例 106 select to_date(‘1997-12-15‘,‘yyyy-mm-dd‘) 107 from emp 108 109 --通用函数: 110 111 select ename 姓名,sal 每月人为,comm 奖金,sal*12+nvl(comm,0)--空值处理赏罚nvl:null和任何值计较,都为null 112 from emp 113 114 select * from emp 115 116 --decode函数:相同 if...eles if...else 117 select ename,118 decode( 119 job,--job 120 ‘CLERK‘,‘营业员‘,--if 121 ‘SALESMAN‘,‘贩卖员‘,--if else 122 ‘无业‘ --else 123 ) 124 from emp 125 --case when函数 126 select t.empno,127 t.ename,128 case 129 when t.job = ‘CLERK‘ then ‘营业员‘ 130 when t.job = ‘MANAGER‘ then ‘司理‘ 131 when t.job = ‘ANALYST‘ then ‘说明员‘ 132 when t.job = ‘PRESIDENT‘ then ‘总裁‘ 133 when t.job = ‘SALESMAN‘ then ‘贩卖‘ 134 when t.job = ‘SALESMAN‘ then ‘贩卖‘ 135 else ‘无业‘ 136 end 137 from emp t; 138 139 140 --多行函数(聚合函数) 141 select count(ename) from emp --查询总数 142 select min(sal) from emp --查询最小人为 143 select max(sal) from emp --查询最高人为 144 select avg(sal) from emp --查询均匀人为 145 select sum(sal) from emp --查询所有人为总和 146 --分组查询group by 147 select deptno,148 count(ename),--查询每个部分有几多人数 149 sum(sal),--每个部分的总人为 150 avg(sal) --每个部分的均匀人为 151 from emp 152 group by deptno 153 --按部分分组,查询出部分名称和部分的员工数目 154 select d.dname,d.deptno,count(ename) 155 from dept d,emp e 156 where d.deptno = e.deptno 157 group by d.deptno,d.dname 158 159 --查询出部分人数大于 5 人的部分 160 select d.deptno,e.deptno,count(ename) 161 from dept d,emp e 162 where d.deptno = e.deptno 163 group by d.deptno,e.deptno 164 having count(ename)>4 165 166 --多表查询 167 select * from dept d,emp e where d.deptno = e.deptno 168 169 --自关联查询 170 --查询出每个员工的上级率领 171 --emp 表中的 mgr字段是当前雇员的上级率领的编号,以是该字段对 emp表发生了自身关联,可以行使 mgr字段和 empno来关联 172 select e1.empno,e1.ename,e2.empno,e2.ename 173 from emp e1,emp e2 174 where e1.mgr = e2.empno 175 176 --在上一个例子的基本上查询该员工的部分名称 177 --只要在上一个例子基本上再加一张表的关联,行使deptno 来做关联字段即可 178 select e1.empno,e2.ename,d.dname 179 from emp e1,emp e2,dept d 180 where e1.mgr = e2.empno 181 and e1.deptno = d.deptno 182 183 --查询出每个员工编号,姓名,部分名称,人为品级和他的上级率领的姓名,人为品级 184 select e.empno,185 e.ename,186 decode(s.grade,187 1,‘一级‘,188 2,‘二级‘,189 3,‘三级‘,190 4,‘四级‘,191 5,‘五级‘) grade,192 d.dname,193 e1.empno,194 e1.ename,195 decode(s1.grade,196 1,197 2,198 3,199 4,200 5,‘五级‘) grade 201 from emp e,emp e1,dept d,salgrade s,salgrade s1 202 where e.mgr = e1.empno 203 and e.deptno = d.deptno 204 and e.sal between s.losal and s.hisal 205 and e1.sal between s1.losal and s1.hisal 206 207 --外毗连查询 208 --阁下外毗连查询 209 210 --Rownum与分页查询 211 --ROWNUM:暗示行号,现实上此是一个列,可是这个列是一个伪列,此列可以在每张表中呈现。 212 --查询 emp 表带有 rownum 列 213 select rownum,t.* from emp t 214 --rownum 来取功效集的前几行,好比前 5 行 215 select rownum,e.* from emp e where rownum<6 216 --可是我们不能取到中间几行,由于rownum不支持大于号,只支持小于号,假如想 实现我们的需求怎么办呢?谜底是行使子查询,也正是oracle分页的做法。 217 218 --第一种写法: 219 select * 220 from (select rownum rm,a.* from (select * from emp) a where rownum < 11) b 221 where b.rm >5 222 --第二种写法: 223 select * 224 from (select rownum r,emp.* from emp) b 225 where b.r >5 and b.r <11

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读