当前位置: 首页 > news >正文

20161122学习笔记

《Oracle数据库讲义学习笔记》

书写SQL 语句的原则
大小写不敏感,但单引和双引内的大小写是敏感的。切记!
关键字不能缩写
可以分行书写,但关键字不能被跨行书写,单引内也不要跨行书写。
一般每个子句独立占一行
可以排版来增加可读性
字符串用单引
列的别名用双引。

101:

一般大写为关键字,小写为自己指定的名称

select语句的作用,查询指定的行,查询指定的列,多张表联合查询

查询一张表的所有行和所有列

Select * from emp;

解锁同时修改密码(权限)

alter user scott account unlock identified by scott;

连接到数据库的最高用户

conn / as sysdba

连接到本地的oracle 数据库的scott 用户

conn scott/tiger

102:

查询指定的列

select ename,sal from emp;

103:

查询的表的某系列,在列上使用表达式

select ename,sal,sal+300 from emp;

104:

sqlplus 管理数据库最好,
pl/sql developer 开发存储过程最好,

--是注释当前行
/* */是注释多行

105:

查看当前用户的所有表和视图,tab是数据字典

select * from tab;

查看表结构

desc emp;

106:

Null 值不等于0,也不等于空格。Null 和已知的数值进行运算得到是null.
Null 值是未赋值的值,不入一般的索引。(位图索引中包含null)
NULL 是双刃剑,使用好了提高性能,你对它不了解,往往是错误的根源,切记!

107:

别名的使用原则
1.区分同名列的名称
2.非法的表达式合法化
3.按照你的意愿显示列的名称
4.特殊的别名要双引
5.直接写列的后面,空格间隔
6.使用as 增加可读性

select sal as salary ,hiredate "上班日期",sal*12 as total_salary from emp;

108:

在显示的时候去掉重复的行

select distinct deptno from emp;

109:

 select deptno,ename from emp where deptno=10;

select * from emp where ename='KING';//字符串要用单引

select ename,sal from emp where sal between 1000 and 3000;

select deptno,ename,sal from emp where deptno in (10,20);//in穷举

110:

Like 运算
_ 下划线通配一个,仅匹配一个字符,
% 百分号通配没有或多个字符

select ename,deptno from emp where ename like 'J%';

select ename,deptno from emp where ename like '_A%';

当你想查询_,%特殊字符时,请用escape.
Select ename from emp where ename like ‘%s_%’ escape ‘s ’;
我们并不想查找s 后必须有一个字符以上的员工,而是要剔除s,s 出现的目的就是转义,
将_转义了,这里的_不是通配符,而是实际意义的_。
Select ename from emp where ename like ‘%/_%’ escape ‘/’;
一般我们使用/来转义,以免产生歧异。

查询null值:

select ename,comm from emp where comm is null;

select ename ,deptno,sal from emp where deptno =30 and sal>1200;

select ename ,deptno,sal from emp where deptno =30 or sal>1200;

 select ename,deptno,sal from emp where ename not like 'T%';

优先级
1.算术运算
2.连接运算
3.关系运算
4. IS [NOT] NULL, LIKE, [NOT] IN
5.Between
6.not
7.and

111:排序

不指明的都是二进制排序;

select ename,sal from emp order by sal;//默认升序

select ename,sal from emp order by sal asc;//升

select ename,sal from emp order by sal desc;//降序

select ename from emp order by sal;//隐式排序

select sal*12 salary from emp order by salary;//别名排序

select sal*12 salary from emp order by salary*12;//表达式排序

select ename,sal from emp order by 2;//位置排序

select deptno,job,ename,sal from emp order by deptno ,job;//多列排序

练习:

1.查询30 号部门的员工,显示名称和工资。

elect ename,sal from emp where deptno=30;
2.查询第三个字母为A 的员工。

select * from emp where ename like '__A%';
3.查询员工的名称和上班日期,日期反序排列。

select ename hiredate from emp order by hiredate desc;

112:字符串函数

select lower(ename),upper(ename),initcap(ename) from emp;//lower小写,upper大写,initcap首字母大写

 SQL> select lower('mf TR'),upper('mf TR'),initcap('mf TR') from dual;
LOWER('MFTR') UPPER('MFTR') INITCAP('MFTR')
------------- ------------- ---------------
mf tr         MF TR         Mf Tr

Dual 是虚表,让我们用表的形式来访问函数的值。

select ename,job,concat(ename,job) from emp;//拼接字符串

113:操作数字的函数

ROUND是四舍五入,

TRUNC是截断全部舍弃。

ceil是取整上进位

abs取绝对值

mod取余数

114:日期函数

 select sysdate from dual;//数据库当前时间

SQL> select ename,to_char(hiredate,'yyyy/mm/dd') from emp;//日期转化为字符串,请说明字符串的格式。

to_date()      to_number()

115:

116:分支函数

117:分组统计函数

avg平均

sum求和

max最大

min最小

count统计

SQL> select sum(sal),min(sal),max(sal),avg(sal),count(sal) from emp;

select deptno,sum(sal) from emp group by deptno;//按部门号码分组

SQL> select deptno,job,sum(sal) from emp group by deptno,job;//在有组函数的SELECT 中,不是组函数的列,一定要放在GROUP BY 子句中。多列分组,每列都一样的才放到一起进行统计

SQL> select job,avg(sal) from emp group by job having avg(sal)>2000;//Having 是在结果中再次筛选。Having 一定得出现在group by 子句得后面。不能独立存在。

select deptno,avg(sal) from emp where job='CLERK' group by deptno having avg(sal)>1000;
Where 和having
可以同时出现再一句话中,起作用的时间不同。

WHERE是条件,having是过滤是在结果中再次筛选

转载于:https://www.cnblogs.com/zero1224/p/6089540.html

相关文章:

  • Linux systemd 打开调试终端、添加开机自运行程序
  • 设置python的默认编码为utf8
  • python 读写INI配置文件
  • Linux基础-linux命令:csplit
  • Ubuntu 16.04 - python3 安装mysql驱动
  • 设计模式——观察者模式:气象监测应用
  • C#学习基本概念之事件(四)---EventHandler委托(事件处理)
  • 微信小程序开发思路
  • Liunx Shell入门
  • c语言操作mysql数据库
  • Linux Linux程序练习十三(信号阻塞,捕获)
  • DNS2
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • C# MarshalByRefObject 和Serializable的区别
  • qcow2
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • Apache Zeppelin在Apache Trafodion上的可视化
  • GitUp, 你不可错过的秀外慧中的git工具
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript函数式编程(一)
  • JS 面试题总结
  • js对象的深浅拷贝
  • PHP面试之三:MySQL数据库
  • quasar-framework cnodejs社区
  • SQLServer之创建显式事务
  • 仿天猫超市收藏抛物线动画工具库
  • 基于webpack 的 vue 多页架构
  • 聚簇索引和非聚簇索引
  • 坑!为什么View.startAnimation不起作用?
  • 漂亮刷新控件-iOS
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 一起参Ember.js讨论、问答社区。
  • 一些关于Rust在2019年的思考
  • 用element的upload组件实现多图片上传和压缩
  • Linux权限管理(week1_day5)--技术流ken
  • ​决定德拉瓦州地区版图的关键历史事件
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (02)vite环境变量配置
  • (2015)JS ES6 必知的十个 特性
  • (31)对象的克隆
  • (BFS)hdoj2377-Bus Pass
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (待修改)PyG安装步骤
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (四) Graphivz 颜色选择
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)Linux+Windows下安装ffmpeg
  • (转载)虚函数剖析
  • **python多态
  • .gitignore文件设置了忽略但不生效
  • .Mobi域名介绍
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core 将实体类转换为 SQL(ORM 映射)