@TOC11月14日学习记录
1.decode函数的使用
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
相关的代码:decode(t.enroll_channel,
‘mulLife’,
‘多彩生活’,
‘WCB’,
‘微信’,
‘BOC’,
‘手机银行’)as enroll_channel
t.enroll_channel是条件,如果选到了mulLife,就会返回多彩生活,其他类似,实现后的效果是一个复选框,有多彩生活,微信,手机银行这三个选择。
2.where 1=1再次复习
1=1的用处 主要用来构件动态SQL
String sql = "select a,b from table_a where 1=1 ";
if(!b.equals(""))
sql += "and b='"+b+"'";
当用户选择了b ( 假如b值为qwe )
结果就是:String sql = ''select a,b from table_a where 1=1 and b= ‘qwe’;
但是当用户没有选择b 那b就是一个空值
结果就是:String sql =’‘select a,b from table_a where 1=1’’; ,运行也不会出错,相当于没有限制b这个条件。
但是如果没有1=1的条件,则l String sql =’‘select a,b from table_a where’’ ; 这样就会报错。
3.创建PL/SQL块
先是declare部分是用来定义变量的,begin以后是执行的部分,end是结束。begin和end之间可以有一个exception用来处理异常,也可以没有。declare的部分,如果是常量或者没有定义变量,declare可以省略。
PL/SQL输出语句 dbms_output.put_line。
4.使用变量输出字符串
,
第二行定义了一个变量名为name的长度为20的varchar2变量,初始化值为welcome to oracle,字符串用单引号括起来。
||是拼接字符串的符号,相当于mysql里面的+,比如’111’||‘222’ 其结果就是’111222’。
5.PL/SQL支持的运算符
6.PL/SQL声明全局变量
声明全局变量可以使用关键字VAL来实现,全局变量也叫宿主变量。
name没有在declare中声明,但是可以直接用,是因为它是全局变量,PL/SQL块中访问全局变量时要在变量前加符号“:”。
7.PL/SQL输出指定精度的数据
number(6,3),即允许数字为6个,刻度为3表示四舍五入精确到小数点后3位。
8.PL/SQL获取当前日期时间
SYSDATE函数获取系统当前日期,TO_CHAR函数将当期日期进行格式化输出,其格式输出符“yyyy-mm-dd”表示按照“年-月-日”的格式输出,“hh24:mi:ss”表示按照“小时-分-秒”的格式输出,而加上输出符“Day”表示输出器对应的星期数。此外,函数TO_DATE也能实现日期时间的格式化输出。
结果:Today is 星期日。
9.PL/SQL使用记录类型输出数据表中的一行,
例子首先声明了mystu对象,其数据类型为STUDENT %ROWTYPE,表示其为数据表STUDENT的一行,然后通过SELECT语句从数据表中获取一条记录到mystu对象中,可以使用“.”来访问对象中的属性。
10.PL/SQL获取数据表中的一列
%TYPE数据类型获取数据表中的列,与上面获取数据表中的行类似。
11.PL/SQL使用CREATE TABLE命令创建基本表
12.PL/SQL使用ALTER TABLE命令增加新字段
给STU表添加为表STU增加了一个新的字段SMAJOR,它是一个长度20字节的字符数据,该字段不能为空且默认值为“计算机科学与技术”。
13.PL/SQL使用ALTER TABLE命令修改字段
MODIFY是修改字段的关键字。
上述语句将ADD、MODIFY等关键字修改为DROP,并在其后加上字段名就能完成删除操作。
重命名基本表:rename关键字,把stu重命名为stu1
复制相同结构的表,用as关键字来复制。
使用DROP TABLE命令删除表。
主键约束primaryKey
唯一性约束 :UNIQUE约束
CHECK约束:指定SGENTLE字段的输入只能为“男”或“女”,指定SAGE字段的输入只能在10到90之间。
外键约束也即FOREIGN KEY约束
删除约束也用drop
14.PL/SQL根据查询结果创建和复制表
as关键字实现了复制。
参考文章:
https://blog.youkuaiyun.com/qichangjian/article/details/88975499
https://blog.youkuaiyun.com/qq_23994787/article/details/79045768