1.第一范式:实体的所有属性都是不可分割的,称该表满足1NF;
第二范式:允许用多个属性作为主码
第三范式:不存在传递函数依赖关系,即存在一个属性,其函数依赖的属性既不是主码也不是候选码
Boyce-Codd范式:在表中,可以将其中一列或多列指定为主码,也可以指定其他某些列为候选码,表中也存在着其他属性。不考虑候选码, 唯一的函数依赖关系存在于表中每个属性和整个主码之间
2.SQL语言:DDL(Create drop alter crate view drop view create index drop index)、SELECT、DML、TC、DCL
3.select sysdate from dual
4.一个表中最多只能有一个Long列,Long列不能索引,不能出现在完整性约束中
5.ROWID数据类型是Orcale数据表中一个伪列,他是数据表中每行数据内在的唯一的标识。
6.describe <table_name>;drop table <table_name>;
7.delete from <table_name>;全部删除
8.order by必须是最后一条子句
9.日期默认格式是“DD-MON-YY”,to_char(date,'YYYY-MM-DD')
10.NVL(EXPR1,EXPR2):expr1和expr2必须为同一数据类型,选择expr1和expr2中不为null的那个值;
11.NVL2(EXPR1,EXPR2,EXPR3):类似于EXPR1 is null?EXPR2:EXPR3
12.COLALESCE(EXPR1,...[EXPRN]);选择第一个非空值
13.=,>,<,>=,<=,<>,!=,IN,ONT IN,BETWEEN AND ,NOT BETWEEN AND ,LIKE ,NOT LIKE,IS NULL,IS NOT NULL,AND ,OR ,NOT
14.逻辑运算符AND,OR,NOT中,not优先级最高,and其次,or最低,并且他们的优先级低于任何一种比较操作符
15.count(column):列不为null的行数
16.group by 将表的行分为若干组,组中的行并不重复,然后通过列函数分别统计每个组,这样每个组都有一个统计值
select mdzt,count(*) from md_mdjcxx group by mdzt;
17.group by having
18.select department_id ,AVG(wage) from teachers where wage>3000 group by department_id having AVG(wage)>=2000 order by 2;
19.IN:匹配于子查询结果的任意一个值
ANY:只要符合子查询结果的任意一个值
ALL:必须要符合子查询结果的所有值结果
20.union:用于得到两个查询结果集的并集,并集中自动去掉重复行
union all:用于得到两个查询结果集的并集,并集中保留重复行
intersect:用于得到两个查询结果结果集的交集,交集以结果的第一列进行排序;
minus:用于得到两个查询结果集的差集,差集以结果的第一列进行排序
使用并、交、差三种运算符进行集合操作时,要求参与集合操作的查询结果集列的数据类型相匹配
21.事务处理语句:commit(提交)、rollback(撤销)、savepoint(保留点)
22.TRUNCATE TABLE <table_name>删除teachers表的所有数据
23.savepoint savepoint_name 可撤销部分事务
24.set tansaction read only:设置当前事务为只读事务,不允许执行DML语句,只允许执行查询语句
25.ADD_MONTHS(x,n):返回日期x加上n个月所对应的日期,n可为负值
26.LAST_DAY(x):返回日期x所在月份的最后一天的日期
27.MONTHS_BETWEEN(x,y):返回日期x和日期y两个日期之间相差的月数
28.create table teacher2 as select * from teacher
29.select * from user_sys_privs
30.删除表的外关键字约束:drop constraint t1_fk_d1;删除表的某列的notnull约束:alter table student modify name null;禁止约束:alter table student disable constraint sex_ch
31.建立索引:create index wage_idx on teacher(wage);唯一索引:create unique index wage_idx on teacher(wage);
32.建立视图:create view departments_view as select * from departments;
33.select table_name,tablespace_name,temporary from user_tables;
34.修改视图:create or replace view student_view as slect student_id,name,specialty from students where sex='男'
35.PL/SQL编程:
set serveroutput on
DECLARE
Declarations
BEGIN
Executable code
EXCEPTION
Exceptional handlers
END;
ps: declare
v_sname varchar2(10)
begin
select name into v_sname from students where student_id=&student_id;
dbms_output.put_line('学生姓名:'||v_sname);
exception
where no_data_found then
dbms_output.put_line('输入的学号不存在');
end;
/
输入student_id的值:10228
36.如果字符串文字中本身就包含单引号,则可用两个连续的单引号进行转义。或者使用其他分隔符([],(),<>):q'[I'm a student.]'
37.case
when ...then
when ...then
else
end case;
38.为了使PL/SQL代码中定义的变量,能与数据库中的某一列或某一行的数据类型相联系,oracle提供了%type和%rowtype的变量定义方式(甚至可以使某一张表)
Declare v_student student/%rowtype;
Begin
select * into v_student from student
END;
/
39.变量初始化
declare v_id student.student_id%type:=10199(注意:=而不是=)
40.if condition then
statements1;
else statements2
end if;
41.loop
statement(s);
exit [when condition];
end loop;
42.while condition loop
statement(s);
end loop;
43.for loop_index in [REVERSE] lowest_number .. highest_number loop
statement(s);
end loop;REVERSE 表示循环控制变量从上限向下限递减(减1)计数
44.异常:Exception when zero_divide then dbms_output.put_line('除数为0'); end;/
45.输入字符串接收应该为
v_specialty :='&specialty';
46.抛出自定义异常:raise exception_name;
47.声明游标:cursor cursor_name is select_statement;
declare cursor students_cur is select name,dob from students where specialty='计算机';
48.打开游标:open students_cur;
49.读取游标:fetch students_cur into v_sname,v_dob;
50.关闭游标:close cursor_name;
51.select object_name ,created,status from user_objects where object_name='tatol';通过视图user_objects查看函数信息
52.select text from user_source where name='tatol';
53.函数中的out参数必须预先定义:variable v_sname varchar2(10);
函数中返回的参数也得预先定义:variable grade number; execute :grade:=show_grade(101101,10201,:v_sname,:v_cname);
54.输出返回的参数 print :v_sname :v_cname
55.函数输入参数形式为:
variable v_id number
variable v_name varchar2(10)
execute :v_id:=222
execute :v_name:='航空机械'
其实最好的方式是在调用函数的时候一起赋值,就不用一个一个execute了
56.建立触发器:
create or replace trigger chage_teacher
before insert or update or delete on teachers
begin
if(tochar(sysdate,'HH24')not between '8' and '17') or (to_char(sysdate,'dy','nls date_langudage=american')in ('sat','sun'))
then
raise_application_error(-20000,'在非工作时间不能改变教师信息');
end if;
end chage_teacher;
57.禁用触发器执行:alter trigger chage_teacher disable;
启用:alter trigger chage_teacher enable;
58.审计:
create or replace trigger s_g_change
after update of score on students_grade
for each row
begin
insert into students_grade_change
values(:old.student_id,:old.course_id,:old.score,:new.score.sysdate);
end s_g_change;
59.常用命令:
connect sys/password@localhost as sysdba;
disc
password scott
/*缓冲区*/
list
append
change
del
input
N
edit
run或/
clear
/*文件*/
save(保存缓冲区内容到文件)
get(获取)
start或者@(运行SQL脚本文件)
/*交互式命令*/
&:使用替换变量,即需要运行时输入的变量,且注意字符串数据必须‘&varibale_name’
&&:只需给替换变量赋值一次,在当前环境中一直使用
variable:变量 variable variable_name type
print
prompt(输出提示信息)
pause(暂停sql脚本文件的执行)
accept(用于定义替换变量的类型)
方案(schema)是方案对象(schema object)的一个结合,每一个数据库用户对应一个方案。
select object_name,object_type from user_objects;
selct owner,object_name,object_type from all_objects.
slect owner,object_name,object_type from sys.dba_objects;
v$datafile视图包含数据库数据文件的信息
v$fixed_table视图包含性能表和数据库视图的信息
SGA(系统全局区):oracle数据库存放系统信息的一块内存区域
恢复管理器:RMAN
iSQL*PLUS URL:http://localhost:5560/isqlplus
Enterprise Manager 10g Database Control URL:http://localhost:5500/em
数据结构与java:
1.在开始一个大循环的开始前,是不是可以先将其分组得到的效率会更高一点呢?当然这有可能会增加内存的消耗。
2.解决散列表冲突:分离链接法和开放定址法:分离链接法将新插入的元素插入到链表的前端:因为经常发生这样的事实:新近插入的元素最
有可能不久又被访问
3.归并排序的话要实现先排好序,那效率肯定高了
分享到:
相关推荐
ORACLE PL/SQL是从入门到精通的专业知识,涵盖了数据库开发与管理的多个方面,包括触发器、过程、函数、软件包、异常处理、游标、循环、分支、变量使用、数据库安装等关键知识点。 触发器是数据库中用来保证数据...
通过上述对Oracle 9i PL/SQL程序设计笔记的总结,我们可以看到PL/SQL作为一种强大的数据库编程语言,提供了丰富的功能来支持数据处理、事务控制及业务逻辑的实现。掌握PL/SQL的不同块类型及其使用方法对于开发高效、...
PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库中的过程式编程语言,它结合了SQL查询语句和传统的过程式编程元素,使得在数据库管理中进行复杂逻辑处理成为可能。以下是对PL/SQL的学习笔记...
PL/SQL是Oracle公司开发的一种...总之,PL/SQL是Oracle数据库强大功能的重要组成部分,它为数据库编程提供了丰富的过程化控制功能和面向对象的特性。通过学习和掌握PL/SQL,开发者可以构建高效、复杂的数据库应用程序。
PL/SQL(程序化SQL)是Oracle数据库的标准编程语言,它扩展了SQL的功能,允许在数据库环境中编写过程化的业务逻辑。在PL/SQL中,可以嵌入多种类型的SQL语句来实现复杂的数据处理任务。根据标题和描述中的内容,我们...
总的来说,“PL/SQL超级笔记”应该涵盖了从基本语法到高级特性的全面教程,通过学习,新手可以逐步掌握如何使用PL/SQL进行数据库编程,从而更好地管理和操作Oracle数据库。配合"oracle_ppt"中的PPT材料,学习效果会...
Oracle SQL和PL/SQL是数据库管理和编程的重要工具,主要用于处理Oracle数据库中的数据。这篇课堂笔记主要涵盖了基础的SQL查询语法和部分PL/SQL概念。 首先,SQL查询的基础是从数据库中选择数据。`SELECT`语句用于...
PL/SQL是一种高级的程序语言,主要用于Oracle数据库管理系统中。下面是PL/SQL数据库学习笔记的知识点总结。 一、基本原则 *瀑布模型:需求分析→设计(概要设计,详细设计:SQL语句,变量(初始值是多少,最终值...
PL/SQL是Oracle数据库的一种编程语言,它结合了SQL(结构化查询语言)与过程编程语言的功能,使得数据库管理和应用程序开发更加便捷。本篇笔记主要涵盖了PL/SQL的基础语法和常用操作,包括检索数据、操纵数据以及SQL...
PL/SQL,即Procedural Language for SQL,是Oracle数据库的一种内嵌式编程语言,结合了SQL的数据操作能力和过程化编程语言的控制结构。它提供了一种高效、安全的方式来处理数据,支持复杂的业务逻辑实现。PL/SQL的...
PL/SQL,全称是Procedural Language/Structured Query Language,是Oracle数据库提供的一种结合了SQL语言和过程式编程的编程环境。它扩展了SQL的功能,使得开发人员能够编写复杂的数据库应用程序,处理事务、实现...
### PL/SQL听课笔记 #### 一、PL/SQL简介 **PL/SQL**(Procedural Language for SQL)是一种专门为Oracle数据库设计的过程化语言扩展。它是在标准SQL基础上增加了一系列高级编程特性,如变量、控制结构、函数、...
PL/SQL是Oracle数据库系统中的一个关键组成部分,它是一种结合了SQL语言与过程式编程的高级语言,主要用于数据库管理和应用程序开发。在这个“我的PL/SQL学习笔记(一)”中,我们将探讨PL/SQL的基础知识,包括其...
oracle笔记pl/sql流程控制,有具体的代码案例,流程控制的知识点笔记!
PL/SQL(Procedural Language for SQL)是Oracle数据库系统中的一种过程化编程语言,它结合了SQL的数据处理能力与传统过程化语言的控制结构,使得在数据库内部进行复杂逻辑处理成为可能。以下是PL/SQL能够实现的主要...