-
oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方。
例如
左外连接:select A.a,B.a from A LEFT JOIN B ON A.b=B.b;
等价于select A.a,B.a from A,B where A.b = B.b(+);
再举个例子,这次是右外连接:select A.a,B.a from A RIGHT JOIN B ON A.b=B.b;
等价于select A.a,B.a from A,B where A.b (+) = B.b;
数据表的连接有:
1、内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现
2、外连接: 包括
(1)左外连接(左边的表不加限制)
(2)右外连接(右边的表不加限制)
(3)全外连接(左右两表都不加限制)
3、自连接(连接发生在一张基表内)
有 (+) 的一方代表有可以为空,即副表
- Group By 用法
- null与 “”、0的区别:数据库中的null表示——不知道,“”——一个空字符串,0则是一个数值。 所以null是指不确定的意思,而后两者则都是确定的值。因此,我们在项目中必须严格区分null和空字符串。
- order by 用法 select * from student t order by t.sclass desc desc降序,asc升序,默认升序可以省略。
- Oracle 建表,添加中文注释,添加主键约束,添加各种约束
-- 建表语句
create table SbjjbCt(
Cmdm VARCHAR2(5) NOT NULL, --船名代码
Jkhc VARCHAR2(12) NOT NULL, --进口航次
Ckhc VARCHAR2(12) NOT NULL, -- 出口航次
Zwcm VARCHAR2(24) NOT NULL, -- 中文船名
Bwdm1 VARCHAR2(6) NOT NULL, --泊位
Mtdm VARCHAR2(12) NOT NULL --码头代码
);
-- 表注释
comment on table SbjjbCt is '上报交接班船停表';
-- 字段注释
comment on column SbjjbCt.Cmdm is '船名代码';
comment on column SbjjbCt.Jkhc is '进口航次';
comment on column SbjjbCt.Ckhc is '出口航次';
comment on column SbjjbCt.Zwcm is '中文船名';
comment on column SbjjbCt.Bwdm1 is '泊位';
comment on column SbjjbCt.Mtdm is '码头代码';
-- 创建主键约束
alter table SbjjbCt add constraint PK_SbjjbCt_Cmdm primary key(Cmdm);
-- 创建检查约束--
alter table Student add constraint CK_Student_Gender check(gender='男' or gender='女');
alter table Student add constraint CK_Student_Age check(Age>=0 and Age<=100);
-- 创建唯一约束--
alter table Student add constraint UQ_Student_StuName unique(StuName);
--创建默认约束--
alter table Student Modify Address varchar(50) default '地址不详';
alter table Student Modify JoinDate Date default sysdate;
--创建外键约束--
alter table Student add constraint FK_Student_StuCLass_ClassId
foreign key(ClassId) references StuClass(ClassId);
-
oracle 运算符优先级:
算数运算符(加减乘除)>连接运算符(||)>关系运算符(大于、等于、小于)>IS NULL,IS NOT NULL ,LIKE ,NOT LIKE ,IN ,NOT IN 运算符>BETWEEN ,NOT BETWEEN 运算符>NOT 逻辑运算符>AND 逻辑运算符>OR 逻辑运算符。
-
dual表详解
常用:①select sxjhjh_jlh.nextval from dual 获取sequence,
②select concat(‘010-’,‘88888888’)||‘23’ from dual; 连接字符串,concat连接2个,||连接多个
- oracle COUNT=1 COUNT详解,只选择一条必须要加这个条件。