51CTO博客开发
数据库设计 高级开发部分:游标、触发器、包、函数,基本上很少直接调用了。 1.数据库设计范式(了解) 实际上非常重要,但是从开发来看,如果真的全部按照范式去做,则程序没法写,查询语句也会变得非常复杂。 在Oracle中的scott用户的全部表,很好的体现了一种设计思路,雇员-部门的关系。 1)第一范式 数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整形、
11.嵌套表(了解) 注意:基本不用。 例如:一个部门可能承接多个项目,那么按原始方法设计,应该这样定义两张表: CREATE TABLE department ( deptno NUMBER(2)  
10.数据库备份与恢复 Oracle安装完成之后可以使用两个命令进行备份与恢复: 数据库备份:exp 数据库恢复:imp 在D盘建立一个data文件夹,在此文件夹中保存所有的备份文件,如果要备份,则需要使用命令行方式,进入d:\data 删除所有的表,然后恢复
9.权限 1)创建 创建用户的语法: CREATE USER 用户名 IDENTIFIED BY 密码; 范例:创建一个test用户,密码是test123 如果要想创建用户,首先应该使用管理员登陆 2)修改密码 修改密码的语法: ALTER USER 用户名 IDENTIFIYED BY 密码; 范例:将test用户的密码修改为hello &n
7.序列(重点) 在很多数据库系统中都寻在一个自动增长的列,如果要想在Oracle中完成自动增长只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。 创建序列 创建序列的语法格式为: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n]
6.视图(重点) 功能:视图就是封装了一条复杂的查询语句 创建视图的语法: CREATE VIEW 视图名称 AS 子查询; 此时的子查询就表示一条非常复杂的语句。 范例:建立一个视图,包含了全部的20部门的雇员信息 说明scott没有这个权限,所以以超级管理员的身份登录,赋予scott这个权限 这样就可以
5.集合操作 在Oracle中提供了三种类型的集合操作:并UNION,交INTERSACT,差MINUS 并UNION:将多个查询结果组合到一个查询结果之中,无重复内容 并UNION ALL:将多个查询结果组合到一个查询结果之中,无重复内容 交INTERSACT:返回多个查询结果中相同的部分
3.ROWNUM(重点) 表示行号,实际上这是一个列,但是是一个伪列,此列可以在每张表中出现。 范例:在查询雇员表上,加入ROWNUM 从运行结果看,ROWNUM采用自动编号的形式出现 范例:只想显示前5条记录 范例:查询中间5条记录 ROWNUM没有这样的功能,这个查询只能使用子查询 范例:要求每页显示5条,第二页应该
2.约束 在数据库表的开发中,约束是必不可少的支持,使用约束可以更好的保证数据库中数据的完整性。 约束主要分为以下几种: 主键约束:主键表示唯一的标识,不能为空,如身份证编号 唯一约束:在一个表中只允许一个主键,其他列如果不希望出现重复值的话,可使用唯一约束 检查约束:检查一个列的内容是否合法,例
1.创建和管理表 在Oracle中之前使用emp、dept等都是系统内建好的表,在SQL语法中同样支持了表的创建语句,要想创建表,则应该首先了解Oracle中最常使用到的几种数据类型 1)常用的数据类型 常用过的数据类型,如之前的emp表中已经出现的三种:NUMBER,VARCHAR,DATE
11.查询练习 1)列出至少有一个员工的所有部门 第一步:求出所有部门的员工数量 SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno; 第二步:求出员工数大于1的部门编号 SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno HAVING COUNT(empno)>1;
10.事务处理 范例:创建一个只包含10部门雇员的一张临时表 CREATE TABLE emp10 AS SELECT * FROM emp WHERE deptno=10; 然后删除编号是7782的一条信息, DELETE RFOM emp10 WHERE empno=7782; 从当前窗口查询,可以看到数据已经被删除,但是如果开启第二个SQLplus窗口查询就会发现,这条数据还在,证
9. 数据库更新操作 数据库的主要操作分为两种 查询操作:SELECT 更新操作:INSERT、DELETE、UPDATE 此时为保存原始的emp表的信息,在进行增加、修改、删除操作之前,先将此表复制一份 此语句执行之后会将表结构和数据完整的复制出来。下面进行增删改操作。 1)添加数据 语法:INSERT INTO 表名称[字段名称1,字段名称2,…
8. 子查询 子查询定义:在一个查询的内部还包括另外一个查询 子查询格式:在小括号中编写代码 SELECT DISTINCT *|列名 别名 FROM 表名 别名 {括号内容就是子查询 SELECT DISTINCT *|列名 别名
7.组函数及分组统计 应用:例如,把男生分成一组,女生一组,然后求出每一组的平均身高、年龄,这就要用到分组函数 1)组函数 在SQL常用的组函数有: COUNT():求出全部的记录数 MAX():求出一组中最大值 MIN():求出一组中最小值 AVG():求出平均值 SUM():求和 范例: SELECT COUNT(empno) FROM emp; SELECT MIN
6.多表查询 1) 基本语法 a) 用WHERE消除笛卡尔积 SELECT * FROM emp,dept WHERE emp.deptno=dept.deptno; 如果表名太长,可以给表起别名: SELECT * FROM emp e,dept d WHERE e.deptno=d.deptno; b)自相关 如查询每个雇员的姓名、工作、雇员的直接上级领导的姓名(上级领导
5.单行函数 function_name(column|expression,[arg1,arg2,…]) 参数说明:function_name:函数名称 column:数据库列名 expression:字符串或计算表达式 arg1,arg2:在函数中使用参数 1)字符函数 接受字符输入并返回字符或数值 a)小写变大
SQL语句 3.限定查询WHERE 1) 最基本的限定查询 SELECT DISTINCT *|列名 别名 FROM 表名 {WHERE 条件(s)} 如:SELECT * FROM emp WHERE sal>1500; 2) IS (NOT) NULL 如查询每月可以得到奖金的雇员信息:SELECT * FROM emp WHERE comm IS NOT NULL;
SQL语句 1.所需要的表 2.简单查询语句 1)查询全部 SELECT * FROM 表名; 如:SELECT * FROM emp; 2)查询表中记录数 SELECT COUNT(*) FROM 表名; 如:SELECT COUNT(*) FROM emp; 3
SQLplus 是Oracle提供的一个命令行执行的工具软件 1.SQLplus启动 两种命令 1.sqlplus,以命令行的方式进入数据库连接 或者点击开始菜单选择Sqlplus 打开控制台,输入用户名scott,密码tiger即可 2.sqlplusw,以窗口的形式启动命令行工具 输入用户名密码,另外,在使用此命令的时候会提示一个主机的字符串,如果一台电脑上有多
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号