天天看点

常用数据库知识点汇总

  1. 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、自连接(连接发生在一张基表内)

    有 (+) 的一方代表有可以为空,即副表

  2. Group By 用法
  3. null与 “”、0的区别:数据库中的null表示——不知道,“”——一个空字符串,0则是一个数值。 所以null是指不确定的意思,而后两者则都是确定的值。因此,我们在项目中必须严格区分null和空字符串。
  4. order by 用法 select * from student t order by t.sclass desc desc降序,asc升序,默认升序可以省略。
  5. 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);
           
  1. oracle 运算符优先级:

    算数运算符(加减乘除)>连接运算符(||)>关系运算符(大于、等于、小于)>IS NULL,IS NOT NULL ,LIKE ,NOT LIKE ,IN ,NOT IN 运算符>BETWEEN ,NOT BETWEEN 运算符>NOT 逻辑运算符>AND 逻辑运算符>OR 逻辑运算符。

  2. dual表详解

    常用:①select sxjhjh_jlh.nextval from dual 获取sequence,

    ②select concat(‘010-’,‘88888888’)||‘23’ from dual; 连接字符串,concat连接2个,||连接多个

  3. oracle COUNT=1 COUNT详解,只选择一条必须要加这个条件。