达内Java培训系列笔记 03. PL SQL笔记
达内java培训学习笔记
达内java培训学习笔记达内Java培训学习笔记在这个信息化浪潮不断推动着科技技术的发展的时代,学习一门技能是非常有必要的。
其中,Java是一个广泛应用、高效稳定的开发语言,为各大公司提供了许多解决方案。
而达内Java培训就是一个非常好的学习途径,通过它我们能够更深入的了解Java,学习更高效的Java编程技术。
我的学习笔记主要涵盖了Java的基础知识和一些实际开发案例经验,以下是我对于Java培训课程的总结:1. Java语言基础Java语言基础课程非常重要,它包括了Java的基本数据类型、流程控制语句、面向对象编程等。
例如,Java基本数据类型包括int、boolean、double等,他们的作用在于描述程序中的数据类型和变量类型。
流程控制语句即if-else语句,switch-case语句等,通过这些语句我们可以实现程序的逻辑控制。
面向对象开发则是Java的核心思想,掌握好面向对象编程思想能够帮助我们有效的组织程序的结构。
建议在学习Java基础课程时多做练习,加深对基础知识的理解与掌握。
2. Java Web开发Java Web开发中,最重要的就是Servlet与JSP的开发。
Servlet负责用户请求的接受,JSP负责返回结果的展示,他们是Java Web开发的基础知识。
进一步地,学习Spring、Spring MVC和Mybatis等框架,这些框架能够提高Web开发的效率和代码的可维护性,也是我们开发Java Web应用所必备的技能。
3. Maven的使用Maven是一个Apache开发的项目管理工具,通过它能更方便的管理一个项目的构建,依赖等。
Maven的使用需要在掌握了Java语言基础之后,对于长期从事Java开发的人员,Maven的使用是必不可少的。
学习Maven需要了解一些常用的概念,例如: Maven通常依赖中央仓库、本地仓库和仓库管理。
通过练习一些Demo,可以很好的掌握Maven的基本使用方法。
java课堂笔记(全部基础知识)
Java_U1课堂笔记(一)初识Java一、配置Java环境变量:1、复制JDK安装路径,如:C:\Program Files (x86)\Java\jdk1.7.0_51\bin2、粘贴到我的电脑->属性->高级系统设置->环境变量->Path3、加上英文的分号4、验证是否配置正确:dos-->java -version进入DOS窗口的方法:运行(或快捷键windows键+r)二、Java程序编写三步骤:编写 .java编译:javac **.java运行java **三、使用jad反编译工具:DOS中切换至jad安装目录,如:C:\jad1.5.8g.win输入命令:jad -s java D:\t01\HelloWorld.class四、变量的使用:页脚内容1变量取名,命名规则类型数值:int、double、float(f)非数值:char、String类型名字= 值;int age=10;五、上机验证:System.out.println(5+3);System.out.println("5"+3);六、Scanner的使用,接收用户键盘输入Scannerimport java.util.Scanner;Scanner input=new Scanner(System.in);input.next();(相关方法,nextDouble()、nextFloat()、nextInt(等)bin:exejre页脚内容2libsrc.zip(二)数据类型一、数据类型转换自动类型转换:int num=100;double b=num;强制类型转换double num=100.9;int b=(int)num;二、运算符赋值运算符=算数运算符+ - * / % ++ --+= -= *= /= %=关系运算符> < >= <= == !=逻辑运算符&& || !页脚内容3条件运算符?:了解优先级即可三、流程控制1、if:基本ifif-else多重if嵌套if注意:条件是boolean值常见错误:if(num=5){}else{}大括号不省略多重if顺序问题注意:页脚内容4流程图的使用和问题的分析解决过程2、switch等值比较注意:(1)语法上的常见错误(2)和多重if的异同循环结构:解决重复性的操作简介高效(三)循环结构一:循环:(1)while循环while(条件){操作循环变量迭代}注意:页脚内容5代码缩进循环能否正常退出(2)do-while循环do{循环}while(条件);注意:代码缩进循环能否正常退出和while的区别:语法上、执行上(至少执行一次)(3)for循环for(变量初始化;条件;变量迭代){循环操作}页脚内容6注意:代码缩进循环能否正常退出执行顺序循环变量可以有多个二、双重循环双重循环的特点:外层循环进入一次,内层循环就要完整的执行一遍特点:外执行一次内执行一轮双重循环次数:外层循环次数*内层循环的次数实现的重点:页脚内容7(1)确定谁做外层循环,确定谁做内层循环(2)两层循环变量有没有规律性的关系1、打印图形:找规律矩形行i外层星星j内层1 52 53 54 55 5平行四边形行i外层内层:空格星星1 4=5-i 52 3=5-i 53 2=5-i 5页脚内容84 1=5-i 55 0=5-i 5等腰三角形行i外层内层:空格星星1 4=5-i 1=2*i-12 3=5-i 3=2*i-13 2=5-i 5=2*i-14 1=5-i 7=2*i-15 0=5-i 9=2*i-12、打印九九乘法表行i(1-9)第一个操作数i 第二个操作数(从1到i)三:循环应用1、分析需求:重复做一件事情前提条件(循环进入的条件)做什么事情(循环操作)页脚内容92、用代码解释选择一种合适的循环结构whiledo-whilefor根据所选择的结构套用语法while(条件){}do{}while(条件);for(循环变量初始化;条件;迭代){}3、容易出错的点(1)变量在何处声明例1:计算5门课平均成绩页脚内容10例2:for(int i=0;i<=6;i++){System.out.println(i);}int j=i;System.out.println(j);(2)没有适当的(合适的)跳出循环根本跳不出来根本进不去循环多或少循环了一次四、循环的跳转break:跳出整个循环continue:跳出本次循环,进入下次循环return:结束方法(了解即可)五、程序调试页脚内容11设置断点Debug->单步运行F5 F6观察变量(三)数组一、数组1、数组的基本使用(1)数组的作用一组相同数据类型的数数组也是变量,内存中一串连续的空间(2)数组的几个基本概念标识符(数组名字)元素下标:从0开始数据类型数组的长度(数组名字.length)(3)数组使用步骤声明数组页脚内容12int[] num;int num[];分配空间num=new int[8];赋值处理数据int[] num={5,8,7};int[] num=new int[]{5,8,7};(4)循环和数组结合的使用下标(0-数组.length-1)遍历时两种方法:方法一:传统for方法二://增强型for(foreach)for(int score:scores){sum+=score;页脚内容13}二、回顾数组变量,内存中一串连续的空间相同数据类型的一组数据数组的基本概念元素数据类型(数组类型)下标(0,数组.length-1)数组的长度:数组.length数组的基本使用声明数组(类型[] 数组名称或类型数组名称[])分配空间(数组名称= new 数据类型[5];)赋值(num[0]= ;)处理数据变量:基本数据类型页脚内容14int、double、float、char、boolean引用数据类型String、数组内存分布不同使用上不同.三、数组的典型使用1、求最大值、最小值(打擂台)2、插入算法(找位置)3、冒泡排序数组存储5个数字下标:0 1 2 3 4外层循环内层循环i:0第一轮+ j比较次数:4 =4:length-1页脚内容15i:1第二轮+ j比较次数:3=4:length-1i:2第三轮+ j比较次数:2 =4:length-1i:3第四轮+ j比较次数:1=4:length-1i+j=数组.length-1j=数组.length-1-i共比较几次?5个数字:4+3+2+1=106个数字:5+4+3+2+1=157个数字:6+5+4+3+2+1=21n个数字:(n-1)+(n-2)+(n-3)+.....+1=n*(n-1)/24、Arrays类的使用常用方法:页脚内容16sort().....记得查API帮助文档(帮助文档已经在网盘中提供了,如果大家在Oracle官网中没有下载,可以找中心的技术顾问老师提供网盘用户名和密码,登录后拿到帮助文档)数据类型基本数据类型int double char boolean 。
tarena达内数据库五天笔记
·达内Oracle的五天笔记1.1. SQLPLUS的命令初始化表的位置:set NLS_LANG=american_7ascii (设置编码才可以使用下面脚本) cd $ORACLE_HOME/rdbms cd demo summit2.sql*********************************我们目前使用的是oralce 9i 9201 版本select * from v$version;恢复练习表命令:sqlplus **/** @summit2.sql //shell要在这个文件的位置。
登陆oracle的命令:sqlplus 用户名/密码show user 显示当前登陆的身份.set pause onset pause off 分页显示.oracle中默认日期和字符是左对齐,数字是右对齐table or view does not exist ; 表或示图不存在edit 命令用于自动打开vi修改刚修执行过的sql的命令。
修改方法二:l 3 先定位到行 c /旧串/新串执行出错时,利用错误号来查错误:!oerr ora 942 (装完系统后会装一个oerr工具,用于通过错误号来查看错误的具体信息)想在sql中执行unix命令时,把所有的命令前加一个!就可以,或者host( 用于sql从切换至unix环境中去)/*** 初次使用时注意 ****运行角本时的命令:先切换到unix环境下,cd $oracle_home cd sqlplus cd demo 下面有两个角本建表语句。
@demobld.sqlsqlplus nanjing/nanjing @demobid.sql 直接运行角本,后面跟当前目录或者是绝对路径保存刚才的sql语句: save 命令第二次保存时要替换之前的角本 save文件名 replace把刚才保的sql重新放入 buffer 中spool on 开启记录spool off 关闭记录spool 文件名此命令会把所有的操作存在某个文件中去常见缩写:nls national language support 国家语言支持1.2. SQL的结构|DDL 数据库定义|DML 数据库管理SQL――Commit rollback|DCL 数据库控制|grant+revoke 权限管理表分为:系统表(数据字典),用户表注:知道数据字典可以更便于使用数据库。
Java相关课程系列笔记之三PLSQL学习笔记
J a v a相关课程系列笔记之三P L S Q L学习笔记-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANPL/SQL学习笔记Java相关课程系列笔记之三笔记内容说明PL/SQL(薛海璐老师主讲,占笔记内容100%);目录一、 PL/SQL简介 (1)1.1什么是PL/SQL (1)1.2 PL/SQL程序结构 (1)1.3 PL/SQL运行过程 (2)1.4注释 (2)二、变量与数据类型 (4)2.1数据类型 (4)2.2标量类型 (4)2.3变量声明 (4)三、流程控制语句 (7)3.1条件语句 (7)3.2循环语句 (8)四、 PL/SQL中的SQL (12)4.1 PL/SQL中的SQL分类 (12)4.2 DML(insert,update,delete)和TCL(commit,rollback) (12)4.3 DDL (12)五、 PL/SQL中的select (14)5.1 select语句的实现 (14)5.2 record类型 (15)5.3 %rowtype (15)5.4 record变量的引用 (16)5.5 cursor的概念 (17)5.6 cursor的分类 (18)5.7显式cursor的处理 (18)5.8显式cursor的属性 (18)5.9隐式cursor的属性 (19)5.10 cursor的声明 (19)5.11 open cursor (20)5.12 fetch cursor (20)5.13结果集提取的控制 (20)5.14 close cursor (21)六、集合 (25)6.1什么是collection (25)6.2什么是关联数组 (25)6.3 Associative arrays的定义 (25)6.4声明Associative arrays类型和变量 (26)6.5关联数组的操作 (26)6.6 Associative arrays的方法 (27)6.7关联数组的遍历 (28)6.8 Associative arrays的异常 (29)6.9批量绑定 (30)七、异常 (33)7.2 Oralce错误处理机制 (33)7.3异常的类型 (33)7.4 PL/SQL中的异常 (33)7.5异常捕获 (34)7.6异常的捕获规则 (34)7.7 Oralce预定义错误的捕获 (34)7.8非Oracle预定义异常 (36)7.9用户自定义异常 (36)7.10异常处理总结 (37)7.11 sqlcode和sqlerrm (38)7.12异常的传播 (39)八、子程序 (40)8.1子程序 (40)8.2有名子程序 (40)8.3有名子程序的分类 (40)8.4有名子程序的优点 (40)九、过程procedure (41)9.1语法 (41)9.2创建存储过程 (41)9.3形参和实参 (42)9.4形参的种类 (42)9.5调用存储过程 (43)9.6存储过程中的参数 (43)9.7对实际参数的要求 (44)9.8形式参数的限制 (44)9.9带参数的过程调用 (44)9.10使用缺省参数 (45)9.11存储过程中的DDL语句 (45)9.12变量 (47)9.13 PL/SQL中的SQL分类 (48)9.14 再一次来看SQL语句的处理过程 (51)9.15软分析和硬分析 (51)9.16对过程procedure的基本操作 (51)9.17案例 (52)十、函数function (53)10.1语法 (53)10.2创建函数 (53)10.3调用函数 (53)10.4对函数function的基本操作 (54)10.5过程和函数的比较 (54)10.6匿名块中的过程和函数声明 (54)10.7案例 (55)十一、包package (57)11.2包的组成 (57)11.3包的优点 (57)11.4 package声明的语法 (58)11.5 package body声明的语法 (58)11.6编译包和包体 (59)11.7案例 (59)十二、触发器trigger (62)12.1面临问题 (62)12.2 DML触发器的组成 (62)12.3 DML触发器的类型 (62)12.4 DML触发器的触发顺序 (62)12.5 DML行级触发器 (63)12.6 :OLD和:NEW (63)12.7触发器的重新编译 (65)12.8触发器的状态 (66)十三、其他注意事项 (67)13.1 PL/SQL的特点 (67)13.2写PL/SQL的好处 (67)13.3命名建议 (67)13.4搞清楚如下内容 (67)13.5保证所有对象的状态都是valid (67)13.6 declare中都可声明什么 (67)13.7数据库对象 (68)一、PL/SQL简介1.1什么是PL/SQLPL/SQL(Procedural Language/SQL)是Oracle在标准SQL的基础上增加了过程化处理,把DML和select语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作,实现复杂的功能或者计算的程序语言。
达内java笔记
达内java笔记目录CoreJava DAY01 Java概述 1CoreJava DAY02 数据类型和控制结构 6CoreJava DAY03 数组11CoreJava DAY04 15CoreJava DAY05 面向对象17CoreJava DAY06 类的加载过程、实例化、继承、多态20CoreJava DAY07 修饰符26CoreJava DAY08 常用类29CoreJava DAY09 高级语言特征30CoreJava DAY10 主方法,静态导入,包装类,枚举32CoreJava DAY11 内部类36CoreJava DAY12 集合List 40CoreJava DAY13 集合Set 46CoreJava DAY14 集合Map 49CoreJava DAY15 异常、断言52CoreJava DAY16 反射、注释57CoreJava DAY17 GUI 64CoreJava DAY18 awt event 81CoreJava DAY19-20 多线程 85CoreJava DAY21-22 IO 95CoreJava DAY23 网络编程107CoreJava DAY01 Java概述############################################# ################################## ########## CoreJava DA Y01(2009.02.21) ############ ########## Made by NieXu ############ ###############################################################################一、学习CoreJava的要求1、上课一定要听懂(理解)2、课后一定要练习3、练完后要思考二、Java的优势1、Java中省去了对指标的操作,但并不是没有指标了,只是被封装了而已,代替指标的是种新的变量,叫做引用,这个引用里面也是保存的一个对象的地址,它和指针的差别就是比指针功能要弱化了,也更简单了。
Java达内学习笔记3
内存分类:栈内存、堆内存、寄存器、方法构造(代码段)、池内存栈内存:地址、基本内存的值(栈内存很小,不放对象)堆内存:对象、地址、基本内存的值、寄存器:运算的中间值代码段:如构造方法等的代码池内存:长放在内存里面的东西放在池内存里面(常驻内存)Staff staff = new Staff () ;执行次序:①Staff staff现在栈里面图1-1public class Test {public static void main(String[] args) {Staff staff = new Staff();staff.id="007";="詹姆斯.邦德";staff.salary=10000.0F;staff.faSalary();}}public class Staff {String id;String name;float salary;public void faSalary(){System.out.println(salary);}}编译:javac -d . Hello.java运行:Java com.tenara.Helloimport语句可以导入不同包的class文虚拟机先找栈,通过栈找到堆!垃圾回收机制回收的主要是堆内存里面的东西。
GC是怎么判断堆内存里面的东西已经成为垃圾可以被回收了?GC是从栈找到堆,如果堆里面的内容在栈里面没有对应的地址变元,则被视为垃圾清理掉!import java.util.Scanner; //扫描键盘public class Test2 {public static void main(String [] args){Scanner sc = new Scanner(System.in);//扫描字符串String str=sc.next();System.out.println("输入了"+str);//扫描整数int aa=sc.nextInt();System.out.println("输入了"+aa);//扫描doubledouble dd=sc.nextDouble();System.out.println("输入了"+dd);}}Operators1、"( )"优先级高2、"="优先级低Assignment operators= += -= %= *= /= <<= >>= >>>=&= ^= |=public class Test6 {public static void main(String [] arsg){byte b1=2;byte b2=3;b1=(byte)(b1+b2); // 语句1 加法,转intb1+=b2; //语句2 赋值,不转int}}b1+=b2;是否和语句b1=b1+b2完全等价?答案是否定的,上面程序中的语句1和语句2给出了证明。
java从入门到精通学习笔记-Lesson3
主要内容●包●类的说明符●对象的销毁(垃圾内存回收的演示)●接口●异常处理包(package)●为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,Java引入包(package)。
●package语句必须是文件中的第一条语句。
也就是说,在package前,除了空白和注释之处不能有任何语句。
●如果不加package语句,则指定为缺省包或无名包。
●包对应着文件系统的目录层次结构。
●在package语句中,用“。
”来指明包(目录)的层次。
------------------------------------------------------------------------------------------------------- package mybole; //package语句必须是java原文件中的第一条语句,//换句话说,package语句前除了出现空白或解释之外,//不能再有其它的语句了.在给包取名的时候采用小写//形式,然后在包的名字后面加上分号class Test{public static void main(String[] args){System.out.println("package test!");}}编译:javac Test.java 没有错误执行:java Test 出现了错误。
这是因为,java中提供的包是与目录层次结构相对应的,当给Test这个类取名为mybole时,要求在我们的硬盘上面有这样一个mybole的目录,并且在这个目录下有Test.class这个文件。
因此,要在相应的目录下新建一个文件名与Test类中引用的包(即包名为:mybole)名完全一致的文件。
事实上执行的Test类的完整名字应该是:mybole.Test在新建mybole文件夹后并将编译产生的Test.class类文件放在mybole文件夹中,按以下操作可能正确结果:java mybole.Test运行的结果为:package test!------------ ----------- --------- --------- ------------- ------ ------- package cn.mybole;class Test{public static void main(String[] args){System.out.println("package test!");}}包cn中含子包mybole这就要求在相应的目录下新建cn文件夹,在cn文件夹下新建mybole子文件夹, 将重新编译得到的Test.class置入mybole文件夹下。
最全的java学习笔记(必看)
%Java学习笔记目录一、 Java技术基础 ...........................................................编程语言..................................................................Java的特点..............................................................Java开发环境............................................................Java开发环境配置........................................................(Linux命令与相关知识.....................................................Eclipse/Myeclipse程序结构...............................................二、 Java语言基础 ...........................................................基础语言要素..............................................................八种基本数据类型..........................................................常量和变量................................................................运算符与表达式............................................................编程风格..................................................................:流程控制语句..............................................................数组......................................................................字符串....................................................................方法三要素................................................................冒泡排序..................................................................冒泡排序:轻气泡上浮的方式................................................二分法查找................................................................~Java系统API方法调用....................................................二进制基础................................................................Java基础其他注意事项....................................................三、面向对象................................................................类 .......................................................................对象......................................................................包 .......................................................................方法及其调用..............................................................。
达内java培训学习笔记
由字母 (汉语中的一个汉字是一个字母)
且这两个也是关键字
一个标识符尽量符合语义信息,提高程序可读性 类 包 常 名 :每个单词首字母大写, :第一个单词小写,后边的每个单词首字母大写 名 :全部小写 量 :全部大写 变量和方法
11、局部变量:定义在方法中的变量 ( 1)先赋值后使用 ( 2)从定义变量的代码块开始到代码块结束 ( 3)在同一范围内不允许两个局部变量发生命名冲突 ****
8 位 16 位 32 位 64 位
-128 -2^15 -2^31 -2^63
到 127 到 2^15-1 -32768 到 32767 到 2147483647 。 在数字 到 2^31-1 -2147483648
整型值存放,正数存放原码(二进制码) 8 浮点类型 4 8 字节 字节 32 位 64 位 字节 的结尾加“ l ” ,表示 long 类型的字面值
8 、 java 中的注释, 单行注释 //...... 多行注释 /* .......*/ 文档注释 /** ........<p>( javadoc -d 换行标签 )*/, 用 javadoc 命令可以根据原码中的文档注释生成 html 标签。 xxx.java 注释文档( html 格式)。文档注释中可以使用
Ctrl+D: 删除光标所在行 Ctrl+ 鼠标停留 : 可以显示类和方法的源码 Ctrl+Shift+S: 保存全部
Java 1 、 Java 之父 Golsling 1995 1998 2004
第一天
2007
年 4 月 23 日
年 5 月 23 日 Java 诞生 年 12 月 年 12 月 1.2 1.5 版本 Java2 J2SE J2EE J2ME 版本 (5.0) Java 标准平台 JavaSE JavaEE JavaME
达内科技Java学习笔记(经典必看)
诚信、创新、开放、合作JAVA的面向对象编程--------课堂笔记面向对象主要针对面向过程。
面向过程的基本单元是函数。
什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面://有什么(属性):用来描述对象。
能够做什么(方法):告诉外界对象有那些功能。
后者以前者为基础。
大的对象的属性也可以是一个对象。
为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。
对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。
方法的定义非常重要。
方法有参数,也可能有返回值。
注意区分:对象(本身)、对象的实现者、对象的调用者。
分析对象主要从方法开始。
我们通过类来看待对象,类是对象的抽象。
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。
对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。
这样才能使每个对象本身做成最好的。
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。
可复用性是OOP的基础。
比较面向过程的思想和面向对象的思想:面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。
面向过程是先有算法,后有数据结构。
面向对象是先有数据结构,然后再有算法。
在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。
从语法上来看,一个类是一个新的数据类型。
在面向对象编程中,除了简单数据类型,就是对象类型。
定义类的格式:class Student{代码}注意类名中单词的首字母大写。
局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。
这是局部变量和实例变量的一大区别。
实例变量的对象赋值为null。
java-oracle,plsql笔记-【尚学堂马士兵老师】
java-oracle,plsql笔记-【尚学堂马士兵老师】PL/SQLdeclarev_name varchar2(20);beginv_name := 'myname';dbms_output.put_line(v_name);end;捕获异常declarev_num number := 0;beginv_num :=2/v_num;dbms_output.put_line(v_num);exceptionwhen others thendbms_output.put_line('error');end;变量声明declarev_temp number(1);v_count binary_integer := 0;v_sal number(7,2) := 4000.00;v_date date := sysdate;v_pi constant number(3,2) :=3.14;v_valid boolean := false;v_name varchar2(20) not null := 'Myname';begindbms_output.put_line('v_temp value:' || v_temp);end;--变量声明的规则//PL_SQL中两个横线可以注释掉一行1、变量声明不能够使用保留字,如from、select等2、第一个字符必须是字母3、变量名最多包含30个字符4、不要与数据库的表或者列同名5、每一行只能声明一个变量--常用变量类型1、binary_integer:整数,主要用来计数而不是用来表示字段类型,数组下标2、number:数字类型3、char:定长字符串4、varchar2:变长字符串5、date:日期6、long:长字符串,最长2G7、boolean:布尔类型,可以取值为true、false和null值,不给初值是null--变量声明,使用%type属性declarev_empno number(4);v_empno2 emp.empno%type;--变量v_empno2的类型参考emp.empno类型v_empno3 v_empno2%type;begindbms_output.put_line('Test');end;--Table变量类型(数组)declaretype table_emp_empno is table of emp.empno%type index by binary_integer;v_empnos type_table_emp_empno;beginv_empnos(0) :=7369;v_empnos(2) :=7888;v_empnos(-1) :=7323;dbms_output.put_line(v_empnos(-1));end;--Record变量类型(类似于类)declaretype type_record_dept is record(deptno dept.deptno%type,dname dept.dname%type,loc dept.loc%type);v_temp type_record_dept;beginv_temp.deptno := 50;v_temp.dname := 'aaa';v_temp.loc := 'bj';dbms_output.put_line(v_temp.deptno || ' '||v_temp.dname);end;--使用rowtype声明record变量(无论一个表怎么变,不关心,只关心这个表的表名,类似于java中的声明类的实例)declarev_temp dept%rowtype;beginv_temp.deptno := 50;v_temp.dname := 'aaa';v_temp.loc := 'bj';dbms_output.put_line(v_temp.deptno || ' '||v_temp.dname);end;--SQL语句的运用--PL/SQL用select语句必须并且只能返回一条记录declarev_ename emp.ename%type;v_sal emp.sal%type;beginselect ename,sal into v_ename,v_sal from emp where empno=7369;dbms_output.put_line(v_ename || ' '||v_sal);end;--UPDA TEdeclarev_deptno emp2.deptno%type := 50;v_count number;beginupdate emp2 set sal =sal/2 where deptno = v_deptno;--select deptno into v_deptno from emp2 where empno = 7369;--select count(*) into v_count from emp2;--几条记录被影响,就是产生几个值dbms_output.put_line(sql%rowcount ||'条记录被影响');--commit必须提交commit;--if语句--取出7369的薪水,如果<1200,则输出'low',r如果<2000则输出'middle',否则输出'high'declarev_sal emp.sal%type;beginselect sal into v_sal from empwhere empno=7369;if (v_sal < 1200) thendbms_output.put_line('low');elsif(v_sal < 2000) thendbms_output.put_line('middle');elsedbms_output.put_line('high');end if;end;--循环declarei binary_integer :=0;beginloopdbms_output.put_line(i);i := i+1;exit when(i>=11);end loop;end;i binary_integer := 1;beginwhile i < 11 loopdbms_output.put_line(i);i := i+1;end loop;end;declarei binary_integer := 1;beginfor i in 1..10 loopdbms_output.put_line(i);end loop;end;--错误处理declarev_temp number(4);beginselect empno into v_temp from emp where deptno=10; exceptionwhen too_many_rows thendbms_output.put_line('太多记录了');when others thendbms_output.put_line('error');end;--把错误信息保存到一个表中create table errorlog(int number primary key,errorcode number,errormsg varchar2(1024),errordate date)--创建索引create sequence seq_errorlog_id start with 1 increment by 1;--例子declarev_deptno emp.deptno%type :=10;v_errorcode number;v_errormsg varchar2(1024);begindelete from dept where deptno = v_deptno;commit;exceptionwhen others thenrollback;v_errorcode := SQLCODE;v_errormsg := SQLERRM;insert into errorlog values(seq_errorlog_id.nextval,v_errorcode,v_errormsg,sysdate);commit;end;--当不显示打印结过的时候执行set serveroutput on;--PL/SQL重点--游标declarecursor c isselect * from emp;v_emp c%rowtype;beginopen c;fetch c into v_emp;dbms_output.put_line(v_emp.ename);close c;end;--游标初始的时指到第一条记录,然后一条一条的往下走--loopdeclarecursor c isselect * from emp;v_emp c%rowtype;beginopen c;loop--运行完fetch自动往下走一条fetch c into v_emp;exit when (c%notfound);dbms_output.put_line(v_emp.ename);end loop;close c;end;--while循环declarecursor c isselect * from emp;v_emp c%rowtype;beginopen c;fetch c into v_emp;while(c%found) loopdbms_output.put_line(v_emp.ename);fetch c into v_emp;end loop;close c;end;--for循环declarecursor c isselect * from emp;v_emp c%rowtype;beginfor v_temp in c loopdbms_output.put_line(v_emp.ename);end loop;end;--带参数的游标declarecursor c(v_deptno emp.deptno%type,v_job emp.job%type)isselect ename,sal from emp where deptno = v_deptno and job = v_job; beginfor v_temp in c(30,'CLERK') loopdbms_output.put_line(v_temp.ename);end loop;end;--可更新的游标declarecursor cisselect * from emp2 for update;beginfor v_temp in c loopif (v_temp.sal <2000) thenupdate emp2 set sal= sal*2 where current of c;elsif (v_temp.sal = 5000) thendelete from emp2 where current of c;end if;end loop;commit;end;--存储过程create or replace procedure piscursor cisselect * from emp2 for update;beginfor v_temp in c loopif (v_temp.deptno = 10) thenupdate emp2 set sal= sal+10 where current of c;elsif (v_temp.sal = 20) thenupdate emp2 set sal= sal+20 where current of c;elseupdate emp2 set sal= sal+50 where current of c;end if;end loop;commit;end;--带参数的存储过程--in(默认)传入参数,out传出参数,in out传入传出参数create or replace procedure p(v_a in number,v_b number,v_ret out number,v_temp in out number) isbeginif (v_a > v_b) thenv_ret := -v_a;elsev_ret := -v_b;end if;v_temp := v_temp+1;end;--调用过程declarev_a number := 3;v_b number := 4;v_ret number;v_temp number :=5;beginp(v_a,v_b,v_ret,v_temp);dbms_output.put_line(v_ret);dbms_output.put_line(v_temp); end;--显示错误show error--函数create or replace function sal_tax (v_sal number)return numberisbeginif(v_sal < 2000) thenreturn 0.10;elsif(v_sal < 2750) thenreturn 0.15;elsereturn 0.20;end if;end;--触发器(概念牢牢掌握)create table emp2_log(uname varchar2(20),action varchar2(10),atime date);--after/beforecreate or replace trigger trig--for each rowafter insert or delete or update on emp2 for each rowbeginif inserting theninsert into emp2_log values(USER,'insert',sysdate);elsif updating theninsert into emp2_log values(USER,'update',sysdate);elsif deleting theninsert into emp2_log values(USER,'delete',sysdate);end if;end;update emp2 set sal = sal*2 where deptno=10;--更新有参考列create or replace trigger trigafter update on deptfor each rowbeginupdate emp set deptno = :NEW.deptno where deptno = :OLD.deptno; end;--递归--数状结构的存储与展示create table article(id number primary key,cont varchar2(4000),pid number,isleaf number(1),--0 代表非叶子节点,1代表叶子节点alevel number(2));insert into article values(1,'蚂蚁战大象',1,0,0);insert into article values(2,'蚂蚁战大象2',1,0,1);insert into article values(3,'蚂蚁战大象3',2,1,2);commit;create or replace procedure p(v_pid article.pid%type,v_level binary_integer) is cursor c is select * from article where pid=v_pid;v_preStr varchar2(1024) := '';beginfor i in 1..v_level loopv_preStr := v_preStr ||'***';end loop;for v_article in c loopdbms_output.put_line(v_preStr || v_article.cont);if (v_article.isleaf = 0) thenp(v_article.pid,v_level+1);end if;end loop;end;第一课:客户端1. Sql Plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。
达内java笔记2013--基础2
day02 AM######################################## java的变量1.在逻辑上是一个代词2.在计算机内部,代表一个数据逻辑上的代词映射到计算机识别的数据java是强类型语言:变量时强类型的1、变量必须用明确类型声明,2、变量必须初始化以后才能使用3、变量作用域,离开作用域回收4、变量不能重复定义违反了就有编译“错误”day02程序java1、语法规则,与编译错误2、面试:面试题利用编译错误的语法规则考题编译错误与运行异常的区别?intage;System.out.println(age);A、编译错误B、运行异常C、0D、ageSystem.out.println(ago);单词打错了,ago没有声明java的数据类型进制基础***************编程使用等宽体general--appearance--colorsandfonts--basic---textfont 字体dejavuLGCSansMono等宽字体***************计数的规律:(例子:算盘)十进制计数规则:逢10进1的计数规则权:10000、1000、100、10、1 每个数位上代表1的个数基数:10进位规则数字:0123456789权是基数的n次幂2进制:逢2进1的计数规则权:128、64、32、16、8、4、2、1每个数位上代表1的个数基数:2进位规律数字:0 1权是基数的n次幂10 20 00001 00012 00103 00114 01005 01016 01107 01118 10009 100110 101011 101112 110013 110114 111015 11112进制--》10进制11000000(2)=128+62=192(10)234-128=106-64=42-32=10-8=2 234(10)=11101010(2)201-128=73-64=9-8=1201(10)=11001001218-128=90-64=26-16=10-8=2 218(10)=11011010188-128=60-32=28-16=12-8=4 188(10)=10111100day02PM######################练习Eclipseday02中demo02int i =234;//java 会将10进制“234”,转化为2进制赋值到i的内存中。
Java课堂笔记第03章
3.流程控制语句SXTSXT本章概述•流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
•其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构、分支结构和循环结构,如下图所示:顺序分支本章概述顺序结构循环结构while do-while for 多重循环递归算法选择结构if-else switch跳转break continue return方法定义、调用、重载技能点名称难易程度认知程度重要程度if 语句中应用***switch 语句中应用***while 语句 难应用***do-while 语句难应用***for 语句难应用***跳转语句 break 中应用**跳转语句 continue 中应用***跳转语句 return中技能点名称难易程度认知程度重要程度多重循环难应用***多重循环下跳转语句难应用**方法定义和调用难理解***方法重载中理解***SXT if单分支选择结构SXT•if 语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句语 句布尔表达式falsetrue流程图Math 类的使用:int i = (int) (6 * Math.random ());//产生:[0,5]//如何产生:10-15随机数?附:SXTSXT if 语句double i = 6 * Math.random();double j = 6 * Math.random();double k = 6 * Math.random();int count = (int) (i + j + k);if(count > 15 ) {System.out.println(“今天手气不错”);}if(count >= 10 && count <= 15) { //错误写法:10<count<15System.out.println(“今天手气很一般”);}if(count < 10) {System.out.println(“今天手气不怎么样”);}System.out.println("得了" + count + "分"); 要求必须是布尔表达式条件结果必须是布尔值建议都加上花括号。
java培训 第六天 笔记
1.软件设计的软件:开闭原则(Open-Close Principle, OCP)高聚合低耦合(High Cohesion, Low Coupling)2. Java常用IDE(Integrated Development Environment)IDE = 编辑器+ 编译器+ 运行时环境+ 调试器·SUN NetBeans 免费·Borland JBuilder 收费·Eclipse 免费,严格来讲,它是一个软件开发平台(相当于改锥把儿),本身几乎没有任何使用价值,必须附加相关的插件(plug-in,相当于各式各样的改锥头儿),常见的Eclipse 插件:Java插件、JavaEE插件、C/C++插件、PHP插件、Flex插件、JS插件、图片编辑插件、3D图形设计插件、音频/视频编辑插件……常见的MyEclipse就是第三方开发的一款JavaEE插件Eclipse Java插件的使用:切换工作空间:新建项目:指定项目名:在src下新建包右键单击包名,新建class:Eclipse中常用快捷键:1)alt + / : 自动补全,main/sysout/类名/关键字/方法声明…2)ctrl+alt+上/下: 快速复制光标所在行3)ctrl+d: 快速删除光标所在行4)ctrl+/: 注释光标所在行5)alt+上/下: 移动光标所在行6)ctrl+1: 给出错误提示和解决方法面向对象的两个基本概念:类、对象3.对象的声明周期(life cycle)方法1)诞生:constructor,即构造方法2)成长:普通方法3)消亡:destructor,即析构方法任何类都必须有构造方法和析构方法——否则,该类就没有任何意义了!4.方法的重载(Overload,超载)定义:同一个类中,存在多个方法名相同,但形参列表不同(形参的类型、数量等不同)的多个方法,此现象称为方法的重载。
注意:·形参列表不同不是指形参名不同,如f1(int a, int b){} 和f1(int x, int y){}不是重载。
java课堂笔记
# Java课堂笔记## 1. Java简介- Java是一种高级编程语言,由Sun Microsystems于1995年发布。
- Java具有跨平台特性,可以在不同的操作系统上运行。
- Java采用面向对象的编程范式,具有丰富的类库和强大的功能。
## 2. Java开发环境搭建- 下载安装Java Development Kit(JDK),包括Java编译器和运行时环境。
- 配置环境变量,将JDK的安装路径添加到系统的PATH变量中。
- 安装集成开发环境(IDE),如Eclipse、IntelliJ IDEA等,以提供编写、调试和管理Java代码的功能。
## 3. Java基本语法- 类和对象:Java通过类来定义对象的属性和行为。
- 变量和数据类型:Java支持多种数据类型,包括整型、浮点型、字符型、布尔型等。
- 控制语句:Java提供了条件语句(if-else、switch)、循环语句(for、while、do-while)等控制结构。
- 方法和函数:Java中的方法用于封装可重复使用的代码块,实现代码模块化和提高代码复用性。
- 异常处理:Java提供了异常处理机制,可以捕获和处理程序中的异常情况。
## 4. 面向对象编程- 封装:将数据和操作封装到一个对象中,通过访问控制符限制对对象的访问。
- 继承:通过继承机制,子类可以继承父类的属性和方法,并可以重写或添加新的方法。
- 多态:同一种类型的对象,在不同的情况下可以表现出不同的行为。
- 接口:接口定义了一组方法的集合,用于规范类的行为。
## 5. Java类库- Java类库提供了大量的API(应用程序编程接口),包括输入输出、网络通信、图形界面、数据库操作等功能模块。
- 常用的类库包括ng、java.util、java.io、等。
- 通过引入相应的包(import语句),可以在代码中使用Java类库提供的类和方法。
以上是关于Java课堂的笔记概要,涵盖了Java的基本语法和面向对象编程的相关内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Donot write into outfile.
数据类型:
%Type 可以取出某字段的类型;如:s_st_name%Type --相当于Varchar2。
%Rowtype 返回一整行的记录类型;如:s_emp%Rowtype --这得注意各字段的顺序。
数字型:
可以使用Exit或Exit When 语句终止循环处理。
三、For循环:
For loop_count IN [Reverse] low_bound..high_bound
Loop ...; End Loop;
免声明,默认loop_count为数值型。简化结束条件。
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
BEGIN
---executable statements
[EXCEPTION]
---exception statements
END
变量声明:Declare
变量名 Type [Constant] [Not Null] [:=value];
“:=”是赋值,而“=”是比较语句。
drop table 表名; --连删表(删多个表用逗号隔开)
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for 'help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
show tables; --显示此目录下各表格的名字
desc 表名; --我们可以查看某个表中的数据类型结构
create database 数据库名; --建数据库目录
drop database 数据库名; --删除数据库整个目录
create table 表名; --建表(同oracle)
如果在一行代码还没有写完前(指分号结束此语句之前),一定要使用多行注释格式。
SQL中的一行代码,不是按手写的格式定义的,而是按计算机解释格式(没有分号终止前,即使按了回车也都解释为一行)
PL/SQL 块语法
[DECLARE]
---declaration statements
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
set serveroutput on; --使终端可打印出文件的结果; 使输出无效:set serveroutput off;
MySQL 常用语句:
终端登录: mysql -u username -p password --进入本机的mysql;没设密码就留空
执行脚本: mysql -u 用户名 -密码 </.../xxx.sql
...; End Loop;
二、While循环:
While boolean_expression
Loop ... End Loop;
其中boolean_expression 值为False则立即退出循环。免另外写结束条件。
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
执行脚本2:先登录,再 source /.../xxx.sql
show variables like '%char%'; --查看数据库的字符集;utf8或gbk的则可支持中文
show databases; --显示所有数据库目录
use 数据库名; --进入某个数据库 (可以有很多个,我把这些数据库看作目录,这点不同于oracle)
Else ...
End If;
循环
一、LOOP循环:
1. Loop ... ; Exit When boolean_expr ; End Loop;
2. Loop If boolean_expr Then Exit; End If;
nowarning (\w) Donot show warnings after every statement.
IN Reverse 表示倒过来,由大值自减到小值
例: For cnt IN 1..5 Loop ...; End Loop; /*由1到5*/
常用PLSQL语句:
DBMS_OUTPUT.PUT_LINE('v_Num_3 = ' || v_Num_3); --文件中要打印一些内容
大小写不敏感。
打印单引号时,需加多一个单引号作转义符。即连用两个单引号才可以打印一个。
Begin dbms_output.put_line('I''m leaning'); 连字符开始,到行尾。
--Available
多行注释:由“/*”开头,“*/” 结尾。
Number:
Binary_Integer:
BoolLean类型:只有 True 和 False 两类。
其中,Dull = False。
程序执行顺序的类型可分三种:
顺序
选择
If ... Then ...
Elsif ... Then ...