09 2012 档案

摘要:数据库设计范式是一个很重要的概念,但是这个重要程度只适合于参考。使用数据库设计范式,可以让数据表更好的进行数据的保存,因为再合理的设计,如果数据量一大也肯定会存在性能上的问题。所以在开发之中,唯一可以称为设计的宝典 —— 设计的时候尽量避免日后的程序出现多表关联查询。一、第一范式所谓的第一范式指的就是数据表中的数据列不可再分。例如,现在有如下一张数据表:CREATE TABLE member ( mid NUMBER PRIMARY KEY, name VARCHAR2(200) NOT NULL, contact VARCHAR2(200));这个时候设计的就不合理,因为联系方式由多种... 阅读全文
posted @ 2012-09-13 09:48 Merlin_Tang 阅读(6443) 评论(9) 推荐(9) 编辑
摘要:数据库的备份操作是在整个项目运行中最重要的工作之一。一、数据的导出和导入数据的导出和导入是针对于一个用户的备份操作,可以按照如下的方式完成:1、 数据的导出在硬盘上建立一个文件夹:c:\backup;输入exp指令;输入用户名和密码;设置导出文件的名称:导出文件: EXPDAT.DMP;2、 数据的导入先将表删除干净;进入到导出文件所在的文件夹之中:c:\backup;输入imp指令;输入用户名和密码;导入整个导出文件 (yes/no): no > yes但是以上的操作只是做为一个演示,因为这种备份操作本身只适合数据量小的情况,如果数据量较大的话,这种操作是会损耗性能的,而且时间也会很长 阅读全文
posted @ 2012-09-12 16:04 Merlin_Tang 阅读(24204) 评论(4) 推荐(6) 编辑
摘要:SQL语句分为三类:DML、DDL、DCL,之前已经讲解完了DML和DDL,现在就差DCL操作的,DCL主要表示的是数据库的控制语句,控制的就是操作权限,而在DCL之中,主要有两个语法:GRANT、REVOKE;权限的操作基础是需要有用户的,而这个时候就需要通过一个新的用户进行演示,而要想创建新用户则首先必须是具备管理员权限的sys、system两个用户操作。范例:创建一个dog用户,密码为wangwangCONN sys/change_on_install AS SYSDBA;CREATE USER dog IDENTIFIED BY wangwang;此时一个新的用户就创建完成了。注意:“ 阅读全文
posted @ 2012-09-12 12:38 Merlin_Tang 阅读(6193) 评论(0) 推荐(1) 编辑
摘要:一、视图在之前所学习过的所有的SQL语法之中,查询操作是最麻烦的,如果程序开发人员将大量的精力都浪费在查询的编写上,则肯定影响代码的工作进度,所以一个好的数据库设计人员,除了根据业务的操作设计出数据表之外,还需要为用户提供若干个视图,而每一个视图包装了一条条复杂的SQL语句,视图的创建语法如下:CREATE [OR REPLACE] VIEW 视图名称 AS 子查询;范例:创建一张视图CREATE VIEW myview AS SELECT d.deptno,d.dname,d.loc,COUNT(e.empno) count,AVG(e.sal) avg FROM emp e,dept... 阅读全文
posted @ 2012-09-11 19:37 Merlin_Tang 阅读(6518) 评论(0) 推荐(4) 编辑
摘要:一、集合在数学的操作之中存在交、差、并、补的概念,而在数据的查询中也存在此概念,有如下几个连接符号:UNION:连接两个查询,相同的部分不显示;UNION ALL:连接两个查询,相同的部分显示;INTERSECT:返回两个查询中的相同部分;MINUS:返回两个查询中的不同部分;为了验证以上的操作,下面创建一张只包含20部门雇员信息的表:CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20;范例:验证UNIONSELECT * FROM emp UNIONSELECT * FROM emp20;范例:验证UNION ALLSELECT . 阅读全文
posted @ 2012-09-11 16:06 Merlin_Tang 阅读(5373) 评论(4) 推荐(4) 编辑
摘要:有某个学生运动会比赛信息的数据库,保存了如下的表:运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department)项目item(项目编号itemid,项目名称itemname,项目比赛地点location)成绩grade(运动员编号id,项目编号itemid,积分mark)请用SQL语句完成如下功能:1、 建表,并在相应字段上增加约束;定义各个表的主键和外键约束;运动员的姓名和所属系别不能为空;积分要第为空值,要么为6,4,2,0,分别代表第一,二,三名和其他名次的积分,注意名次可以有并列名次,后面的排名不往前提升,例如,如果有两个并列第 阅读全文
posted @ 2012-09-11 11:51 Merlin_Tang 阅读(9428) 评论(3) 推荐(7) 编辑
摘要:表虽然建立完成了,但是表中的数据是否合法并不能有所检查,而如果要想针对于表中的数据做一些过滤的话,则可以通过约束完成,约束的主要功能是保证表中的数据合法性,按照约束的分类,一共有五种约束:非空约束、唯一约束、主键约束、检查约束、外键约束。一、非空约束(NOT NULL):NK当数据表中的某个字段上的内容不希望设置为null的话,则可以使用NOT NULL进行指定。范例:定义一张数据表DROP TABLE member PURGE;CREATE TABLE member( mid NUMBER, name VARCHAR2(50) NOT NULL);因为此时存在了“NOT NULL... 阅读全文
posted @ 2012-09-10 17:23 Merlin_Tang 阅读(9297) 评论(3) 推荐(4) 编辑
摘要:对于数据库而言实际上每一张表都表示的是一个数据库的对象,而数据库对象指的就是DDL定义的所有操作,例如:表、视图、索引、序列、约束等等,都属于对象的操作,所以表的建立就是对象的建立,而对象的操作主要分为以下三类语法:创建对象:CREATE 对象名称 …;删除对象:DROP 对象名称 …;修改对象:ALTER 对象名称 …;一、常用的数据字段每一张数据表实际上都是由若干个字段所组成,而每一个字段都会有其对应的数据类型,而在Oracle之中,常用的数据类型有如下几种:№数据类型关键字描述1字符串VARCHAR2(n)其中n表示的是字符串所能保存的最大长度,基本上保存200个左右的内容2整数NUMB 阅读全文
posted @ 2012-09-10 10:54 Merlin_Tang 阅读(6362) 评论(2) 推荐(3) 编辑
摘要:一、复杂查询1、 列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。1、确定所需要的数据表:emp表:可以查询出员工的数量;dept表:部门名称;emp表:统计信息;2、确定已知的关联字段:emp.deptno=dept.deptno; 第一步:找出至少有一个员工的部门编号SELECT deptno,COUNT(empno)FROM empGROUP BY deptnoHAVING COUNT(empno)>1;第二步:找到部门名称,肯定使用部门表,因为现在的数据量较小,所以可以将之前的emp表和dept表两个进行连接,统一采用多字段分组的方式查询; 阅读全文
posted @ 2012-09-09 21:02 Merlin_Tang 阅读(18334) 评论(6) 推荐(13) 编辑
摘要:一、数据的更新操作DML操作语法之中,除了查询之外还有数据的库的更新操作,数据的更新操作主要指的是:增加、修改、删除数据,但是考虑到emp表以后还要继续使用,所以下面先将emp表复制一份,输入如下指令:CREATE TABLE myemp AS SELECT * FROM emp;这种语法是Oracle中支持的操作,其他数据库不一样。1、数据增加如果现在要想实现数据的增加操作,则可以使用如下的语法完成:INSERT INTO 表名称 [(字段1,字段2,…)] VALUES(值1,值2,…);如果要想进行增加数据的话,则以下的几种数据类型要分别处理:增加数字:直接编写数字,例如:123;增加字 阅读全文
posted @ 2012-09-08 22:28 Merlin_Tang 阅读(9327) 评论(9) 推荐(5) 编辑
摘要:本次预计讲解的知识点1、 多表查询的操作、限制、笛卡尔积的问题;2、 统计函数及分组统计的操作;3、 子查询的操作,并且结合限定查询、数据排序、多表查询、统计查询一起完成各个复杂查询的操作;一、多表查询的基本概念在之前所使用的查询操作之中,都是从一张表之中查询出所需要的内容,那么如果现在一个查询语句需要显示多张表的数据,则就必须应用到多表查询的操作,而多表查询的语法如下:SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名] ,…]FROM 表名称 [别名], [表名称 [别名] ,…][WHERE 条件(S)][ORDER BY 排序字段 [ASC|DESC] [,排 阅读全文
posted @ 2012-09-07 16:15 Merlin_Tang 阅读(93800) 评论(34) 推荐(62) 编辑
摘要:虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外 ,就是要多学习函数。单行函数主要分为以下五类:字符函数、数字函数、日期函数、转换函数、通用函数;一、字符函数字符函数的功能主要是进行字符串数据的操作,下面给出几个字符函数:UPPER(字符串 | 列):将输入的字符串变为大写返回;LOWER(字符串 | 列):将输入的字符串变为小写返回;INITCAP(字符串 | 列):开头首字母大写;LENGTH(字符串 | 列):求出字符串的长度;REPLACE(字符串 | 列):进行替换;SUB 阅读全文
posted @ 2012-09-07 12:41 Merlin_Tang 阅读(14266) 评论(7) 推荐(7) 编辑
摘要:一、简单查询SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。Oracle数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL语句的数据库产品。SQL功能强大,概括起来,它可以分成以下几组:DML(Data Manipulation Language) 数据操作语言,用于检索或者修改数据DDL(Data Definition Language) 数据定义语言,用于定义数据的结构,创建、修改或者删除数 阅读全文
posted @ 2012-09-07 09:33 Merlin_Tang 阅读(15099) 评论(3) 推荐(7) 编辑
摘要:在Oracle的学习之中,重点使用的是SQL语句,而所有的SQL语句都要在scott用户下完成,这个用户下一共有四张表,可以使用:SELECT * FROM tab;查看所有的数据表的名称,如果现在要想知道每张表的表结构,则可以采用以下的命令完成:DESC 表名称;1、 部门表:dept№名称类型描述1DEPTNONUMBER(2)表示部门编号,由两位数字所组成2DNAMEVARCHAR2(14)部门名称,最多由14个字符所组成3LOCVARCHAR2(13)部门所在的位置2、 雇员表:emp№名称类型描述1EMPNONUMBER(4)雇员的编号,由四位数字所组成2ENAMEVARCHAR2( 阅读全文
posted @ 2012-09-06 23:06 Merlin_Tang 阅读(25956) 评论(0) 推荐(3) 编辑
摘要:对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,对于sqlplus有两种形式。一种是dos风格的sqlplus:sqlplus.exe;另一种是windows风格的sqlplus:sqlplusw.exe;在Oracle 10g之中主要使用的是sqlplusw命令,因为其可以进行一些显示数据的调整。 此时会找到默认的已经可以使用的数据库实例。范例:输入查询指令SELECT * FROM emp;此时的数据已经可以正常的显示,但是依然会存在数据折行的问题,因为这个是默认的每行的数据大小,而现在可以通过两个命令进行调整:设置每行显示的记录长度:SET LIN 阅读全文
posted @ 2012-09-06 19:41 Merlin_Tang 阅读(13745) 评论(4) 推荐(4) 编辑
摘要:一、轨迹二、Oracle简介 Oracle是现在全世界最大的数据库提供商,编程语言提供商,应用软件提供商,它的地位等价于微软的地位。 Oracle在古希腊神话中被称为“神谕”,指的是上帝的宠儿,在中国的商周时期,把一些刻在龟壳上的文字也称为上天的指示,所以在中国Oracle又翻译为甲骨文。 Oracle的公司发展最早起源于1970年6月IBM的一个技术员,埃德加·考特(Edgar Frank Codd) 在Communications of ACM上发表的论文 —— 大型共享数据库数据的关系模型(A Relational Model of Data for Large Shared 阅读全文
posted @ 2012-09-06 14:48 Merlin_Tang 阅读(10983) 评论(14) 推荐(7) 编辑