名站网址导航为大家提供关于数据库教程相关的教程网站知识。
Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实
问题:在SQL Server网站数据库中,有自增列这个字段属性,使用起来也是很方便的。而在Oracle中却没有这个功能,该如何实现呢?,答:在Oracle中虽然没有自增列的说法,但却可以通过触发器(trigger)和序列(sequence)来模式实现。,示例:,1、建立表,复制具体相关代码 具体相关代码如下:,create table user ( id number(6) not null, name varchar2(30) not null primary key,2、建立序列SEQUENCE,复制具体相关代码 具体相关代码如下:,create sequence user_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order,语法: CREATE SEQUENCE s_id NOMAXVALUE NOCYCLE --INCREMENT BY 1 -- 每次加几个 --START WITh 1 -- 从1开始,3、创建触发器 创建一个基于该表的before insert 触发器,在触发器中使用刚创建的SEQUENCE。,复制具体相关代码 具体相关代码如下:,create or replace trigger user_trigger before insert on user for each row begin select ,
一、简单查询
SQL(Structured Query Language) 结构化查询语言,是一种网站数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系网站数据库系统。ANSI(美国国家标准学会)声称,SQL是关系网站数据库管理系统的标准语言。
Oracle网站数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL数据库语句的网站数据库产品。
SQL功能强大,概括起来,它可以分成以下几组:
复制具体相关代码 具体相关代码如下:
DML(Data Manipulation Language) 数据操作办法语言,用于检索或者修改数据
DDL(Data Definition Language) 数据定义语言,用于定义数据的结构,创建、修改或者删除网站数据库对象
DCL(Data Control Language) 数据控制语言,用于定义网站数据库的权限
简单查询指的是查询出一张表中的所有的数据,简单查询的语法如下:
复制具体相关代码 具体相关代码如下:
SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名]] FROM 表名称 [别名];
范例:
SELECT * FROM dept;--查询dept表的全部记录 SELECT empno, ename, sal FROM emp;--查询出每个雇员的编号、姓名、基本工资 SELECT job FROM emp;--查询出每个雇员的职位。这个时候发现查询出来的job内容中出现了重复的数据。 SELECT DISTINCT job FROM emp;--使用DISTINCT消除掉所有的重复内容。但是对于重复数据,指的是一行中的每个列的记录都重复,才叫重复数据。 SELECT DISTINCT ename, job FROM emp;--查询出每个雇员的姓名、职位 SELECT ename, job, sal*12 FROM emp;--使用各个数学的四则运算符,要求显示每一个雇员的姓名、职位、基本年薪 SELECT ename, job, sal*12 income FROM emp;--为显示的查询列起一个别名,对于别名,建议不要使用中文,只要是程序的开发,都要回避中文。 SELECT ename, job, (sal 300)*12 income FROM emp;--由于公司的福利很高,每个月都有200元的饭食补助以及100元车费补贴,这个时候的年薪 SELECT ename, job, (sal 300)*12 sal income FROM emp;--公司每年的年底都会多发一个月的基本工资 SELECT empno || ',' || ename FROM emp;--在简单查询中也可以使用“||”连接查询的字段。 SELECT '雇员编号是:' || empno || '的雇员姓名是:' || ename || ',基本工资是:' || sal || ',职位是:' || job || '! ' 雇员信息 FROM emp;--要求现在的网站数据库按照如下的格式显示:“雇员编号是:7369的雇员姓名是:SMITh,基本工资是:800,职位是:CLERK!”
由于“,”属于原样输出的字符串,所以必须使用“ ' ”括起来,即:在SQL数据库语句之中,“ ' ”表示的是字符串。
一定要记住,别名上的内容不要使用“ ' ”括起来,而只有在SELECT子句之中出现的内容使用“ ' ”。
二、限定查询
在之前的简单查询中,是将所有的记录进行显示,但是现在可以对显示的记录进行过滤的操作办法,而这就属于限定查询的工作了,限定查询就是在之前语法的基础上增加了一个WhERE子句,用于指定限定条件,此时语法如下:
复制具体相关代码 具体相关代码如下:
SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名]]
FROM 表名称 [别名]
[WhERE 条件(S)];
在WhERE子句之后可以增加多个条件,最常见的条件就是基本的关系运算:>、>=、< 、<=、!=(<>)、BETWEEN、AND、LIKE、IN、IS NULL、AND、OR、NOT;
1、关系运算
SELECT * FROM emp WhERE sal>1500;--要求查询出基本工资高于1500的所有雇员信息 SELECT * FROM emp WhERE job='clerk';--查询出所有职位是办事员的雇员信息 SELECT * FROM emp WhERE job='CLERK';--上面没有返回相应的查询结果,主要原因是在Oracle网站数据库中,所有的数据都是区分大小写的 SELECT * FROM emp WhERE sal>=1500 AND sal<=3000;--查询工资在1500~3000之间的全部雇员信息,多个条件之间可以使用AND或OR进行连接操作办法 SELECT * FROM emp WhERE job='CLERK' OR job='SALESMAN';--查询出职位是办事员,或者是销售人员的全部信息 SELECT * FROM emp WhERE (job='CLERK' OR job='SALESMAN') AND sal>1200;--查询出职位是办事员,或者是销售人员的全部信息,并且要求这些雇员的工资大于1200 SELECT * FROM emp WhERE job<>'CLERK';--查询所有不是办事员的雇员信息 SELECT * FROM emp WhERE job!='CLERK'; SELECT * FROM emp WhERE NOT job='CLERK';
2、范围判断:BETWEEN…AND…
“BETWEEN 最小值 AND 最大值”,表示的是一个范围的判断过程。“BETWEEN…AND…”操作办法符不光只是针对于数字有用,对于日期也同样有用。
复制具体相关代码 具体相关代码如下:
SELECT * FROM emp WhERE sal BETWEEN 1500 AND 3000;--要求查询出基本工资在1500~3000的雇员信息
SELECT * FROM emp WhERE NOT sal BETWEEN 1500 AND 3000;--现在也可以对BETWEEN…AND…操作办法求反
SELECT * FROM emp WhERE hiredate BETWEEN '01-1月-1981' AND '31-12月-81';--要求查询出在时间范围内的全部雇员信息
3、判断是否为空:IS (NOT) NULL
使用此语法可以判断某一个字段上的内容是否是“null”,但是null和数字0以及空字符串是两个概念。
复制具体相关代码 具体相关代码如下:
关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。