前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle中的基本SQL知识

Oracle中的基本SQL知识

作者头像
时间静止不是简史
发布2020-07-24 17:26:44
1K0
发布2020-07-24 17:26:44
举报
文章被收录于专栏:Java探索之路Java探索之路

什么是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 表格的所有列数据 ‘*’ 通配符, 表示所有的列

代码语言:javascript
复制
select * from emp;

2、 指定列

a) 查询所有员工的编号, 姓名和职位

代码语言:javascript
复制
select empno, ename, job from emp;

3、 支持算数运算

a) 查询所有员工的姓名, 职位和年薪  select 子句中, 支持算数运算

代码语言:javascript
复制
select ename, job, sal*12 from emp;

4、 列别名

a) select 子句中, 可以通过 as 关键字给列起别名

代码语言:javascript
复制
select ename, job, sal*12 as nianxin from emp; 

b) as 关键字可以被省略, 一般都省略

代码语言:javascript
复制
select ename, job, sal*12 nianxin from emp;

c) 别名中, 尽量不要使用特殊符号, 例如空格; 如果非要有特殊符号, 可以使用双引号括起来. d) 在 Oracle 中, 双引号表示原样输出.

代码语言:javascript
复制
select ename, job, sal*12 "ni a n xin" from emp;

5、 distinct

用于去除重复行信息 a) 查询所有的职位信息

代码语言:javascript
复制
select distinct job from emp; 

b) 查询所有员工的姓名和职位

distinct 只能去除重复行, distinct 的作用范围是它后面的所有列**

代码语言:javascript
复制
select distinct ename, job from emp;

6、字符串连接符

Oracle 中, 用单引号表示字符串 a) 查询所有员工的姓名, 职位和薪资, 以姓名:xxx, 职位:xxx, 薪资:xxx 的形式显示

代码语言:javascript
复制
select '姓名:'||ename||',职位:'||job||',薪资:'||sal info from emp;
order by子句

a) 查询所有员工的信息, 按照工资升序排序 asc, 表示升序(ascend)

默认情况下, 按照升序排序, 所以, asc 一般被省略

代码语言:javascript
复制
select * from emp order by sal asc;

b) 查询所有员工的信息, 按照标号降序排序 desc, 表示降序排序(descend)

代码语言:javascript
复制
select * from emp order by empno desc; 

c) 查询所有员工的信息, 按照入职日期降序排序

代码语言:javascript
复制
select * from emp order by hiredate desc; 

d) 查询所有员工的信息, 按照姓名排序

代码语言:javascript
复制
select * from emp order by ename; 

e) 查询所有员工信息, 按照薪资降序排序, 如果薪资相同, 将新员工排在前面.

代码语言:javascript
复制
select * from emp order by sal desc, hiredate desc; 

f) 查询所有员工的姓名和年薪, 按照年薪排序

代码语言:javascript
复制
select ename, sal*12 nianxin from emp order by nianxin desc;

where子句

1、等值条件

c) 查询在 1982-01-23 入职的员工信息

日期必须用单引号括起来; 日期格式必须是: DD-MM 月-YY,且月份格式不能改变

代码语言:javascript
复制
select * from emp where hiredate='23-1 月-82';

2、非等值条件

a) 查询工资在 1500 到 3000 之间的员工信息 between…and…表示一个范围, 包含边界

代码语言:javascript
复制
select * from emp where sal>=1500 and sal<=3000; 
select * from emp where sal between 1500 and 3000; 

b) 查询 SCOTT 和 KING 的详细信息

代码语言:javascript
复制
select * from emp where ename='SCOTT' or ename='KING'; 
select * from emp where ename in ('SCOTT', 'KING'); 

c) 查询所有员工的信息, 排除 20 部门

代码语言:javascript
复制
select * from emp where deptno != 20; 
select * from emp where deptno <> 20;   

3、模糊查询

使用 like(像)实现, 配合通配符实现 _, 表示任意一个字符 %, 表示任意个任意字符

a) 查询姓名首字母为 A 的员工的信息

代码语言:javascript
复制
select * from emp where ename like 'A%'; 

b) 查询姓名第二个字母是 A 的员工的信息

代码语言:javascript
复制
select * from emp where ename like '_A%'; 

c) 查询姓名中带有字母 C 的员工的信息

代码语言:javascript
复制
select * from emp where ename like '%C%'; 

d) 查询姓名中带有下划线的员工的信息

escape 用于声明转义字符. 将通配_符转换成普通字符

代码语言:javascript
复制
select * from emp where ename like '%a_%' escape 'a';

4、IS NULL

用于判断空值 ,但不能判断是否为0 a) 查询所有没有提成的员工信息

代码语言:javascript
复制
select * from emp where comm is null; 

b) 查询所有有提成的员工信息

代码语言:javascript
复制
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的信…

代码语言:javascript
复制
select * from emp where job='CLERK' or job='SALESMAN' and sal>1250; 

b) 查询所有的 CLERK 和 SALESMAN 的信息同时工资要大于 1250.

代码语言:javascript
复制
select * from emp where (job='CLERK' or job='SALESMAN') and sal>1250;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是SQL语言
    • SQL语言的作用
      • 分类
        • 关系数据库的概念
          • 开始设置使用Oracle时的相关准备
            • 设置字体
            • 关闭自动备份,避免生成同名文件
        • select基本语句
          • 1、通配符
            • 2、 指定列
              • 3、 支持算数运算
                • 4、 列别名
                  • 5、 distinct
                    • 6、字符串连接符
                    • where子句
                      • 1、等值条件
                        • 2、非等值条件
                          • 3、模糊查询
                            • 4、IS NULL
                              • 5、and or 的优先级
                              相关产品与服务
                              数据库
                              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档