SQL语句复习【专题九】

视图:View
视图的概念:视图是从若干基本表或其他视图构造出来的表。
在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据
在用户使用视图时才去求相对应的数据。所以视图被称作“虚表”。
--创建视图 replace 是可选的。
--创建视图需要比较高的权限,给scott 授予 dba 权限
grant dba to scott
--创建视图,如果已经存在则替换
create or replace view view_emp as (
select empno,ename,job,sal,deptno from emp
)
--使用视图
select * from view_emp
通过视图去操作基本表--只能操作视图可以访问的数据。
修改的是基本表,视图本质上是一个sql语句。不会修改。
insert into view_emp values('7777','林徽因','ANALYST',10000,10)
select * from emp
delete from view_emp where empno='7777'

--设置视图为只读视图【read only】
--对基本表的保护,通过视图设置为只读视图,只能对基本表的某些字段的数据进行访问,只能读取,不能修改。
create or replace view view_emp as (
select empno,ename,job,sal,deptno from emp
) with read only

简化比较复杂的查询,,通常设置为只读视图
---查询20号部门的员工的编号,姓名、薪水,部门名称 、薪水等级。
--sql 92
select e.deptno,e.ename,e.sal,d.dname,s.grade
from emp e, dept d, salgrade s
where d.deptno=20 and e.deptno=d.deptno and e.sal between s.losal and s.hisal
--sql 99
select e.deptno,e.ename,e.sal,d.dname,s.grade
from emp e join dept d
on e.deptno=d.deptno
join salgrade s
on e.sal between s.losal and s.hisal
where d.deptno=20

--create
create or replace view view_emp_dept_salgrade as(
select e.deptno,e.ename,e.sal,d.dname,s.grade
from emp e join dept d
on e.deptno=d.deptno
join salgrade s
on e.sal between s.losal and s.hisal
where d.deptno=20
) with read only;
select * from view_emp_dept_salgrade
--删除视图
drop view view_emp

事务
概念:是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位。
作用:事务是为了保证数据库的完整性
--模拟转账
select * from t_account
insert into t_account values('000001','张三','123456',10000);
insert into t_account values('000002','张三媳妇','123456',0);
--张三给张三媳妇 转账1000
update t_account set money = money-1000 where aid='000001';
update t_account set money = money+1000 where aid='000002';
rollback
commit

在oracle中,没有事务开始的语句。一个Transaction起始于一条DML(Insert、Update和Delete )语句,结束于以下的几种情况:
--用户显式执行Commit语句提交操作或Rollback语句回退。
--当执行DDL(Create、Alter、Drop)语句事务自动提交。
--用户正常断开连接时,Transaction自动提交。
--系统崩溃或断电时事务自动回退。

--提交或回滚前数据的状态
--以前的数据可恢复
--当前的用户可以看到DML操作的结果
--其他用户不能看到DML操作的结果
--被操作的数据被锁住,其他用户不能修改这些数据
--提交后数据的状态
--数据的修改被永久写在数据库中.
--数据以前的状态永久性丢失.
--所有的用户都能看到操作后的结果.
--记录锁被释放,其他用户可操作这些记录.
--回滚后数据的状态
--语句将放弃所有的数据修改
--修改的数据被回退.
--恢复数据以前的状态.
--行级锁被释放.

rowid rownum 分页查询
--rowid:每一个rowid 都对应着 一条记录。当一条记录被插入数据库的时候,数据库会针对该条记录生成对应的rowid
--所有对数据的访问,最终都是通过 rowid 来完成的。rowid 数据库自己维护,程序员不需要维护和控制。
一个rowid 对应着磁盘的一个位置。
select * from emp where rowid='AAAE9KAAEAAAAFlAAB'

rownum:针对查询结果的每一条记录的一个逻辑编号 顺序的从 1开始。不是真实存在的。称之为 伪列。
select rownum,empno,ename,sal from emp
--显式 emp 表中的前5条数据。
select rownum, e.* from emp e where rownum < = 5
--6-10--rownum 是在查询到数据,然后添加的编号。
select rownum ,e.* from emp e where rownum between 6 and 10
--rownum 只能使用小于等于,小于,不能使用大于,大于等于

--rownum 是在 from 之后 where 之前添加
select rownum ,e.* from emp e order by e.sal
---排序之后的前5条数据
select rownum, T.*
from (
select e.*
from emp e
order by e.sal
)T
where rownum <= 10

--查询6-10
select rownum, P.*
from (
select rownum row_num, T.*---必须给rownum 加别名才能使用。
from (
select e.*
from emp e
order by e.sal
)T
where rownum <= 10--page*count
) P
where P.row_num between 6 and 10---(page-1)*count + 1 ---- page*count
---page 查询第几页 每页显式 count 个

什么是范式(NF= NormalForm)
范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

第一范式:简单说就是要确保每列保持原子性
第二范式:需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。即在一个数据库表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
第三范式:确保数据表中的每一列数据都和主键直接相关,而不能间接相关

优点
结构合理
冗余较小
尽量避免插入删除修改异常
缺点
性能降低
多表查询比单表查询速度慢

数据库的设计应该根据当前情况和需求做出灵活的处理。
在实际设计中,要整体遵循范式理论。
如果在某些特定的情况下还死死遵循范式也是不可取的,因为可能降低数据库的效率,此时可以适当增加冗余而提高性能。

第一范式:字段不能再分
第二范式:不存在局部依赖
第三范式:不含传递依赖(间接依赖)
使用范式可以减少冗余,但是会降低性能
特定表的的设计可以违反第三范式,增加冗余提高性能

SQL语句复习【专题九】的更多相关文章

  1. SQL语句复习【专题一】

    SQL语句复习[专题一] --创建用户 scott 并设置密码为 tiger create user scott identified by tiger --用户刚刚创建没有任何的权限,连登录的权限都 ...

  2. SQL语句复习【专题二】

    SQL语句复习[专题二] 单行函数(日期.数学.字符串.通用函数.转换函数)多行函数.分组函数.多行数据计算一个结果.一共5个.sum(),avg(),max(),min(),count()分组函数  ...

  3. SQL语句复习【专题三】

    SQL语句复习[专题三] DML 数据操作语言[insert into update delete]创建表 简单的方式[使用查询的结果集来创建一张表]create table temp as sele ...

  4. SQL语句复习【专题四】

    SQL语句复习[专题四] 多表查询 sql 92多表查询 sql92.sql99 标准--查询所有员工的姓名,部门编号,部门名称select * from empselect * from dept- ...

  5. SQL语句复习【专题五】

    SQL语句复习[专题五] 单行子查询:只会得到一个结果的子查询[子查询的内容必须放在小括号中.在查询语句中的查询语句 ]--查询所有比 CLARK 员工 工资高的员工--1.先查询 CLARK 员工的 ...

  6. SQL语句复习【专题六】

    SQL语句复习[专题六] 用户 + 创建表  --创建一个新的用户,然后给新的用户创建一张表,然后给表中添加一些数据.查询表中的数据 --创建用户需要比较大的权限 DBA create user di ...

  7. SQL语句复习【专题七】

    SQL语句复习[专题七] 完整性约束分类1)域完整性约束(非空not null,检查check)2)实体完整性约束(唯一unique,主键primary key)3)参照完整性约束(外键foreign ...

  8. SQL语句复习【专题八】

    SQL语句复习[专题八] 序列 Sequence.数据库对象是 oracle 专有的.作用:可以将某一列的值使用序列,来实现自动增长的功能.访问序列的值.[序列有两个属性 nextval currva ...

  9. sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)

    1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...

随机推荐

  1. SVN 服务器 配置

    1.目录结构 2.用户分配 3.目录权限 4.linux下的SVN服务器 5.配置svnserver.conf 注意左边不要有空格 注意文件的权限 chmod -R 777 /opt/svn/blue ...

  2. $nextTick的使用

    原文地址 概览 官方文档说明: 用法: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 疑问: DOM 更新循环是指什么? 下次更新循环是什么时候 ...

  3. 纹理特征描述之灰度差分统计特征(平均值 对比度 熵) 计算和比较两幅纹理图像的灰度差分统计特征 matlab代码实现

    灰度差分统计特征有: 平均值:​ 对比度:​ 熵:​ i表示某一灰度值,p(i)表示图像取这一灰度值的概率 close all;clear all;clc; % 纹理图像的灰度差分统计特征 J = i ...

  4. Python 清华镜像设置

    大家在通过pip 或conda 下载一些很大的第三方库时是不是有一种等到坟头的草都三尺高了,还没下载完的感觉,而且大的第三方库长时间下载,可能会导致超时自动中断下载,感谢清华的大佬们 临时使用: pi ...

  5. sops的配置过程

    0.demo关键 1.关键信息,不能用5.1.6版本的,还有很多坑 蓝鲸版本: 标准运维:bk_sops_V3.1.39.tar 2.简单理解: 标准运维实际上调用作业平台job的API去执行 要跑通 ...

  6. sshpass和做软链接

    参考: https://help.aliyun.com/document_detail/54530.html?spm=5176.11065259.1996646101.searchclickresul ...

  7. Shortest Distance from All Buildings

    You want to build a house on an empty land which reaches all buildings in the shortest amount of dis ...

  8. linux各种IPC机制

    docker中的资源隔离,一种就是IPC的隔离.IPC是进程间通信. 下面的文章转载自https://blog.csdn.net/yyq_9623/article/details/78794775 原 ...

  9. Linux_目录基本操作_常用命令【详解】

    Linux_常用命令 Linux文件系统的目录树结构:[Linux世界里一切皆文件]:说白了,就是文件和文件夹(目录)之间的操作. 普通用户kkb所有文件及文件夹,其实都位于root用户的 /home ...

  10. Spring注解Component原理源码解析

    在实际开发中,我们经常使用Spring的@Component.@Service.@Repository以及 @Controller等注解来实现bean托管给Spring容器管理.Spring是怎么样实 ...