问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Oracle 的最初级问题

发布网友 发布时间:2022-05-02 09:37

我来回答

3个回答

懂视网 时间:2022-05-02 13:58

select * from emp order by deptno asc ; 2 3 select * from dept; 4 --oracle 拼接字符串 5 --oracle中字符串需要在英文或其他文字两端用单引号包含 6 select empno, ename, ‘职位是‘ || job, sal from emp; 7 8 --列名的别名起别名利用空格 9 select empno, ename, ‘职位是‘ || job haha, sal from emp; 10 --如果使用双引号声明别名,则可以区分大小写 11 select empno, ename, ‘职位是‘ || job "haha", sal from emp; 12 --如果想在别名中显示空格,一定要有双引号 13 14 --–关键字AS 15 select empno, ename, ‘职位是‘ || job as "ha ha", sal from emp; 16 --–注意:推荐使用as声明别名,容易区分表达式与别名的界限 17 18 -- 去掉重复行 19 select distinct deptno from emp; 20 -注意:distinct只能放在select与列名之间的位置 21 -- select distinct 列1,列2,..列n 22 --select和from 书写顺序 select…from 23 执行顺序 from…select 24 25 --不等于 26 select * from emp where deptno != 20; 27 select * from emp where deptno <>20;--推荐这种写法 28 29 --查询条件中的 与关系 30 问题一: 31 查询在10号部门工作,并且月薪高于2000, 32 并且职位是MANAGER的员工信息 33 34 select * from emp where deptno = 10 and sal>2000 and job = ‘MANAGER‘; 35 --或关系or 36 问题一: 37 查询在10号部门工作或者工资高于2000的员工 38 39 select * from emp where deptno =10 or sal>2000; 40 --如果and与or一起使用 41 –and的优先级要比or高(重要) 42 如果要想修改优先级,加括号查询在10号部门工作或者工资高于2000,并且职位是MANAGER的员工 43 44 45 select * from emp where (deptno = 10 or sal > 2000) and job = ‘MANAGER‘; 46 47 -- 特殊的比较运算符 48 49 --beetween ... and 50 51 --beetween 上限 and 下限 52 53 查询emp表中,20号部门月薪在1000~2000之间的员工信息 54 55 select * from emp where (sal between 1000 and 2000) and deptno = 20; 56 57 –between and 使用范围 数值和日期 58 –数据库的常见数据类型: 59 –1)文字 60 –2)数值 61 –3)日期/时间 62 63 select * from emp where hiredate between ‘1-1月-1982‘ and ‘31-12月-1982‘; 64 65 --between and 也可以比较字符串,比较顺序是按照字典的顺序比较 66 67 68 select * from emp where ename between ‘A‘ and ‘C‘; 69 70 --上下限反着写 71 select * from emp where sal between 2000 and 1000; 72 -- 语句不报错,但是逻辑关系没有,没有结果 73 --关键字in 格式 列 in(值1,值2,值3…值n)列的取值是值1或值2或值3…或值n 74 select ename, mgr from emp where mgr in(7902, 7698, 7788); 75 --like… 像…(重点) 76 模糊查询 77 通配字符 78 % :0-n个任意字符 79 _:1一个任意字符 80 --查询所有员工首字母为B的员工信息 81 select * from emp where ename like ‘B%‘; 82 --–练习:查询倒数第二个字符是R的员工信息 83 84 --like只能用于文字类型的模糊查询匹配。 85 select * from emp where ename like ‘%R_‘; 86 87 --is null 88 用于筛选空值 89 因为=null的逻辑关系是null,不能筛选出空值 90 查询没有奖金的人 91 92 93 select * from emp where comm = 0 or comm is null; 94 95 --NOT 96 逻辑非关系,表示取反 97 98 --not between and 99 100 查询月薪不在1000~2000之间的员工信息 101 102 select * from emp where sal not between 1000 and 2000; 103 列名在not前后结果一致,保证列名在between前即可 104 --not in 105 106 查询其上司的员工编号不是7902,7698,7788的员工的信息 107 108 select * from emp where mgr not in(7902, 7698, 7788); 109 110 --not like 111 112 查询所有不姓张的员工 113 114 select * from emp 115 where ename not like ‘张%‘; 116 --is not null 117 select * from emp 118 where comm is not null; 119 120 121 排序 122 –order by 123 –升序 由小到大 124 –数值:由小到大 125 –日期:由早到晚 126 –文字:字典顺序 127 128 129 查询所有10号部门的员工信息,按照月薪升序进行排序 130 131 132 select * from emp where deptno = 10 order by sal ; 133 134 有的环境下不加升序排列,环境默认的是升序, 135 oracle默认的是升序 136 137 select * from emp where deptno = 10 order by sal asc ; 138 139 推荐写法 140 141 SQl语句执行顺序 142 书写顺序:select…from…where…order by 143 执行顺序:from…where…select…order by 144 where不能使用别名,因为select中尚未执行, 145 所以还没有创建出别名,order by可以使用别名, 146 因为order by在select之后执行,列的别名已经被创建 147 --多列排序 148 查询员工信息,按照部门编号排序,月薪降序 149 select * from emp order by deptno asc, sal desc; 150 151 --oracle函数 152 单行函数、多行函数(分组函数) 153 单行函数 154 dual 155 --系统显示当前日期 156 select sysdate from dual; 157 158 使用的单行函数,对查询结果的每一行记录都有效, 159 会影响到每一行的记录 160 dual表为了补全sql语句 161 162 --转大写 upper(str) 将str字符串转成大写 163 164 select upper(‘hAHa‘) as 描述 from dual; 165 166 可以为列增加别名 167 168 --转小写lower(str) 将str字符串转成小写 169 170 select lower(‘hAHa‘) from dual; 171 172 --首字母转大写,其余字母小写initcap(str) 173 174 select initcap(‘hAHa‘) from dual; 175 176 select initcap(‘i LiKe GIRL‘) from dual; 177 178 --以单词为单位,每个单词的首字母大写,其余的小写 179 180 select * from emp where lower(ename) = lower(‘ScOTT‘); 181 --lower()替换为upper()效果一样 182 183 字符截取函数 184 --substr(str,n1,n2) 185 str:被截取的字符串 186 n1:开始截取的位置(以1的位置开始) 187 n2:截取字符的个数 188 将str字符串从n1位置起,截取n2个字符 189 结果:字符型类 190 191 192 select substr(‘0123456‘, 3, 3) from dual; 193 194 从n1的位置开始,要包含该位置的字符 195 196 字符查找函数 197 --instr(str1,str2,n1,n2) 198 在str1中寻找str2的字符串, 199 从n1的位置起,第n2次出现的位置 200 结果是一个位置,位置是一个数值 201 202 select instr(‘I LIKE GIRL‘, ‘I‘, 2, 1) from dual; 203 204 --字符拼接函数 205 select ‘haha‘ || ‘xixi‘ || ‘hehe‘ from dual; 206 –将str1和str2拼接组成一个字符串,功能等同于 || 207 --concat(str1,str2) 208 select concat(‘haha‘, ‘xixi‘) from dual; 209 210 select concat(concat(‘haha‘, ‘xixi‘),‘hehe‘) from dual; 211 212 字符替换函数 213 --replace(str1,str2,str3) 214 在str1字符串中,使用str3来替换全部的str2 215 216 select replace(‘ABCDECD‘, ‘CD‘, ‘HAHA‘) from dual; 217 218 字符串的长度函数 219 --length(str) 220 返回str字符串的文字的个数 221 222 select length(‘abcde‘), length(‘哈哈‘) from dual; 223 224 字符串补齐函数 225 lpad(str1,n1,str2) 226 rpad(str1,n1,str2) 227 lpad:将str1字符串,使用str2在左侧补充到n1个长度 228 rpad:将str1字符串,使用str2在右侧补充到n1个长度 229 230 select lpad(‘abc‘, 6, ‘哈呵‘), rpad(‘abc‘, 2, ‘*‘) 231 from dual; 232 233 --trunc(n1,n2) 234 –将n1数字舍弃,精确到小数点后n2位 235 select trunc(3.1415, 3), trunc(3.14, 0), trunc(6.14, -1)from dual; 236 --MOD(n1,n2) 237 求n1除以n2后得到的余数 取余 238 239 select mod(5, 3), mod(5, -3), mod(-5, 3), mod(-5, -3) 240 from dual; 241 取余运算区分正负值,看被除数 编程也是遵循这样原则 242 243 日期函数(重要) 244 --sysdate(函数) 245 获取数据库所在服务器的当前系统时间 246 select sysdate from dual; 247 248 249 --months_between(date1,date2) date1与date2之间的月数差 250 假设emp表中,所有员工至今未辞职,计算他们现在的司龄 251 months_between(date1,date2)与between and上下限不是对应的 252 253 254 select ename, hiredate,trunc(months_between(sysdate, hiredate) / 12, 0) as 司龄 from emp; 255 用于计算年龄,司龄,工龄 256 这些类似的随着时间流逝而改变的数据 257 258 259 --add_months(date1,d1) 260 为date1的时间,追加d1个月,结果还是一个日期 261 设公司的试用期为6个月,计算emp表中员工的转正日期 262 263 264 select ename, hiredate, add_months(hiredate, 6)as 转正日期 from emp; 265 266 --last_day(date1) 267 date1所在月份最后一天的日期(结果的类型还是日期) 268 269 select ename, hiredate, last_day(hiredate) 270 from emp; 271 272 两个日期之间的天数(重要) 273 274 差值就是天数,没有小数点 275 276 --next_day(date1,n1) 277 返回date1起之后周几的日期 278 1:周日 2:周一 … 7:周六 279 280 select next_day(sysdate,7) from dual; 281 282 283 转换函数(重点) 284 --to_number(str) 285 将str字符串转为数字 286 287 select to_number(‘1234‘) from dual; 288 289 按照特定格式转换 290 --to_number(str1,fmt) fmt格式也一定要是一个字符串 fmt也叫做格式码 291 –$ : 美元符号 292 –, :三位分隔符或者千位分割符 100,222,119.00 293 –9 :一位数字 294 –0 :一位数字或者前导0(补全前面的位置)(了解) 295 296 297 如果实际数据超过fmt定义的长度,则数值无法显示 298 实际数据小于fmt定义的长度,数值可以显示 299 300 301 --to_char(n1,fmt) 302 将数值转换为fmt表示的文字 303 304 select to_number(‘$23,412,123.34‘,‘$99,999,999.99‘)from dual; 305 306 select to_char(2236778,‘$9,999,999.99‘) from dual; 307 308 –日期转字符 to_char(date1,fmt) 309 –日期的格式码: 310 –YYYY 年 311 –MM 月 312 –DD 日 313 –HH24 24进制的小时 314 –HH12 12进制的小时 315 –MI 分 316 –SS 秒 317 – - / 常规日期分割符 318 –: 常规时间分割符 319 DATE类型 精确到秒 320 查询员工姓名和入职日期 321 入职日期按照”年/月/日 时:分:秒”的格式显示 322 323 select ename, to_char(hiredate, ‘YYYY/MM/DD HH24:MI:SS‘)from emp; 324 YY,RR 也是表示年 325 326 --to_date 327 328 select to_date(‘2017-4-7‘,‘YYYY-MM-DD‘) from dual; 329 330 查询在1982年期间入职的员工 按照规定格式显示 331 XXXX-XX-XX 332 select * from empwhere hiredate between to_date(‘1982-1-1‘,‘YYYY-MM-DD‘)and to_date(‘1982-12-31‘,‘YYYY-MM-DD‘); 333 334 335 通用函数 336 --nvl(expr1,expr2) 337 当expr1值不是null时,函数结果是expr1 338 当expr1值是null时,函数的结果是expr2 339 计算员工月收入,如果员工有奖金,则奖金+500 340 如果员工没有奖金,则不发奖金 341 342 select ename, comm, sal + nvl(comm + 500,0) from emp; 343 --nvl2(expr1,expr2,expr3) 344 判断expr1的值是否为null 345 如果是null使用expr3的值 346 如果不是null使用expr2的值 347 348 select comm, nvl2(comm, 1, 2) from emp; 349 给员工发节日福利,有奖金的人节日福利是1000,没有奖金的人节日福利是800 350 select comm, nvl2(comm, 1000, 800) from emp; 351 352 多行函数(分组函数) 353 由多行记录为一组统计出的数据,利用的是分组函数(多行函数) 354 常见的统计型数据 355 求和 356 --sum() 357 –查询emp表中,所有月薪的总和 358 select sum(sal) from emp? 359 求平均 360 --avg() 361 求emp中平均司龄 362 select avg(months_between(sysdate,hiredate) / 12)from emp; 363 最大值 364 --max() 365 –查询emp表中,最高月薪 366 select max(sal) from emp; 367 最小值 368 --min() 369 –查询emp表中,最低月薪 370 select min(sal) from emp; 371 计数 372 --count() 373 查询emp表中,有多少个员工 374 select count(empno) from emp; 375 select count(distinct deptno) from emp; 376 去掉重复数据用distinct,在count函数内部 377 查询每个部门的平均工资 378 --group by 依据XX分组 不是分组函数 379 只有使用了分组函数,才能使用group by 380 381 select deptno ,avg(sal) from emp group by deptno; 382 383 只有在group by中出现的列,才能写在select之后(必须记住) 384 多次分组,第二次分组是在第一次分组的基础上进行的 385 查询10号和20号部门的平均工资 386 387 select deptno,avg(sal)from emp where deptno in(10,20)group by deptno order by deptno asc; 388 --书写顺序 389 --执行顺序 from...where...group by...select...order by... 390 分组函数是在group by 执行位置进行计算 391 查询平均工资高于2500的部门id和其平均工资 392 select deptno, avg(sal)from emp where avg(sal) > 2500 --错误写法group by deptno 393 -- where 后面不允许使用分组函数 394 --having 395 –专门处理分组函数的筛选 396 –group by… having… 397 398 –查询平均工资在2000~2500之间的部门ID和其平均工资 399 select deptno, avg(sal)from emp group by deptno having avg(sal) between 2000 and 2500; 400 select deptno, avg(sal)from emp group by deptno having avg(sal) >= 2000 and avg(sal) <= 2500; 401 select deptno, avg(sal)from emp group by deptno having avg(sal) > 2500; 402 --执行顺序 403 404 --from ...where... group by ... having... select ...order ...by

今天先写这些,未完,待续。。。。

 

oracle初级(续)

标签:区分   max   等于   整理   比较   排列   red   创建   辞职   

热心网友 时间:2022-05-02 11:06

1、你得安装啊oracle的客户端;
2、安装完成客户端,在oracle的安装目录下,找找tnsnames.ora吧,覆盖就可以了,覆盖前备份一下;
3、打开plsql developer,在列表中能看到你们的数据库了连接吧。
不行就找人问,沟通,学习是做一个程序员的基本要素了。

热心网友 时间:2022-05-02 12:24

你想问什么东西
oracle 菜鸟问题

1、Oracle数据库是关系型的,关系型数据库最基本要求要满足三个完整性:实体完整性、参考完整型、自定义完整性。2、表与表之间存在着参考完整性,通过外键来建立的。3、例:在Oracle数据库的缺省用户scott/tiger中有两个表:部门表dept和雇员表emp。部门表中存放了部门的编号、名称、地址,在雇员表中...

关于Oracle中序列的菜鸟问题

1、不是从0开始累积,从上次你累加的数据开始 2、序列还有一个属性是否循环,看你自己设置,如果设置了循环就会循环从最小值开始,不然会报错的

oracle 基础题目,求高手帮忙做一下~急啊

2.(1)id,应该显示的是root,切换到oracle:su - oracle (2)显示数据库名字:在oracle用户下:env | grep ORA (3) sqlplus / nolog conn / as sysdba (4)startup

ORACLE数据库的入门知识问题。

4.常用命令太多 这些你以后随着你的学习的深入再逐渐了解吧 这里就不列举了。补1. 见1 补2.如果你已经连接到oracle服务端了的话 可以查看系统字典v$database的platform_name字段(不知道是否理解对你的问题)另外可以使用ssh工具远程连接linux服务器查看相关信息比如putty、secureCRT等工具。补3.使用dba_...

Oracle简单问题

肯定是空了。根本没有这条数据就是空。他就没有最大值和最小值了。如果想要一个数据。就加上默认值;select nvl(max(ano),0) into a from table_a where a_id= '123';这样。如果没有最大值的话。就为会0

还是关于oracle的小白代码编写问题求好心人帮助先给100觉得靠谱再追加1...

1、 select name,address into v_name,v_addr from 部门表 where deptno='传进的值';v_name v_addr为得到的值 2、select salary, 工作年限 into v_salary,v_years from 工资表 where id='传进的值';v_salary := v_salary*1.1;if v_years&gt;26 then v_salary := v_salary+300;...

oracle数据库面试问题

Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。下面是我整理的关于oracle数据库面试问题,希望大家认真阅读!1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行...

甲骨文(Oracle)面试题目

19. ORA-01555的应对方法?解答:具体的出错信息是snapshot too old within rollback seg , 通常可以通过增 大rollback seg来解决问题。当然也需要察看一下具体造成错误的SQL文本 20. 解释$ORACLE_HOME和$ORACLE_BASE的区别?解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。 ;

初学oracle 分页问题

SQL 从最里层的开始讲解:(select from emp order by sal desc ) e 这段应该没问题吧, 检索 emp 表,按 sal 降序排列, 子查询别名是 e (select rownum no,e.from (select from emp order by sal desc ) e where rownum&lt;=5 )这段 是 在排了序的基础上, 多查询一个 行号, 并限制...

关于oracle11g还原数据库操作的问题(初级)

拥有数据库操作的大多数权限。3.表空间是用来存储数据用的,在系统上的表现是数据文件。不一定建在哪个盘符下,oracle必须要有对其修改的权限。4.可以直接DROP掉表,没必要重建表空间。5.他只会还原到默认的那个上去,无论你有几个表空间,你这个用户拥有的对象名称是不能重复的。

最难又最简单的问题 最难以回答的问题 最简单的问题 最有意义的问题 最尴尬的问题 最坑的问题 最狠的问题 最难的问题是什么 史上最坑人的问题
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
土豆干黄瓜钱炒肉做法 女朋友有分离焦虑症 恋爱分离焦虑症的表现 90年男马和92年女猴2816年年底结婚吉日 请帮我翻译一句中文,谢谢!!! DNF远古做错了3件首饰 dnf狂战远古3件首饰如何选择 女性结扎同房还能生吗 郑州私立高中学费大概多少钱 求救英文翻译!!! vivoy66多屏任务怎么用? 811三元锂电池和523三元锂电池有什么区别? 股票所拥有的特点? 什么工作和跑滴滴差不多 【阿里巴巴】1688快订订货会于9月11日举行,订货会凭签到码签到,点击链接查看 股票的特点 单多多还能发安居客吗 怎么样在网上下单家具搬运安装 大学闲鱼创业前景分析 怎样注销单多多助手 单多多助手司机的流水是归司机所有吗 单多多网络科技(惠州)有限公司怎么样? 平安保险 平安女性安康保险如何续保 安康每天工作总结 大的宝宝拉肚子可以用丁桂儿脐贴吗 宝宝拉肚子 宝宝小的话可以贴丁桂儿脐贴的 7月宝宝拉肚子,能贴丁桂儿脐贴吗 羊肉怎么切卷 大的宝宝拉肚子可以贴丁桂儿脐贴吗 您好,请问宝宝拉肚子可以贴丁桂儿脐贴吗? 场外清算中心是干什么的 怎样学习oracle 怎么就能进入光波预测88吧 光波预测88上证指数吧 东方财富网光波预测88 双色球预测201688期 空调制热情况下主机嗡嗡的响然后一声很想的就没反应了怎么回事 当场出彩预测88期双色球号码? 光波预测88股巴请问?下周一大盘是上还是下。 车牌号88N00预测 请高人帮我预测出生于1988年3月3日中午12点05分(农历正月十六)生肖为辰龙在兔年的运程! 1988年农历10月12日出生的男人生辰八字预测 四柱预测学1988年10月7日子时,农历中,88是戊辰年,10月是葵亥月,请问7日是什么日? 1988年农历6月24号出生今天运势如何 88年的人属于什么命,又跟什么年的人八字合 六爻占卜,预测婚姻,求大师指点看看什么时候能有对象,88年出生,男,属龙 车牌号68M88预测 大家好,谁能帮我预测下结婚吉日,男农历19880610,女农历19880512 有哪些网站能看到别人投递的简历... 荔枝营养价值不错,怎么才能做好保果工作?