文章目录

  • 一、sql特点
  • 二、sql语言分类
  • 三、表空间
    • 查询表空间
    • 创建表空间
    • 修改表空间名称
    • 增加表空间大小
    • 减小表空间大小
    • 删除表空间
  • 四、用户管理
    • 查询用户
    • 新建用户
    • 修改用户口令
    • 修改默认表空间
    • 解锁用户
    • 删除用户
  • 五、权限管理
    • 授权操作
    • 权限再操作
    • 撤销权限
    • 撤销对象权限
  • 六、用户和权限查询
    • 1、查询所有用户
    • 2、查询用户名,用户id,创建时间
    • 3、查询当前用户详细信息
    • 4、查询当前用户被授予的角色
    • 5、查询全部用户被赋予的角色
    • 6、查询系统所有角色
    • 7、查询当前用户所具有的权限
  • 七、角色
    • 创建角色
    • 查询用户所具有的角色
    • 修改角色密码
    • 激活角色
    • 删除角色
  • 八、profile管理密码
    • 1、设定密码错误次数及锁定时间
    • 2、设定密码过期时间
  • 九、数据类型
    • 1、数值类型number(precision,scale)
    • 2、字符类型char,varchar2
    • 3、日期类型
    • 4、rowid
  • 十、创建表
  • 十一、维护表
    • 更改表名
    • 删除列
    • 新增列
    • 修改列属性
    • 修改表状态
    • 表删除
    • 查询表是否在回收站中
    • 恢复已删除表
    • 完全删除
  • 十二、非空约束
  • 十三、主键约束
    • 建表时创建主键
    • 删除主键
    • 添加主键
    • 主键自增长:序列
    • 使用序列实现主键自增长
    • 删除序列
  • 十四、唯一约束
    • 创建
    • 删除
    • 添加组合唯一约束
  • 十五、外键约束
    • 创建
  • 十六、检索数据
    • 1、简单查询
    • 查询日期
    • 带有表达式的select子句
    • 为列指定别名
    • 结果去重
    • 处理null,nvl函数
    • 连接字符串
    • Concat函数拼接
  • 十七、筛选查询
    • 1、比较查询
    • 2、like关键字使用
    • 定义转义字符,escape
    • in关键字
    • Between....and关键字
    • Is null关键字,判断某个字段是否为null
    • 逻辑筛选
  • 十八、分组查询
    • Group by改变分组排序
    • Having子句限制分组结果,与group by连用
  • 十九、排序查询
    • 单列排序
    • 在order by 中使用列号进行指定排序
    • 使用非选择列进行排序
    • 多列排序
  • 二十、多表查询
    • 1、内连接
    • 2、外连接
  • 二十一、系统函数
  • 二十二、子查询
    • 单行子查询
    • 多行子查询(in,any,all)
    • 分页查询
  • 二十三、插入数据
    • 显式指定全部列
    • 显式指定部分列
    • 不指定列名称
  • 二十四、更新数据

一、sql特点

1、功能一体化
几乎涵盖了对数据库的所有操作,语言风格统一
2、高度的非过程化的语言
用户只需要说明“做什么”,而不需要说明“怎样做”。大大减轻了用户的负担,同时降低了对用户的技术需求
3、面向集合的操作方式
不仅仅查询结果可以是多条记录的集合,插入、删除、修改操作的对象也可以是多条记录的集合,大大提高了我们对数据的操作效率。
4、多种使用方式
可以直接以命令的方式与数据库进行交互,也可以嵌套到其他高级语言中使用。
5、简介、易学
Sql语言命令数量有限,语法简单,接近自然语言

二、sql语言分类

数据查询语言;DQL,select
数据操作语言:DML,insert、update、delete
事务控制语言:TCL,commit、savepoint、rollback
数据控制语言:DCL,grant、revoke
数据定义语言:DDL,create、alter、drop

三、表空间

查询表空间

创建表空间

修改表空间名称

增加表空间大小

减小表空间大小

删除表空间

四、用户管理

查询用户

新建用户

修改用户口令

修改默认表空间

解锁用户

删除用户

五、权限管理

授权操作

权限再操作




撤销权限


系统权限在撤销父类权限后,对子类权限无影响。
对象赋权



撤销对象权限



对象权限在撤销父类权限后,子类相应的权限也被撤销。

六、用户和权限查询

1、查询所有用户

2、查询用户名,用户id,创建时间

3、查询当前用户详细信息

4、查询当前用户被授予的角色

5、查询全部用户被赋予的角色

6、查询系统所有角色

7、查询当前用户所具有的权限

七、角色

系统预定义角色
CONNECT
CREATE SESSION 创建会话
RESOURCE
CREATE SEQUENCE 建立序列
CREATE TRIGGER 建立触发器
CREATE CLUSTER 建立聚簇
CREATE PROCEDURE 建立过程
CREATE TYPE 建立类型
CREATE OPERATOR 创建操作者
CREATE TABLE 建表
CREATE INDEXTYPE 创建索引类型
EXP_FULL_DATABASE:数据库的导出
IMP_FULL_DATABASE:数据库导入

创建角色



查询用户所具有的角色

修改角色密码

激活角色

删除角色

八、profile管理密码

1、设定密码错误次数及锁定时间

创建profile文件

指定用户使用所创建的文件


2、设定密码过期时间


修改profile

删除profile

九、数据类型

1、数值类型number(precision,scale)

precision表示数字中的有效位(从左边开始第一个不为0的数算起,小数点和负号不会计入有效位数)
scale表示精确到多少位,默认值为0,大于0时表示经确定小数点多少位

2、字符类型char,varchar2

Char类型与char类型或者字符串常量进行比较时,在比较时,使用补齐空格的方式进行比较。
Varchar2类型与varchar2类型,char类型或字符串常量进行比较时,不补充空格,直接比较。


3、日期类型

Date
保存日期和时间,常用的日期处理都可以使用该类型。
Timestamp
不仅可以保存日期和时间,还能保持小数秒

Sysdate:返回系统当前时间
Sysdate+1:当前时间加1天
Sysdate-1/24:当前时间减1小时

日期格式直接相减算天数差,单位为天,时分秒换算成小数

将日期转化为字符串

将字符串转化为日期to_date(char,Format)

返回日期格式的某一部分内容Extract(date from datevalue)

Add_months(date,months) 在date日期上增加月份

4、rowid

用于定位数据库中一条记录,包含数据物理存储地址,伪列,通过rowid来查询数据,能最快定位到数据。

十、创建表


创建表副本

十一、维护表

更改表名

删除列

新增列

修改列属性

修改表状态

表删除

查询表是否在回收站中

恢复已删除表

完全删除

十二、非空约束

建表时创建非空约束

通过修改表字段,添加非空约束

十三、主键约束

建表时创建主键


删除主键

添加主键

主键自增长:序列

创建序列

Increment:增长步幅
Start with :从多少开始
Nomaxvalue/maxvakue:有无最大值
Currval:表示序列当前的值
Nextval:获取序列下一个值,新序列首次使用时,必须先调用nextval进行序列初始化才能调用currval

使用序列实现主键自增长

删除序列

十四、唯一约束

创建

删除

添加组合唯一约束

十五、外键约束

创建


十六、检索数据

1、简单查询

查询日期

默认以简体中文格式展示

以英语格式显示日期

自定义日期展示格式

带有表达式的select子句

为列指定别名

结果去重

处理null,nvl函数

连接字符串

||拼接

Concat函数拼接

十七、筛选查询

1、比较查询

常用比较符:=、A!=B或A<>B、>、<、>=、<=
查询工资>1500的员工编号,员工姓名,员工工资:

特殊比价
A{operator} ANY (B),表示A与B中任何一个元素进行operator运算符比较,只要有一个比较值为真,就返回数据行
A{operator} ALL (B),表示A与B中任何一个元素进行operator运算符比较,所有比较值为真,才返回数据行
查询工资为1600和800的员工编号,员工姓名,员工工资:

查询工资不等于1600和800的员工编号,员工姓名,员工工资:

2、like关键字使用

%:代表一个或多个字符
_:代表一个字符

通配符连用,查询姓名以S开头,并且第三个字符为O的员工信息

查询在81年被雇佣的员工

定义转义字符,escape

查询I?_???:

_表示普通‘_’

in关键字

判断某一字段值是否在一组值中出现
查询是销售员和文员的员工编号,员工姓名,员工工作:

查询不是销售员和文员的员工编号,员工姓名,和员工工作:

Between…and关键字

判断某列值是否在指定区间内
查询工资在2000和3000之间的员工编号,员工姓名,员工工资

Is null关键字,判断某个字段是否为null

查询无奖金的员工姓名,工资,奖金:

查询有奖金的员工姓名,工资,奖金:

逻辑筛选

在where子句中使用逻辑运算符and,or和not进行逻辑判断
查询工资大于等于2000并且小于等于3000的员工姓名,编号,工资:

查询工资小于2000或大于3000的员工编号,员工姓名,员工工资:

十八、分组查询

Select字句后面只可以有两类表达式:统计函数和进行分组的列名

Group by常用的聚合函数
Avg 返回一个数字列的平均值
Count 返回查询列的结果记录数
Max 返回数字列的最大值
Min返回数字列的最小值
Sum 返回数字列的总和

查询每个部门每个岗位的平均工资和最高工资

Group by改变分组排序

查询每个部门部门号,工资总额,并根据工资总额降序排列

Having子句限制分组结果,与group by连用

查询每个部门平均工资大于2000的部门号以及部门平均工资

十九、排序查询

单列排序


在order by 中使用列号进行指定排序

使用非选择列进行排序

多列排序

首先第一列进行排序,当第一列存在相同数据时,再以第二列进行排序

二十、多表查询



1、内连接

关键字INNER JOIN 来实现,其中 INNER可以省略,使用关键字内连接时,必须使用ON关键字设定连接规则
使用内连接进行多表查询时,返回的结果中只包含与查询结果和连接条件相匹配的行。内连接消除了与另一个表中不匹配的行。

一旦给表设定别名后,接下来只能使用表别名

2、外连接

扩展了内连接的结果集,除了返回所有匹配的行之外,还会返回一部分或全部不匹配的行
左外连接
Left join.....On
左表中所有数据都会被查询出,与右表中未能连接的字段使用null值

二十一、系统函数

Ascii函数

Concat(s1,s2)拼接字符串


Initcap(s):将字符串每个单词首字母大写

Instr(s1,s2,[i],[j]) :返回s2在s1中,从i位置开始第j次出现的位置

Length(s):返回字符串s的长度

Lower(s),Upper(s)

Substr(s,i,[j]):从s字符串中第i个位置开始,截取长度为j的字符串,如果省略j,怎截到字符串末尾

Ceil()函数:返回大于或等于数字n的最小整数

Power(n1,n2):n1的n2次方

Sysdate返回系统当前时间

聚合函数
Avg,count,sum

二十二、子查询

注意事项:
1、子查询必须用括号括起来
2、子查询不能包含order by子句
3、子查询允许嵌套多层,但是不能超过255层

单行子查询

可以使用单行比较运算符(=、>、>=、<、<=、<>)


查询emp表中,既不是最高工资,也不是最低工资的员工信息

多行子查询(in,any,all)

查询不在销售部门(sales)de 员工信息

在emp表中,查询工资大于10号部门的任意一个员工工资的其他部门的员工信息。(any)

在emp表中,查询工资大于部门编号为30的所有员工工资的员工信息。(all)
Where sal > all()
关联子查询
在emp表中,检索工资大于同职位的平均工资的员工信息

分页查询

Rownum是一个伪列,或根据sql语言自动添加一列排好的序列号。

分页查询
Rownum总是为满足条件的记录自动生成从1开始的序号
查询emp表中第4-9跳记录

二十三、插入数据

1、当为数据列增加数据时,可以直接提供数值或者用单引号引住
2、当为字符或日期增加数据时,必须用单引号引住
3、当增加数据时,数据必须满足约束条件
4、当增加数据时,数据必须与列的个数和顺序保持一致

显式指定全部列

显式指定部分列

不指定列名称

二十四、更新数据


将员工姓名为SMITH的工资调整为部门号为30的部门平均工资


(Oracle学习笔记) sql语言相关推荐

  1. oracle SQL以结尾函数,Oracle学习笔记--SQL查询和SQL函数(转) -- 迷失de天空 -- 编程爱好者......

    A: 数据定义语言: 用于改变数据库结构,包括创建,修改,删除数据库对象 创建表: Create Table 表名 ( 列名 列类型, 列名 列类型, -- ) 例: Create Table ven ...

  2. (Oracle学习笔记) sql*plus命令

    一.SET命令 显示系统时间,默认为off 显示sql语句执行耗时,默认为off 设置每页行数 查询一页设置的行数 设置不分页 设置一页空行数 查询一页空行数 设置查询结果是否滚动显示 格式化数值的默 ...

  3. oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型

    oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...

  4. Oracle学习笔记---(一)

    Oracle学习笔记---(一) 一 1.Oracle简介     Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...

  5. Oracle学习笔记 字符集概述

    Oracle 学习笔记 字符集概述 这节课开始讲oracle里面的字符集 偏重于原理和简单的一些判断以及实现 字符集它涉及到很多的东西 比如建库和操作系统环境 这节课把字符集的原理性的东西以及常见的操 ...

  6. oracle update单引号,Oracle学习笔记:update的字段中包括单引号

    平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...

  7. oracle学习笔记 参数文件及数据库的启动和关闭

    oracle学习笔记 参数文件及数据库的启动和关闭 我们这节课把oracle的参数文件以及oracle的启动关闭讲一下 一)参数文件作用 先看oracle的参数文件 它由来已久了 我们知道oracle ...

  8. IOS学习笔记03---C语言概述

    IOS学习笔记03---C语言概述 0 3.C语言1-C语言概述         qq交流群:创梦技术交流群:251572072                        创梦网络赚钱群:2483 ...

  9. Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作

    Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...

最新文章

  1. 关于域的的一些遐想(一)
  2. if vue 跳出_vue使用v-if v-show 页面闪烁
  3. [Leetcode][程序员面试金典][面试题17.13][JAVA][恢复空格][动态规划][Trie][字符串哈希]
  4. 对号入座:大学助教、讲师、副教授、教授图鉴
  5. Axure移动端通用元件库rplib格式包含安卓、苹果各种主流手机、平板线框图元件库、IOS系统图标、人物图标、导航和分页、表格元素、各种小图标等
  6. BZOJ_1029_[JSOI2007]_建筑抢修_(贪心+优先队列)
  7. oc传参数给js_一道面试题引发关于 js 隐式转换的思考
  8. 斐讯k1潘多拉专版固件_斐讯路由器刷潘多拉固件+宽带并发多拨号视频教程+工具下载(K1K2)...
  9. stm32通过SPI与adc124s021通信读取ad
  10. 微信小程序开发页面跳转教程
  11. MJKDZ PS2手柄控制OskarBot小车(二):硬件连接与通信时序
  12. 员工考勤iPhone客户端1.0版简介
  13. 楚氏春秋(新版)第一部 风起平原
  14. Java实现 LeetCode 365 水壶问题
  15. IPV6 邻居发现协议(NDP)
  16. 中国小微企业调查数据CMES:小型微型家庭作坊式企业收支工商税收营商情况
  17. 凯云水利水电工程造价管理系统 技术解析(七) 机械单价(二)
  18. 使用FPGA实现的图像锐化算法(USM)设计
  19. 计算机网络中间设备(网关,路由器,交换机,网桥,中继器,集线器)
  20. 《全球数字经济白皮书》发布:产业数字化是数字经济发展的主引擎

热门文章

  1. 图形基础 GPU架构(5)GPU vs CPU
  2. 图形基础 GPU架构(1)背景
  3. 波卡链Substrate (6)Babe协议三“slot leader”
  4. (chap6 Http首部) 请求首部字段 If-Modified-SinceIf-None-Match If-RangeIf-Unmidified-Since
  5. 【Opencv实战】简易版“美颜”来啦—再见旧照片,Python一键美颜哦~
  6. optee HSM的实现
  7. Xposed模块编写遇到的一些问题以及解决
  8. (6)段描述符D/B位
  9. 2020年度总结(只有做好自己不喜欢的事情你才能做自己喜欢的事情)
  10. 【Laravel】连接 sqlite 数据库 Database [xxx] not exist