马士兵大哥数据库教程2阶段

body
{
font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif;
font-size: 10.5pt;
line-height: 1.5;
}
html, body
{

}
h1 {
font-size:1.5em;
font-weight:bold;
}
h2 {
font-size:1.4em;
font-weight:bold;
}
h3 {
font-size:1.3em;
font-weight:bold;
}
h4 {
font-size:1.2em;
font-weight:bold;
}
h5 {
font-size:1.1em;
font-weight:bold;
}
h6 {
font-size:1.0em;
font-weight:bold;
}
img {
border:0;
max-width: 100%;
}
blockquote {
margin-top:0px;
margin-bottom:0px;
}
table {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
td {
border-collapse:collapse;
border:1px solid #bbbbbb;
}

user_indexes;user_tables;user_views;用户字典表dictionary

select user_tables user_views;user_indexes 

视图view;create view v$_stu as select ,,, from .

建立视图要付出维护上的代价。

序列sequence,Oracle独有的东西;

create sequence seq;SELECT SEQ.NEXTVAL FORM DUAL;

数据库三范式:只是一种规范,该打破就打破。cilver Bullet 银弹,没有完美的解决方案。

第一范式:1,要有主键;2,列不可分。减少数据冗余。

第二范式:多对多表关系设定:1,不存在部分依赖;如果有多个主键,之间不能有依赖关系。即其他信息不能 部分依赖主键。

第三范式:不存在传递函数依赖。即每个非关键字都独立于其他非关键字列,并依赖于关键字。

PL/SQL的Oracle内部编程语言

T-SQL是SQ-Server 的编程语言

例如存储过程:

最简单的存储过程:begin dbms_output.put_line('HelloWorld!');end;

启动:set serveroutput on;  再执行一次上面,就会有输出。

Oracle常见7中数据类型:

1,binary_integer:整数,主要用来计数,而不是表示字段类型;例如数组下标哦。

2,number 数字类型;

3,char 定长字符串;

4,varchar 变长字符串;

5,date 日期;

6,long 长字符串,最长2GB;

7,boolean布尔类型;可以取true,false,和NULL值。

declare v_empno number(4);

v_empno v_empno%type;

复杂数据类型:

1,--table数据类型://数组

declare

type type_table_emp_empno is table of emp.empno%type index by binary_integer;

v_empnos type_table_emp_empno

begin

v_empnos(0) := 7369;

v_empnos(2) := 7839;

v_empnos(-1) := 9999; /* 可存在负数的下标 */

dbms_output.put_line(v_empnos(-1));

end;

2,--Record数据类型;//集合、类的概念

declare

type type_record_dept is record

(

deptno dept.deptno%type,

dname dept.dname%type,

loc dept.loc%type

);

v_temp type_record_dept;

3,--使用%rowtype声明record对象

declare

v_temp dept%rowtype;//可以直接根据表结构来动态定义。

PL/SQL中的SQL语句:

1,有且只有一条输出记录;

2,例子:select ename,sal into v_ename,v_sal from emp where depno = '';//sql需要配合into使用。

3,Update动作需要commit。

4,dbms_output_put_line(sql%rowcount || '条记录被影响')//sql为关键字,代表刚才执行的sql语句;

PL/SQL中的DDL语句:

begin

execute immediate 'create table T (nnn varchar2(20) default ''aaa'')' //2个单引号代表一个单引号,需要加上粉红部分;

end;/

PL/SQL分支和循环

分支:if then ; elsif then ;else ; end if;end;

循环:1) loop ; 累加;exit when 条件; end loop;end;

2) while 条件; loop ;累加;end loop;end;

3) for k in 1..10 loop ;end loop; end;//

for k in reverse 1..10 loop ;end loop;end; --完成了逆序输出循环。其中1..10代表1到10,增强的for循环。

错误处理:

exception

when 错误1 then      ;

when others then      ;     常见的2种:too_many_rows     no_data_found  //查手册

完整的例子:

--创建一个errorlog表:

create table errorlog

(

id number primary key,

errcode number,

errmsg varchar2(1024),

errdate date

);

create sequence seq_errorlog_id start with 1 increment by 1;

declare

v_depno dept.depno%type := 10;

v_errcode number;

v_errmsg varchar2(1024);

begin

delete from dept where depno = v_deptno;

commit;

exception

when others then

roolback;

v_errcode :=SQLCODE; --SQLCODE为数据库关键字,代表出错代码

v_errmsg := SQLERRM; --SQLERRM为数据库关键字,代表出错信息

insert_into errorlog values (seq_errorlog_id.nextval,v_errcode,v_errmsg,sysdate);

commit;

end;

来自为知笔记(Wiz)

时间: 2024-12-29 21:10:59

马士兵大哥数据库教程2阶段的相关文章

马士兵大哥数据库教程3阶段

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

马士兵大哥数据库教程1阶段

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

尚学堂马士兵Oracle教程笔记

检查Oracle安装 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba 然后,解除对scott用户的锁 alter user scott account unlock; 那么这个用户名就能使用了. (默认全局数据库名orcl) 1.select ename, sal * 12 from emp; //计算年薪 2.select 2*3 from dual;  //计算一个比较纯的数据用dual表 3.select sysdate from dual

马士兵hibernate(原始笔记)

马士兵hibernate(原始笔记) 课程内容 1        HelloWorld a)   Xml b)   annotation 2        Hibernate原理模拟 - 什么是O/R Mapping以及为什么要有O/R Mapping 3        常见的0/R框架(了解) 4        hibernate基础配置(重点) 5        ID生成策略(重点 AUTO) 6        Hibernate核心开发接口介绍(重点) 7        对象的三种状态(了

[转载]马士兵Java视频教程 —— 学习顺序

书(Java核心编程)+视频..这样学感觉比较好.. 原文地址:-- 学习顺序" href="http://blog.sina.com.cn/s/blog_8a705bf701015lz5.html" target="_blank">马士兵Java视频教程 -- 学习顺序作者:习惯 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01

Linux平台上SQLite数据库教程(二)——C语言API介绍

Linux平台上SQLite数据库教程(二)--C语言API介绍 前言:本文将介绍几个基本的SQLite3数据库的C语言API接口,主要用到两个文件:sqlite3.c.sqlite3.h.源码地址:https://github.com/AnSwErYWJ/SQLite. 打开数据库 1.原型: int sqlite3_open( const char* filename, /* 数据库文件名, 必须为 UTF-8 格式 */ sqlite3** ppDB /* 输出: SQLite 数据库句柄

SpagoBI4.2汉化及配置Mysql数据库教程

SpagoBI4.2汉化及配置Mysql数据库教程 1.安装Mysql数据库 2.安装JDK并配置JAVA环境变量 3.下载SapagoBI4.2 allinone 安装包 4.解压缩SpagoBI安装包到E盘BI文件夹下 5.配置系统环境变量:CATALINA_HOME,路径为E:\BI\SpagoBI-Server-4.2-10042014 6.启动安装目录E:\BI\SpagoBI-Server-4.2-10042014\bin下的SpagoBIStartup.bat文件,当出现serve

VB语言使用ADO连接、操作SQLServer数据库教程

VB语言使用ADO连接.操作SQLServer数据库教程 这篇文章主要介绍了VB语言使用ADO连接.操作SQLServer数据库教程,本文讲解详细.代码中有大量注释,是非常好的一篇教程,需要的朋友可以参考下 几年前学过的VB几乎忘光了,这几天复习了下.VB连接ADO数据库并不是非常难. 连接第一步(要仔细看) 对于小白来讲,这里的教程最详细,连接ADO数据库第一步,要添加什么部件呢?全称是Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 部件. 在Micr

马士兵感言 (转)

展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们. 01. 自己的户口档案.养老保险.医疗保险.住房公积金一定要保管好.由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期间跳