Oracle中的基本SQL知识
什么是SQL语言
a) SQL, Structured Query Language, 结构化查询语言 b) SQL 是最重要的关系数据库操作语言,是所有关系数据库 管理系统的标准语言. c) SQL 语言是非过程化的语言, 只需要告诉做什么, 不需要 关注怎么做, 简单.
SQL语言的作用
a) 增删改查(CRUD) b) 操作数据库对象(用户, 数据库,表格, 序列, 索引…) c) 操作用户权限和角色的授予跟取消 d) 事务(Transaction)管理
分类
a) DQL, Data Query Language, 数据查询语言 执行数据库的查询操作, select
b) DML, Data Manipulation Language, 数据操作语言 操作表格中的数据, 执行增删改, insert, delete, update
c) DDL, Data Definition Language, 数据定义语言 用于操作数据库对象, create, alter, drop
d) DCL, Data Control Language, 数据控制语言 操作用户权限, grant, revoke
e) TCL, Transaction Control Language, 事务控制语言 用于管理事务, commit, rollback
关系数据库的概念
开始设置使用Oracle时的相关准备
设置字体
关闭自动备份,避免生成同名文件
select基本语句
一般使用的是Oracle自带的scott用户,密码默认为tiger,不过要手动创建一下。
1、通配符
a) 查询 emp 表格的所有列数据 ‘*’ 通配符, 表示所有的列
select * from emp;
2、 指定列
a) 查询所有员工的编号, 姓名和职位
select empno, ename, job from emp;
3、 支持算数运算
a) 查询所有员工的姓名, 职位和年薪 select 子句中, 支持算数运算
select ename, job, sal*12 from emp;
4、 列别名
a) select 子句中, 可以通过 as 关键字给列起别名
select ename, job, sal*12 as nianxin from emp;
b) as 关键字可以被省略, 一般都省略
select ename, job, sal*12 nianxin from emp;
c) 别名中, 尽量不要使用特殊符号, 例如空格; 如果非要有特殊符号, 可以使用双引号括起来. d) 在 Oracle 中, 双引号表示原样输出.
select ename, job, sal*12 "ni a n xin" from emp;
5、 distinct
用于去除重复行信息 a) 查询所有的职位信息
select distinct job from emp;
b) 查询所有员工的姓名和职位
distinct 只能去除重复行, distinct 的作用范围是它后面的所有列**
select distinct ename, job from emp;
6、字符串连接符
Oracle 中, 用单引号表示字符串 a) 查询所有员工的姓名, 职位和薪资, 以姓名:xxx, 职位:xxx, 薪资:xxx 的形式显示
select '姓名:'||ename||',职位:'||job||',薪资:'||sal info from emp;
order by子句
a) 查询所有员工的信息, 按照工资升序排序 asc, 表示升序(ascend)
默认情况下, 按照升序排序, 所以, asc 一般被省略
select * from emp order by sal asc;
b) 查询所有员工的信息, 按照标号降序排序 desc, 表示降序排序(descend)
select * from emp order by empno desc;
c) 查询所有员工的信息, 按照入职日期降序排序
select * from emp order by hiredate desc;
d) 查询所有员工的信息, 按照姓名排序
select * from emp order by ename;
e) 查询所有员工信息, 按照薪资降序排序, 如果薪资相同, 将新员工排在前面.
select * from emp order by sal desc, hiredate desc;
f) 查询所有员工的姓名和年薪, 按照年薪排序
select ename, sal*12 nianxin from emp order by nianxin desc;
where子句
1、等值条件
c) 查询在 1982-01-23 入职的员工信息
日期必须用单引号括起来; 日期格式必须是: DD-MM 月-YY,且月份格式不能改变
select * from emp where hiredate='23-1 月-82';
2、非等值条件
a) 查询工资在 1500 到 3000 之间的员工信息 between…and…表示一个范围, 包含边界
select * from emp where sal>=1500 and sal<=3000;
select * from emp where sal between 1500 and 3000;
b) 查询 SCOTT 和 KING 的详细信息
select * from emp where ename='SCOTT' or ename='KING';
select * from emp where ename in ('SCOTT', 'KING');
c) 查询所有员工的信息, 排除 20 部门
select * from emp where deptno != 20;
select * from emp where deptno <> 20;
3、模糊查询
使用 like(像)实现, 配合通配符实现 _, 表示任意一个字符 %, 表示任意个任意字符
a) 查询姓名首字母为 A 的员工的信息
select * from emp where ename like 'A%';
b) 查询姓名第二个字母是 A 的员工的信息
select * from emp where ename like '_A%';
c) 查询姓名中带有字母 C 的员工的信息
select * from emp where ename like '%C%';
d) 查询姓名中带有下划线的员工的信息
escape 用于声明转义字符. 将通配_符转换成普通字符
select * from emp where ename like '%a_%' escape 'a';
4、IS NULL
用于判断空值 ,但不能判断是否为0 a) 查询所有没有提成的员工信息
select * from emp where comm is null;
b) 查询所有有提成的员工信息
select * from emp where comm is not null;
select * from emp where not comm is null;
5、and or 的优先级
and 的优先级高于 or 的优先级
a) 查询所有CLERK的信息和工资大于1250的SALESMAN的信…
select * from emp where job='CLERK' or job='SALESMAN' and sal>1250;
b) 查询所有的 CLERK 和 SALESMAN 的信息同时工资要大于 1250.
select * from emp where (job='CLERK' or job='SALESMAN') and sal>1250;
- 我的WCF之旅(10):如何在WCF进行Exception Handling
- 安装nginx出现的问题
- 18.11 LVS DR模式搭建
- Linux基础(day64)
- 我的WCF之旅(9):如何在WCF中使用tcpTrace来进行Soap Trace
- 物联网设备已沦陷,咖啡机也不能例外
- 我的WCF之旅(13):创建基于MSMQ的Responsive Service
- 开发自己的Data Access Application Block[上篇]
- 18.9/18.10 LVS NAT模式搭建
- 谈谈WCF中的Data Contract (1):Data Contract Overview
- Linux基础(day66)
- 字符串的驻留(String Interning)
- 19.5 忘记Admin密码如何做
- 19.3/19.4/19.6 安装zabbix
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Java面试总结】Java基础(下篇)
- 使用现代化的脚本进行 ArcGIS JS API 开发
- TextField suffixIcon点击时TextField 选中弹出键盘<Flutter Bug篇>
- seata redis模式重构之全局事务更新
- 【STM32F407】第7章 RL-TCPnet V7.X网络协议栈移植(RTX5)
- 【STM32F429】第7章 RL-TCPnet V7.X网络协议栈移植(RTX5)
- [白话解析] 深入浅出 极大似然估计 & 极大后验概率估计
- 【STM32H7】第7章 RL-TCPnet V7.X网络协议栈移植(RTX5)
- TinyMCE 富文本编辑器的使用实例指导
- dotnet 在国产 UOS 系统利用 dotnet tool 工具做文件传输
- [白话解析] 深入浅出支持向量机(SVM)之核函数
- C# 线程同步之事件信号阻塞 AutoResetEvent
- [白话解析] 深入浅出最大熵模型
- [白话解析] 带你一起梳理Word2vec相关概念
- 利用SSE服务器主动向浏览器端发送消息