SQL语句复习【专题八】
SQL语句复习【专题八】
序列 Sequence。数据库对象是 oracle 专有的。
作用:可以将某一列的值使用序列,来实现自动增长的功能。
访问序列的值。【序列有两个属性 nextval currval】
获得序列的下一个自增(默认自增1)之后的值。每访问一次nextval 序列的值都会自增一次。
---创建序列:
create sequence seq_student
select seq_student.nextval from dual
--获得序列当前值 currval 在创建 序列开始,不能直接访问,必须访问一次 nextval 属性之后才能访问 currval
select seq_student.currval from dual
--使用序列的值
select * from student
insert into student values (seq_stu.nextval,'dilraba'||seq_stu.currval,30,'女','000002',null);
--设置序列的详细的属性
create sequence seq_stu
increment by 2 --设置自增量
start with 100
maxvalue 100000
minvalue 100
cycle --| nocycle
--drop 删除序列
drop sequence seq_student
数据库对象 -- 索引【索引的作用:用来加速检索数据的】
索引是被动使用的,如果某些字段被检索的频率比较高,那么就可以根据该字段生成对应的索引,来加速针对该字段的检索的速度
--索引的创建方式:
--1:自动创建:primary key unique 类,oracle会自动的针对该类的数据生成索引。
--2:手动创建
---创建索引
create index index_student_sname on student(sname)
--索引一旦创建自动使用
truncate table student
--带索引的检索
select * from student where sname='小白200'--0.016
--删除索引
drop index index_student_sname
使用索引的要点:
①索引数据可能要占用大量的存储空间。
②索引改善检索操作的性能,但降低数据插入、修改和删除的性能。在执行这些操作时,DBMS必须动态地更新索引。
③限制表中索引的数目。索引越多,在修改表时对索引做出修改的工作量越大
④并非所有数据都适合于索引。唯一性不好的数据(如省)从索引得到的好处不比具有更多可能值的数据(如姓名)从索引得到的好处多
⑤索引用于数据过滤和数据排序。如果你经常以某种特定的顺序排序数据,则该数据可能是索引的备选。
⑥可以在索引中定义多个列(如省加城市),这样的索引只在以省加城市的顺序排序时有用。如果想按城市排序,则这种索引没有用处。
小总结
1、约束
①域完整性约束:非空 not null 检查 check
②记录完整性约束:主键 primary key 唯一 unique
③参照完整性约束:外键 foreign key
④表级约束、列级约束(not null,只能列级)
2、删除主表的记录的时候,关于从表对主表字段引用的处理的方式
①受限制的 restrict 不允许删除。
②cascade:从表一并删除
③set null: 设置为null
3、序列:Sequence oracle 特有的数据库对象。
nextval(自增并返回)、currval(返回序列当前值)
4、index 索引。被动使用。为了加快 检索数据的速度。
①自动创建:主键 primary key + unique 。拥有这两种约束的字段,自动会给每一个数据创建对象的索引。
②会降低,DML操作。
③如果重复的数据比较多(不建议)
SQL语句复习【专题八】的更多相关文章
- SQL语句复习【专题一】
SQL语句复习[专题一] --创建用户 scott 并设置密码为 tiger create user scott identified by tiger --用户刚刚创建没有任何的权限,连登录的权限都 ...
- SQL语句复习【专题二】
SQL语句复习[专题二] 单行函数(日期.数学.字符串.通用函数.转换函数)多行函数.分组函数.多行数据计算一个结果.一共5个.sum(),avg(),max(),min(),count()分组函数 ...
- SQL语句复习【专题三】
SQL语句复习[专题三] DML 数据操作语言[insert into update delete]创建表 简单的方式[使用查询的结果集来创建一张表]create table temp as sele ...
- SQL语句复习【专题四】
SQL语句复习[专题四] 多表查询 sql 92多表查询 sql92.sql99 标准--查询所有员工的姓名,部门编号,部门名称select * from empselect * from dept- ...
- SQL语句复习【专题五】
SQL语句复习[专题五] 单行子查询:只会得到一个结果的子查询[子查询的内容必须放在小括号中.在查询语句中的查询语句 ]--查询所有比 CLARK 员工 工资高的员工--1.先查询 CLARK 员工的 ...
- SQL语句复习【专题六】
SQL语句复习[专题六] 用户 + 创建表 --创建一个新的用户,然后给新的用户创建一张表,然后给表中添加一些数据.查询表中的数据 --创建用户需要比较大的权限 DBA create user di ...
- SQL语句复习【专题七】
SQL语句复习[专题七] 完整性约束分类1)域完整性约束(非空not null,检查check)2)实体完整性约束(唯一unique,主键primary key)3)参照完整性约束(外键foreign ...
- SQL语句复习【专题九】
SQL语句复习[专题九] 视图:View视图的概念:视图是从若干基本表或其他视图构造出来的表.在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据在用户使用视 ...
- sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)
1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...
随机推荐
- k8s-高可用多主master配置
准备主机 centos7镜像 node1: 192.168.0.101 node2: 192.168.0.102 node3: 192.168.0.103 vip: 192.168.0.104 配置s ...
- [ZT]Enhancement-01
Enhancement(1)--BTEs 最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第一次接触到这种增强,所以跟着他一起做了一下.写一个这方面的小节. BTEs(Business ...
- SpringBoot: 3.SpringBoot整合filter(转)
整合方式一:通过注解扫描完成 Filter 组件的注册 1.编写filter package com.bjsxt.filter; import javax.servlet.*; import java ...
- c++ 调试信息输出
1. 把打印信息输出到指定的文件里. #include <stdio.h> #include <stdlib.h> freopen("log.txt", & ...
- window 安装指定的node版本
有时候不同的项目需要不同的node版本,window切换node版本命令很不管用,甚至需要卸载后重新装,同事分享了一下他的做法,很便利. 1.打开node官网 https://nodejs.org/e ...
- springboot整合es客户端操作elasticsearch(二)
在上章节中整合elasticsearch客户端出现版本问题进行了处理,这章来进行springboot整合得操作 环境:elaticsearch6.2.1,springboot 2.1.8 客户端版本采 ...
- vue-router在返回时返回到上次滚动位置
参考链接:https://blog.csdn.net/qq_40963664/article/details/79850589
- ZOJ Problem Set - 1009
1.参考 http://blog.csdn.net/xiaogugood/article/details/17922105 这篇博客对算法介绍的很详细,我看这道题的时候,将题目理解出错,所以进入了一个 ...
- lua调用shell 脚本
Lua中,os.execute可以执行dos命令,但是返回的是系统状态码,默认输出.io.popen()也可以执行dos命令,但是返回一个文件.eg: 复制代码 代码如下: local t = io. ...
- Oracle系统权限与对象权限
oracle权限分为: 系统权限: 允许用户执行特定的数据库动作,如创建表.创建索引.连接实例等. 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列.执行存储过程等. 系统权限 超过一 ...