天天看點

常用資料庫知識點彙總

  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詳解,隻選擇一條必須要加這個條件。